[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