diff options
author | Simon Glass <sjg@chromium.org> | 2019-12-06 21:42:35 -0700 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2019-12-15 11:44:21 +0800 |
commit | ccdabd8956936319c5f7112bf5774e839b085874 (patch) | |
tree | 77ad19d52c8e52e2d2623ba182246e3d75b9d2c9 /drivers/spi/spi-uclass.c | |
parent | 86c70e9ca65fcb84fd7751fbd5e153e3aa2e544d (diff) | |
download | u-boot-ccdabd8956936319c5f7112bf5774e839b085874.tar.gz u-boot-ccdabd8956936319c5f7112bf5774e839b085874.tar.xz u-boot-ccdabd8956936319c5f7112bf5774e839b085874.zip |
spi: Correct operations check in dm_spi_xfer()
At present we have to have an xfer() method even if it does nothing. This
is not correct, so fix it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers/spi/spi-uclass.c')
-rw-r--r-- | drivers/spi/spi-uclass.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c index 665611f7e2..af910e9efc 100644 --- a/drivers/spi/spi-uclass.c +++ b/drivers/spi/spi-uclass.c @@ -85,11 +85,14 @@ int dm_spi_xfer(struct udevice *dev, unsigned int bitlen, const void *dout, void *din, unsigned long flags) { struct udevice *bus = dev->parent; + struct dm_spi_ops *ops = spi_get_ops(bus); if (bus->uclass->uc_drv->id != UCLASS_SPI) return -EOPNOTSUPP; + if (!ops->xfer) + return -ENOSYS; - return spi_get_ops(bus)->xfer(dev, bitlen, dout, din, flags); + return ops->xfer(dev, bitlen, dout, din, flags); } int dm_spi_get_mmap(struct udevice *dev, ulong *map_basep, uint *map_sizep, |