[U-Boot] [PATCH v2 3/4] sf: Read back and check once macronix quad bit set

Jagan Teki jteki at openedev.com
Wed Dec 23 09:21:48 CET 2015


On 23 December 2015 at 13:22, Mugunthan V N <mugunthanvnm at ti.com> 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 <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))) {

So =0 is a success case, this is what you pointing to correct? did you
test this?

> 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;

thanks!
-- 
Jagan.


More information about the U-Boot mailing list