[U-Boot] [PATCH v2 3/4] sf: Read back and check once macronix quad bit set
Mugunthan V N
mugunthanvnm at ti.com
Wed Dec 23 08:52:19 CET 2015
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 <vigneshr at ti.com>
> Cc: Mugunthan V N <mugunthanvnm at ti.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Signed-off-by: Jagan Teki <jteki at openedev.com>
> ---
> 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))) {
or
if (ret < 0 || !(qeb_status & STATUS_QEB_MXIC)) {
Regards
Mugunthan V N
> + printf("SF: Macronix SR Quad bit not clear\n");
> + return -EINVAL;
> }
>
> return ret;
>
More information about the U-Boot
mailing list