On Saturday, August 15, 2015 at 04:15:58 AM, Vikas Manocha wrote:
> Indirect read/write start addresses are flash start addresses for indirect
> read or write transfers. These should be absolute flash addresses instead
> of offsets.
> 
> Signed-off-by: Vikas Manocha <vikas.mano...@st.com>
> ---
> 
> Changes in v3: none
> Changes in v2: Rebased to master
> 
>  drivers/spi/cadence_qspi_apb.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/spi/cadence_qspi_apb.c
> b/drivers/spi/cadence_qspi_apb.c index b46e5fe..6b5ae30 100644
> --- a/drivers/spi/cadence_qspi_apb.c
> +++ b/drivers/spi/cadence_qspi_apb.c
> @@ -705,7 +705,8 @@ int cadence_qspi_apb_indirect_read_setup(struct
> cadence_spi_platdata *plat,
> 
>       /* Get address */
>       addr_value = cadence_qspi_apb_cmd2addr(&cmdbuf[1], addr_bytes);
> -     writel(addr_value, plat->regbase + CQSPI_REG_INDIRECTRDSTARTADDR);
> +     writel((u32)plat->ahbbase + addr_value,
> +                     plat->regbase + CQSPI_REG_INDIRECTRDSTARTADDR);

Please drop this (u32) cast, it's misleading and problematic.

>       /* The remaining lenght is dummy bytes. */
>       dummy_bytes = cmdlen - addr_bytes - 1;
> @@ -795,7 +796,8 @@ int cadence_qspi_apb_indirect_write_setup(struct
> cadence_spi_platdata *plat,
> 
>       /* Setup write address. */
>       reg = cadence_qspi_apb_cmd2addr(&cmdbuf[1], addr_bytes);
> -     writel(reg, plat->regbase + CQSPI_REG_INDIRECTWRSTARTADDR);
> +     writel((u32)plat->ahbbase + reg,
> +                     plat->regbase + CQSPI_REG_INDIRECTWRSTARTADDR);

Please drop this (u32) cast, it's misleading and problematic.

Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to