From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mugunthan V N Date: Wed, 23 Dec 2015 14:45:55 +0530 Subject: [U-Boot] [PATCH v2 3/4] sf: Read back and check once macronix quad bit set In-Reply-To: References: <1450256509-17280-1-git-send-email-jteki@openedev.com> <1450256509-17280-3-git-send-email-jteki@openedev.com> <567A52B3.1020103@ti.com> Message-ID: <567A664B.60704@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wednesday 23 December 2015 01:51 PM, Jagan Teki wrote: > On 23 December 2015 at 13:22, Mugunthan V N wrote: >> On Wednesday 16 December 2015 02:31 PM, Jagan Teki wrote: >>> 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 >>> Cc: Mugunthan V N >>> Cc: Simon Glass >>> Cc: Bin Meng >>> Signed-off-by: Jagan Teki >>> --- >>> Changes for v2: >>> - none >>> >>> drivers/mtd/spi/spi_flash.c | 18 ++++++++++++------ >>> 1 file changed, 12 insertions(+), 6 deletions(-) >>> >>> diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c >>> index ba6651e..c922322 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))) { >> >> This error check is wrong, it can be either one of the below >> >> if (!(ret >= 0 && (qeb_status & STATUS_QEB_MXIC))) { > > So =0 is a success case, this is what you pointing to correct? did you > test this? Yeah, I have tested this on am437x-sk evm. The same fix has to be done for spansion flash as well! Regards Mugunthan V N