[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