[U-Boot] [UBOOT][PATCH] mtd: spi: fix quad bit set path

Jagan Teki jagannadh.teki at gmail.com
Fri May 23 18:50:20 CEST 2014


On Wed, Apr 23, 2014 at 6:57 PM, Sourav Poddar <sourav.poddar at ti.com> wrote:
> Currently, flash quad bit is set in "spi_flash_validate_params" and later
> at the end in the same api, we write 0 to status register for few flashes,
> thereby overriding the quad bit set. This fix moves the quad bit setting
> outside this api in "spi_flash_probe_slave"
>
> Signed-off-by: Sourav Poddar <sourav.poddar at ti.com>
> ---
>  drivers/mtd/spi/sf_probe.c |   20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
> index 0a46fe3..8482f08 100644
> --- a/drivers/mtd/spi/sf_probe.c
> +++ b/drivers/mtd/spi/sf_probe.c
> @@ -197,16 +197,6 @@ static struct spi_flash *spi_flash_validate_params(struct spi_slave *spi,
>                 /* Go for default supported write cmd */
>                 flash->write_cmd = CMD_PAGE_PROGRAM;
>
> -       /* Set the quad enable bit - only for quad commands */
> -       if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) ||
> -           (flash->read_cmd == CMD_READ_QUAD_IO_FAST) ||
> -           (flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {
> -               if (spi_flash_set_qeb(flash, idcode[0])) {
> -                       debug("SF: Fail to set QEB for %02x\n", idcode[0]);
> -                       return NULL;
> -               }
> -       }
> -
>         /* Read dummy_byte: dummy byte is determined based on the
>          * dummy cycles of a particular command.
>          * Fast commands - dummy_byte = dummy_cycles/8
> @@ -327,6 +317,16 @@ static struct spi_flash *spi_flash_probe_slave(struct spi_slave *spi)
>         if (!flash)
>                 goto err_read_id;
>
> +       /* Set the quad enable bit - only for quad commands */
> +       if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) ||
> +               (flash->read_cmd == CMD_READ_QUAD_IO_FAST) ||
> +               (flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {
> +               if (spi_flash_set_qeb(flash, idcode[0])) {
> +                       debug("SF: Fail to set QEB for %02x\n", idcode[0]);
> +                       return NULL;
> +               }
> +       }
> +
>  #ifdef CONFIG_OF_CONTROL
>         if (spi_flash_decode_fdt(gd->fdt_blob, flash)) {
>                 debug("SF: FDT decode error\n");
> --
> 1.7.9.5

Applied to u-boot-spi/master

thanks!
-- 
Jagan.


More information about the U-Boot mailing list