[U-Boot] [PATCH] usb: dwc2-otg: make regs_phy (in platdata) a uintptr_t

Philipp Tomsich philipp.tomsich at theobroma-systems.com
Thu Dec 6 15:00:07 UTC 2018


> On 06.12.2018, at 01:48, Marek Vasut <marex at denx.de> wrote:
> 
> On 12/06/2018 01:32 AM, Philipp Tomsich wrote:
>> The regs_phy field of the platform data structure for dwc2-otg is
>> today declared an unsigned int, but will eventually be cast into a
>> void* for a writel operation.  This triggers errors on modern GCC
>> versions.
>> 
>> E.g. we get the following error with GCC 6.3:
>>  drivers/usb/phy/rockchip_usb2_phy.c: In function 'property_enable':
>>  arch/arm/include/asm/io.h:49:29: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>>   #define __arch_putl(v,a)  (*(volatile unsigned int *)(a) = (v))
>>                               ^
>>  arch/arm/include/asm/io.h:117:48: note: in expansion of macro '__arch_putl'
>>   #define writel(v,c) ({ u32 __v = v; __iowmb(); __arch_putl(__v,c); __v; })
>>                                                  ^~~~~~~~~~~
>>  drivers/usb/phy/rockchip_usb2_phy.c:61:2: note: in expansion of macro 'writel'
>>    writel(val, pdata->regs_phy + reg->offset);
>>    ^~~~~~
>> 
>> This commit changes regs_phy to be a uintptr_t to ensure that it is
>> large enough to hold any valid pointer (and fix the associated
>> warning).
>> 
>> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> 
> Oh, ew. Good catch.
> 
> Acked-by: Marek Vasut <marex at denx.de>
> 
> Apply it alongside the 

Applied to u-boot-rockchip/master.



More information about the U-Boot mailing list