Some manufacturers select the opcode to use in their fixups() method, and they don't want the generic selection logic to override their values. Add a flag to allow that. Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxx> --- drivers/mtd/spi-nor/spi-nor.c | 7 +++++++ include/linux/mtd/spi-nor.h | 1 + 2 files changed, 8 insertions(+) diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index f6b1c9b8079a..30dbddabec74 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -3502,6 +3502,13 @@ static int spi_nor_setup(struct spi_nor *nor, u32 ignored_mask, shared_mask; int err; + /* + * Some manufacturers select the opcode to use in their fixups() + * method, and explicitly ask to skip the generic selection logic. + */ + if (nor->flags & SNOR_F_SKIP_SETUP) + return 0; + /* * Keep only the hardware capabilities supported by both the SPI * controller and the SPI flash memory. diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h index 2c8fbd5d614d..8c64f1dcd35e 100644 --- a/include/linux/mtd/spi-nor.h +++ b/include/linux/mtd/spi-nor.h @@ -235,6 +235,7 @@ enum spi_nor_option_flags { SNOR_F_4B_OPCODES = BIT(6), SNOR_F_HAS_LOCK = BIT(7), SNOR_F_CLR_SW_PROT_BITS = BIT(8), + SNOR_F_SKIP_SETUP = BIT(9), }; /** -- 2.17.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/