[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