If spi_nor_read_sfdp() is used after probe, we have to set read_proto and the read dirmap.
Signed-off-by: Michael Walle <mich...@walle.cc> --- drivers/mtd/spi-nor/sfdp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/mtd/spi-nor/sfdp.c b/drivers/mtd/spi-nor/sfdp.c index b1814afefc33..47634ec9b899 100644 --- a/drivers/mtd/spi-nor/sfdp.c +++ b/drivers/mtd/spi-nor/sfdp.c @@ -179,19 +179,27 @@ static int spi_nor_read_sfdp(struct spi_nor *nor, u32 addr, size_t len, void *buf) { u8 addr_width, read_opcode, read_dummy; + struct spi_mem_dirmap_desc *rdesc; + enum spi_nor_protocol read_proto; int ret; read_opcode = nor->read_opcode; + read_proto = nor->read_proto; + rdesc = nor->dirmap.rdesc; addr_width = nor->addr_width; read_dummy = nor->read_dummy; nor->read_opcode = SPINOR_OP_RDSFDP; + nor->read_proto = SNOR_PROTO_1_1_1; + nor->dirmap.rdesc = NULL; nor->addr_width = 3; nor->read_dummy = 8; ret = spi_nor_read_raw(nor, addr, len, buf); nor->read_opcode = read_opcode; + nor->read_proto = read_proto; + nor->dirmap.rdesc = rdesc; nor->addr_width = addr_width; nor->read_dummy = read_dummy; -- 2.20.1