sf: Write quad bit along with read status
authorJagan Teki <[email protected]>
Wed, 16 Dec 2015 08:18:08 +0000 (13:48 +0530)
committerJagan Teki <[email protected]>
Wed, 13 Jan 2016 13:17:26 +0000 (18:47 +0530)
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 <[email protected]>
Cc: Mugunthan V N <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Bin Meng <[email protected]>
Cc: Michal Simek <[email protected]>
Cc: Siva Durga Prasad Paladugu <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
drivers/mtd/spi/spi_flash.c

index 682d1a0df64acbe0f82fd3ce44704ecf5941dc44..e72abb97ac9b66a279ceb8be96063f3a6cc2b941 100644 (file)
@@ -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;