ARM: ux500: avoid warning in ux500_read_asicid
Subsystems (3)
PATCH 1/1 ARM: ux500: avoid warning in ux500_read_asicid
phys_addr_t may be 64 bit, which causes this harmless warning in ux500_read_asicid:
arch/arm/mach-ux500/id.c: In function 'ux500_read_asicid':arch/arm/include/asm/io.h:159:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define IOMEM(x) ((void __force __iomem *)(x))
^arch/arm/mach-ux500/id.c:40:9: note: in expansion of macro 'readl'
return readl(IOMEM(UX500_VIRT_ROM + (addr & 0xfff)));
We can solve this in a nicer way by making UX500_VIRT_ROM have a proper type to start with and calculating the address using pointer arithmetic.
arch/arm/mach-ux500/db8500-regs.h +1 -1
@@ -184,7 +184,7 @@#define U8500_IO_VIRTUAL 0xf0000000#define U8500_IO_PHYSICAL 0xa0000000/* This is where we map in the ROM to check ASIC IDs */ -#define UX500_VIRT_ROM 0xf0000000 +#define UX500_VIRT_ROM IOMEM(0xf0000000)/* This macro is used in assembly, so no cast */ #define IO_ADDRESS (x) \
arch/arm/mach-ux500/id.c +3 -3
@@ -21,11 +21,11 @@struct dbx500_asic_id dbx500_id; -static unsigned int ux500_read_asicid (phys_addr_t addr) +static unsigned int __init ux500_read_asicid (phys_addr_t addr) {phys_addr_t base = addr & ~0xfff ;struct map_desc desc = { - .virtual =UX500_VIRT_ROM , + .virtual = (unsigned long )UX500_VIRT_ROM , .pfn =__phys_to_pfn (base), .length =SZ_16K , .type =MT_DEVICE ,
@@ -37,7 +37,7 @@ static unsigned int ux500_read_asicid(phys_addr_t addr)local_flush_tlb_all ();flush_cache_all (); -return readl (IOMEM (UX500_VIRT_ROM + (addr &0xfff ))); +return readl (UX500_VIRT_ROM + (addr &0xfff )); }static void ux500_print_soc_info (unsigned int asicid)
PATCH 1/1 ARM: ux500: avoid warning in ux500_read_asicid
Quoted 7 lines · Arnd Bergmann
phys_addr_tmay be 64 bit, which causes this harmless warning inux500_read_asicid:
arch/arm/mach-ux500/id.c: In function 'ux500_read_asicid':arch/arm/include/asm/io.h:159:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]#define IOMEM(x) ((void __force __iomem *)(x)) ^
Quoted 8 lines
arch/arm/mach-ux500/id.c:40:9: note: in expansion of macro 'readl'
returnreadl(IOMEM(UX500_VIRT_ROM + (addr & 0xfff)));We can solve this in a nicer way by making
UX500_VIRT_ROMhave a proper type to start with and calculating the address using pointer arithmetic.Signed-off-by Arnd Bergmann <[email protected]>Cc Linus Walleij <[email protected]>
Patch applied to ux500-core for v3.11, as it doesn't seem to be a dangerous regression.
You'll get this back by pull request soon-ish.
Yours,
Linus Walleij
PATCH 1/1 ARM: ux500: avoid warning in ux500_read_asicid
Quoted 10 lines · On Tuesday 04 June 2013 11:23:48 Linus Walleij wrote:
Quoted 3 lines · Arnd Bergmann
phys_addr_tmay be 64 bit, which causes this harmless warning inux500_read_asicid:Patch applied to ux500-core for v3.11, as it doesn't seem to be a dangerous regression.
You'll get this back by pull request soon-ish.
Ok, thanks!
Arnd