
On 09/07/2016 03:31 PM, Chin Liang See wrote:
On Tue, 2016-09-06 at 14:12 +0200, Marek Vasut wrote:
On 09/06/2016 11:41 AM, Chin Liang See wrote:
On Mon, 2016-09-05 at 18:02 +0200, Marek Vasut wrote:
On 08/22/2016 05:02 PM, Chin Liang See wrote:
Fix casting warning to pointer from integer of different size when enabling ARM64 support
What sort of error did you observe ?
The warning is triggered as ARM64 has build flag -Wpointer-to-int -cast and similar. Here is the build error log
arch/arm/mach-socfpga/system_manager.c: In function sysmgr_pinmux_init:
arch/arm/mach-socfpga/system_manager.c:59:18: warning:
cast from pointer to integer of different size [-Wpointer-to-int-cast]
uint32_t regs = (uint32_t)&sysmgr_regs
->emacio[0];
^ In file
included from arch/arm/mach-socfpga/system_manager.c:8:0:
./arch/arm/include/asm/io.h:78:29: warning: cast to pointer
from integer of different size [-Wint-to-pointer-cast]
#define __arch_putl(v,a) (*(volatile unsigned
int *)(a) = (v))
I see ... Except the code below does regs += sizeof(regs); , which in the original case increments the address by 4 , but with your change, the increment would be 16 . So this patch breaks things.
Relook back, this portion is not being used and hence not being validated. Will put #ifdef in place to skip out these code.
Which portion is not used ? I don't understand why this patch is valid, in fact I think it is wrong.