From: Felix Fietkau 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 --- --- 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);