[U-Boot] [Patch V4 1/4] spi: fsl_qspi: fix compile warning for 64-bit platform
Qianyu Gong
qianyu.gong at nxp.com
Wed Jan 20 05:03:27 CET 2016
> -----Original Message-----
> From: york sun
> Sent: Wednesday, January 20, 2016 2:42 AM
> To: Qianyu Gong <qianyu.gong at nxp.com>; u-boot at lists.denx.de
> Cc: Mingkai Hu <mingkai.hu at nxp.com>; jteki at openedev.com; Yao Yuan
> <yao.yuan at nxp.com>; R58495 at freescale.com; Gong Qianyu
> <Qianyu.Gong at freescale.com>
> Subject: Re: [Patch V4 1/4] spi: fsl_qspi: fix compile warning for 64-bit platform
>
> On 01/10/2016 06:14 PM, Gong Qianyu wrote:
> > From: Gong Qianyu <Qianyu.Gong at freescale.com>
> >
> > This patch fixes the following compile warning:
> > drivers/spi/fsl_qspi.c: In function 'fsl_qspi_probe':
> > drivers/spi/fsl_qspi.c:937:15:
> > warning: cast to pointer from integer of different size
> > [-Wint-to-pointer-cast]
> > priv->regs = (struct fsl_qspi_regs *)plat->reg_base;
> > ^
> > Just make the cast explict.
> >
> > Signed-off-by: Gong Qianyu <Qianyu.Gong at freescale.com>
> > ---
> > V4:
> > - Revise the commit message.
> > V2-V3:
> > - No change.
> >
> > drivers/spi/fsl_qspi.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index
> > feec3e8..9f23c10 100644
> > --- a/drivers/spi/fsl_qspi.c
> > +++ b/drivers/spi/fsl_qspi.c
> > @@ -936,7 +936,7 @@ static int fsl_qspi_probe(struct udevice *bus)
> >
> > dm_spi_bus->max_hz = plat->speed_hz;
> >
> > - priv->regs = (struct fsl_qspi_regs *)plat->reg_base;
>
> The reg_base is u32. Is it always correct on 64-bit SoC?
>
So far it's always a u32 type of CCSR address.
> > + priv->regs = (struct fsl_qspi_regs *)(unsigned long)plat->reg_base;
>
> How about (struct fsl_qspi_regs *)(uintptr_t)plat->reg_base?
>
> York
>
The size of ''unsigned long'' depends on compilers. It works well with GCC.
Looks the same. But not sure what is defining CONFIG_USE_STDIN for.
#ifdef CONFIG_USE_STDIN
/* Provided by gcc. */
#include <stdint.h>
#else
/* Type for `void *' pointers. */
typedef unsigned long int uintptr_t;
#endif
Regards,
Qianyu
More information about the U-Boot
mailing list