aboutsummaryrefslogtreecommitdiff
path: root/drivers/spi
diff options
context:
space:
mode:
authorDhruva Gole2023-03-01 13:13:46 +0530
committerJagan Teki2023-04-25 22:56:14 +0530
commitdb58dc5438ec674cad438a606edc155d06914adc (patch)
tree3c9f7d050eb6a4974549e426fa74ccba4636e732 /drivers/spi
parent963b5da339a2ac8ad1451c9b84e746a2e26fd0d4 (diff)
spi: spi-mem: perform odd len check only while writing data
in spi_mem_dtr_supports_op we have a check for allowing only even number of bytes to be r/w. Odd bytes writing can be a concern while writing data to a flash for example because 8 DTR mode doesn't support it. However, reading ODD Bytes even though may not be physically possible we can still allow for it because it will not have serious implications on any critical registers being overwritten since they are just reads. Cc: Vaishnav Achath <vaishnav.a@ti.com> Cc: Pratyush Yadav <pratyush@kernel.org> Cc: Vignesh Raghavendra <vigneshr@ti.com> Tested-by: Nikhil M Jain <n-jain1@ti.com> Signed-off-by: Dhruva Gole <d-gole@ti.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/spi-mem.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
index 57a36f31a5d..b7eca583595 100644
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -185,7 +185,7 @@ bool spi_mem_dtr_supports_op(struct spi_slave *slave,
* Transactions of odd length do not make sense for 8D-8D-8D mode
* because a byte is transferred in just half a cycle.
*/
- if (op->data.dir != SPI_MEM_NO_DATA &&
+ if (op->data.dir != SPI_MEM_NO_DATA && op->data.dir != SPI_MEM_DATA_IN &&
op->data.buswidth == 8 && op->data.nbytes % 2)
return false;