Message ID | 1466197433-11290-5-git-send-email-kdasu.kdev@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jun 17, 2016 at 05:03:53PM -0400, Kamal Dasu wrote: > In m25p80_read() even though spi_flash_read() is supported > by some drivers, under certain circumstances like unaligned > buffer, address or address range limitations on certain SoCs > let it fallback to core spi reads. Such drivers are expected > to return -EAGAIN so that the m25p80_read() uses standard > spi transfer. This is a patch to the MTD subsystem, you need to send it to the MTD maintainers as covered in SubmittingPatches.
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 9d68544..3f90542 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -149,8 +149,11 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len, msg.data_nbits = m25p80_rx_nbits(nor); ret = spi_flash_read(spi, &msg); - *retlen = msg.retlen; - return ret; + /* some drivers might need to fallback to spi transfer */ + if (ret != -EAGAIN) { + *retlen = msg.retlen; + return ret; + } } spi_message_init(&m);
In m25p80_read() even though spi_flash_read() is supported by some drivers, under certain circumstances like unaligned buffer, address or address range limitations on certain SoCs let it fallback to core spi reads. Such drivers are expected to return -EAGAIN so that the m25p80_read() uses standard spi transfer. Signed-off-by: Kamal Dasu <kdasu.kdev@gmail.com> --- drivers/mtd/devices/m25p80.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)