diff options
| author | Jagan Teki <[email protected]> | 2015-12-15 12:42:02 +0530 |
|---|---|---|
| committer | Jagan Teki <[email protected]> | 2016-01-13 18:47:26 +0530 |
| commit | bfcdc3956d2cf4fb692b8ccbdafd56d0b4b11b2d (patch) | |
| tree | b1120bc9c3abf3940d9e6a2e08da8d953147688e | |
| parent | ffecb0fc840707d7aadf42364ae596f998a3d52f (diff) | |
sf: Read back and check once macronix quad bit set
One macronix quad bit set using SR, it's good to
read back and check the written bit and also if
it's already been set check for the bit and return.
Cc: Vignesh R <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Bin Meng <[email protected]>
Tested-by: Mugunthan V N <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
| -rw-r--r-- | drivers/mtd/spi/spi_flash.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index b7c0da46a25..682d1a0df64 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -840,12 +840,18 @@ static int macronix_quad_enable(struct spi_flash *flash) if (ret < 0) return ret; - if (qeb_status & STATUS_QEB_MXIC) { - debug("SF: mxic: QEB is already set\n"); - } else { - ret = write_sr(flash, STATUS_QEB_MXIC); - if (ret < 0) - return ret; + if (qeb_status & STATUS_QEB_MXIC) + return 0; + + ret = write_sr(flash, STATUS_QEB_MXIC); + if (ret < 0) + return ret; + + /* read SR and check it */ + ret = read_sr(flash, &qeb_status); + if (!(ret >= 0 && (qeb_status & STATUS_QEB_MXIC))) { + printf("SF: Macronix SR Quad bit not clear\n"); + return -EINVAL; } return ret; |
