summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-uclass.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-12-06 21:42:35 -0700
committerBin Meng <bmeng.cn@gmail.com>2019-12-15 11:44:21 +0800
commitccdabd8956936319c5f7112bf5774e839b085874 (patch)
tree77ad19d52c8e52e2d2623ba182246e3d75b9d2c9 /drivers/spi/spi-uclass.c
parent86c70e9ca65fcb84fd7751fbd5e153e3aa2e544d (diff)
downloadu-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.c5
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,