summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJagan Teki <jteki@openedev.com>2015-12-16 13:48:08 +0530
committerJagan Teki <jteki@openedev.com>2016-01-13 18:47:26 +0530
commitd9a0ab6c0dc318750ce5d389bf9268e31fd8af60 (patch)
tree0dce573a96122ad6d3b7afd9ced309a91d1a1c49
parentbfcdc3956d2cf4fb692b8ccbdafd56d0b4b11b2d (diff)
sf: Write quad bit along with read status
While setting quad bit on spansion, macronix code is writing only particular quad bit this may give wrong functionality with other register bits, So this patch fix the issue where it with write previous read reg status along particular quad bit. Cc: Vignesh R <vigneshr@ti.com> Cc: Mugunthan V N <mugunthanvnm@ti.com> Cc: Simon Glass <sjg@chromium.org> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Michal Simek <michal.simek@xilinx.com> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Jagan Teki <jteki@openedev.com>
-rw-r--r--drivers/mtd/spi/spi_flash.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 682d1a0df6..e72abb97ac 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -843,7 +843,7 @@ static int macronix_quad_enable(struct spi_flash *flash)
if (qeb_status & STATUS_QEB_MXIC)
return 0;
- ret = write_sr(flash, STATUS_QEB_MXIC);
+ ret = write_sr(flash, qeb_status | STATUS_QEB_MXIC);
if (ret < 0)
return ret;
@@ -871,7 +871,7 @@ static int spansion_quad_enable(struct spi_flash *flash)
if (qeb_status & STATUS_QEB_WINSPAN)
return 0;
- ret = write_cr(flash, STATUS_QEB_WINSPAN);
+ ret = write_cr(flash, qeb_status | STATUS_QEB_WINSPAN);
if (ret < 0)
return ret;