On 07/12/18 2:56 PM, Boris Brezillon wrote: > 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; > + Nit, I would suggest moving above check to the place where spi_nor_setup() is called in spi_nor_scan(). That way, its easier to know that setup is skipped when SNOR_F_SKIP_SETUP is set when reading spi_nor_scan() code. I am fine otherwise too. > /* > * 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), > }; > > /** > -- Regards Vignesh ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/