
On Fri, Dec 21, 2018 at 12:08 PM Vignesh R vigneshr@ti.com wrote:
It is necessary to call spi_claim_bus() before starting any SPI transactions and this restriction would also apply when calling spi-mem operationss. Therefore claim and release bus before requesting transfer via exec_op.
Signed-off-by: Vignesh R vigneshr@ti.com
drivers/spi/spi-mem.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c index 1da20b8de5c4..4c1463118ab2 100644 --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c @@ -231,7 +231,13 @@ int spi_mem_exec_op(struct spi_slave *slave, const struct spi_mem_op *op) mutex_lock(&ctlr->bus_lock_mutex); mutex_lock(&ctlr->io_mutex); #endif
ret = spi_claim_bus(slave);
if (ret < 0)
return ret;
ret = ops->mem_ops->exec_op(slave, op);
spi_release_bus(slave);
This making spi claims twice, since it's been doing before spi_xfer in below code. better to make it before the if.