On 02/11/19 4:53 PM, Tudor.Ambarus@xxxxxxxxxxxxx wrote: > From: Tudor Ambarus <tudor.ambarus@xxxxxxxxxxxxx> > > In case of 16-bit Write Status Register, check that both SR1 and > SR2 were written correctly. > > Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxxxxx> > --- This can be merged with previous patch as changes are quite similar Regards Vignesh > drivers/mtd/spi-nor/spi-nor.c | 29 ++++++++++++++++++++++++++++- > 1 file changed, 28 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > index 08fd2c97897d..8f11c00e8ae5 100644 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -2067,6 +2067,7 @@ static int spansion_no_read_cr_quad_enable(struct spi_nor *nor) > { > u8 *sr_cr = nor->bouncebuf; > int ret; > + u8 sr_written; > > /* Keep the current value of the Status Register. */ > ret = spi_nor_read_sr(nor, sr_cr); > @@ -2075,7 +2076,22 @@ static int spansion_no_read_cr_quad_enable(struct spi_nor *nor) > > sr_cr[1] = CR_QUAD_EN_SPAN; > > - return spi_nor_write_sr(nor, sr_cr, 2); > + ret = spi_nor_write_sr(nor, sr_cr, 2); > + if (ret) > + return ret; > + > + sr_written = sr_cr[0]; > + > + ret = spi_nor_read_sr(nor, sr_cr); > + if (ret) > + return ret; > + > + if (sr_cr[0] != sr_written) { > + dev_err(nor->dev, "SR: Read back test failed\n"); > + return -EIO; > + } > + > + return 0; > } > > /** > @@ -2116,6 +2132,17 @@ static int spansion_read_cr_quad_enable(struct spi_nor *nor) > if (ret) > return ret; > > + sr_written = sr_cr[0]; > + > + ret = spi_nor_read_sr(nor, sr_cr); > + if (ret) > + return ret; > + > + if (sr_written != sr_cr[0]) { > + dev_err(nor->dev, "SR: Read back test failed\n"); > + return -EIO; > + } > + > sr_written = sr_cr[1]; > > /* Read back and check it. */ > -- Regards Vignesh ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/