openwrtv4/target/linux/generic/pending-4.9/450-mtd-m25p80-allow-fallback-from-spi_flash_read-to-reg.patch
Felix Fietkau a49f6565b3 kernel: m25p80: allow fallback from spi_flash_read to regular SPI transfer
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-02-26 19:20:06 +01:00

36 lines
1 KiB
Diff

From: Felix Fietkau <nbd@nbd.name>
Date: Fri, 23 Feb 2018 17:12:16 +0100
Subject: [PATCH] mtd: m25p80: allow fallback from spi_flash_read to regular
SPI transfer
Some flash controllers, e.g. on the ath79 platform can support a fast
flash read via memory mapping, but only if the flash chip is in
3-byte address mode.
Since spi_flash_read_supported does not have access to the same data as
spi_flash_read, the driver can't detect an unsupported call until m25p80
has decided to use spi_flash_read.
Allow the driver to indicate a fallback to a regular SPI transfer by
returning -EOPNOTSUPP
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -155,9 +155,11 @@ static ssize_t m25p80_read(struct spi_no
msg.data_nbits = m25p80_rx_nbits(nor);
ret = spi_flash_read(spi, &msg);
- if (ret < 0)
- return ret;
- return msg.retlen;
+ if (ret != -EOPNOTSUPP) {
+ if (ret < 0)
+ return ret;
+ return msg.retlen;
+ }
}
spi_message_init(&m);