|
@@ -0,0 +1,36 @@
|
|
|
+From: Felix Fietkau <[email protected]>
|
|
|
+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 <[email protected]>
|
|
|
+---
|
|
|
+
|
|
|
+--- 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);
|