mtd: spi-nor: core: use 2 data bytes for template ops
authorPratyush Yadav <p.yadav@ti.com>
Mon, 31 May 2021 18:17:52 +0000 (23:47 +0530)
committerTudor Ambarus <tudor.ambarus@microchip.com>
Thu, 23 Dec 2021 13:04:13 +0000 (15:04 +0200)
commit0d051a49829a96b26716a724df286be30da42f0e
treebde0af7f10dca511103c1df5214232e19b800947
parent65b54ff67afab2754d61289ec59806d71c7dc0e8
mtd: spi-nor: core: use 2 data bytes for template ops

The template ops used in spi_nor_spimem_check_pp() and
spi_nor_spimem_check_readop() currently set the data phase to 1 byte
long. This is problematic for 8D-8D-8D protocol where odd length data
phase is invalid since one cycle transfers 2 bytes and odd number of
bytes would mean half a cycle is left over. This could result in a
controller rejecting the op as "not supported" even though it actually
supports the protocol.

Change the data length to 2 bytes in these templates. One might argue
that this should only be done for 8D-8D-8D operations but when talking
about these templates, there is no functional difference between one and
two bytes, even in STR modes.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Michael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20210531181757.19458-2-p.yadav@ti.com
drivers/mtd/spi-nor/core.c