Message ID | 20190320102141.19316-5-geert+renesas@glider.be (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pinctrl: sh-pfc: Validation and compile-testing | expand |
On Wed, Mar 20, 2019 at 11:21:35AM +0100, Geert Uytterhoeven wrote: > When compile-testing on arm: > > arch/sh/include/cpu-sh4/cpu/sh7786.h: In function ‘sh7786_mm_sel’: > arch/sh/include/cpu-sh4/cpu/sh7786.h:135:21: warning: passing argument 1 of ‘__raw_readl’ makes pointer from integer without a cast [-Wint-conversion] > return __raw_readl(0xFC400020) & 0x7; > ^~~~~~~~~~ > In file included from include/linux/io.h:25:0, > from arch/sh/include/cpu-sh4/cpu/sh7786.h:14, > from drivers/pinctrl/sh-pfc/pfc-sh7786.c:15: > arch/arm/include/asm/io.h:113:21: note: expected ‘const volatile void *’ but argument is of type ‘unsigned int’ > #define __raw_readl __raw_readl > ^ > arch/arm/include/asm/io.h:114:19: note: in expansion of macro ‘__raw_readl’ > static inline u32 __raw_readl(const volatile void __iomem *addr) > ^~~~~~~~~~~ > > __raw_readl() on SuperH is a macro that casts the passed I/O address to > the correct type, while the implementations on most other architectures > expect to be passed the correct pointer type. > > Add an explicit cast to fix this. > > Note that this also gets rid of a sparse warning on SuperH: > > arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: warning: incorrect type in argument 1 (different base types) > arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: expected void const volatile [noderef] <asn:2>*<noident> > arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: got unsigned int > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Simon Horman <horms+renesas@verge.net.au> > --- > As this is a dependency for sh-pfc compile-testing, I intend to queue > this up in sh-pfc-for-v5.2. > > v3: > - New. > --- > arch/sh/include/cpu-sh4/cpu/sh7786.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/sh/include/cpu-sh4/cpu/sh7786.h b/arch/sh/include/cpu-sh4/cpu/sh7786.h > index 8f9bfbf3cdb1097f..d6cce65b48713f60 100644 > --- a/arch/sh/include/cpu-sh4/cpu/sh7786.h > +++ b/arch/sh/include/cpu-sh4/cpu/sh7786.h > @@ -132,7 +132,7 @@ enum { > > static inline u32 sh7786_mm_sel(void) > { > - return __raw_readl(0xFC400020) & 0x7; > + return __raw_readl((const volatile void __iomem *)0xFC400020) & 0x7; > } > > #endif /* __CPU_SH7786_H__ */ > -- > 2.17.1 >
diff --git a/arch/sh/include/cpu-sh4/cpu/sh7786.h b/arch/sh/include/cpu-sh4/cpu/sh7786.h index 8f9bfbf3cdb1097f..d6cce65b48713f60 100644 --- a/arch/sh/include/cpu-sh4/cpu/sh7786.h +++ b/arch/sh/include/cpu-sh4/cpu/sh7786.h @@ -132,7 +132,7 @@ enum { static inline u32 sh7786_mm_sel(void) { - return __raw_readl(0xFC400020) & 0x7; + return __raw_readl((const volatile void __iomem *)0xFC400020) & 0x7; } #endif /* __CPU_SH7786_H__ */
When compile-testing on arm: arch/sh/include/cpu-sh4/cpu/sh7786.h: In function ‘sh7786_mm_sel’: arch/sh/include/cpu-sh4/cpu/sh7786.h:135:21: warning: passing argument 1 of ‘__raw_readl’ makes pointer from integer without a cast [-Wint-conversion] return __raw_readl(0xFC400020) & 0x7; ^~~~~~~~~~ In file included from include/linux/io.h:25:0, from arch/sh/include/cpu-sh4/cpu/sh7786.h:14, from drivers/pinctrl/sh-pfc/pfc-sh7786.c:15: arch/arm/include/asm/io.h:113:21: note: expected ‘const volatile void *’ but argument is of type ‘unsigned int’ #define __raw_readl __raw_readl ^ arch/arm/include/asm/io.h:114:19: note: in expansion of macro ‘__raw_readl’ static inline u32 __raw_readl(const volatile void __iomem *addr) ^~~~~~~~~~~ __raw_readl() on SuperH is a macro that casts the passed I/O address to the correct type, while the implementations on most other architectures expect to be passed the correct pointer type. Add an explicit cast to fix this. Note that this also gets rid of a sparse warning on SuperH: arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: warning: incorrect type in argument 1 (different base types) arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: expected void const volatile [noderef] <asn:2>*<noident> arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: got unsigned int Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- As this is a dependency for sh-pfc compile-testing, I intend to queue this up in sh-pfc-for-v5.2. v3: - New. --- arch/sh/include/cpu-sh4/cpu/sh7786.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)