[U-Boot] [PATCH v4 3/7] usb: host: xhci-omap: fix double weak board_usb_init functions
Uri Mashiach
uri.mashiach at compulab.co.il
Wed Mar 1 09:12:39 UTC 2017
On 02/28/2017 03:13 PM, Roger Quadros wrote:
> On 28/02/17 10:00, Uri Mashiach wrote:
>> Hi,
>>
>> On 02/27/2017 06:22 PM, Roger Quadros wrote:
>>> Hi,
>>>
>>> On 23/02/17 15:39, Uri Mashiach wrote:
>>>> A weak version of the function board_usb_init is implemented in:
>>>> common/usb.c
>>>> drivers/usb/host/xhci-omap.c
[...]
>>>> board/compulab/cl-som-am57x/cl-som-am57x.c | 2 +-
>>>> board/ti/am43xx/board.c | 4 ++--
>>>> board/ti/am57xx/board.c | 4 ++--
>>>> board/ti/dra7xx/evm.c | 4 ++--
>>>> drivers/usb/host/xhci-omap.c | 17 +++++++++++++++--
>>>
>>> What about board/ti/omap5_uevm/evm.c ?
>>
>> The symbol CONFIG_USB_XHCI_OMAP is not included in the file include/configs/omap5_uevm.h, therefore:
>> The file drivers/usb/host/xhci-omap.c is not included in the compilation - no double implementations to fix.
>>
>
> But if someone wants to use the XHCI host he will enable the CONFIG_USB_XHCI_OMAP for omap5_uevm right?
> We need to ensure it doesn't break then.
>
Compilation errors are generated for compilation attempt of U-Boot for
the target ti/omap5_uevm with CONFIG_USB_XHCI_OMAP.
Maybe the adjustments relevant for the current commit should be applied
after the CONFIG_USB_XHCI_OMAP adjustments?
Generated error messages:
In file included from include/asm/arch/sys_proto.h:12:0,
from /home/work/u-boot/board/ti/omap5_uevm/evm.c:12:
/home/work/u-boot/board/ti/omap5_uevm/evm.c: In function
'enable_host_clocks':
/home/work/u-boot/board/ti/omap5_uevm/evm.c:172:22: error: 'const struct
prcm_regs' has no member named 'cm_l3init_usb_otg_ss_clkctrl'
setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl,
^
/home/work/u-boot/arch/arm/include/asm/io.h:78:55: note: in definition
of macro '__arch_putl'
#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v))
^
/home/work/u-boot/arch/arm/include/asm/io.h:175:35: note: in expansion
of macro '__raw_writel'
#define out_arch(type,endian,a,v) __raw_write##type(cpu_to_##endian(v),a)
^
/home/work/u-boot/arch/arm/include/asm/io.h:179:23: note: in expansion
of macro 'out_arch'
#define out_le32(a,v) out_arch(l,le32,a,v)
^
/home/work/u-boot/arch/arm/include/asm/io.h:199:2: note: in expansion of
macro 'out_le32'
out_##type((addr), in_##type(addr) | (set))
^
/home/work/u-boot/arch/arm/include/asm/io.h:209:33: note: in expansion
of macro 'setbits'
#define setbits_le32(addr, set) setbits(le32, addr, set)
^
/home/work/u-boot/board/ti/omap5_uevm/evm.c:172:2: note: in expansion of
macro 'setbits_le32'
setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl,
^
/home/work/u-boot/board/ti/omap5_uevm/evm.c:172:22: error: 'const struct
prcm_regs' has no member named 'cm_l3init_usb_otg_ss_clkctrl'
setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl,
^
/home/work/u-boot/arch/arm/include/asm/io.h:78:61: note: in definition
of macro '__arch_putl'
#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v))
^
/home/work/u-boot/arch/arm/include/asm/io.h:175:35: note: in expansion
of macro '__raw_writel'
#define out_arch(type,endian,a,v) __raw_write##type(cpu_to_##endian(v),a)
^
/home/work/u-boot/include/linux/byteorder/generic.h:89:21: note: in
expansion of macro '__cpu_to_le32'
#define cpu_to_le32 __cpu_to_le32
^
/home/work/u-boot/arch/arm/include/asm/io.h:179:23: note: in expansion
of macro 'out_arch'
#define out_le32(a,v) out_arch(l,le32,a,v)
^
/home/work/u-boot/arch/arm/include/asm/io.h:199:2: note: in expansion of
macro 'out_le32'
out_##type((addr), in_##type(addr) | (set))
^
/home/work/u-boot/include/linux/byteorder/generic.h:90:21: note: in
expansion of macro '__le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^
/home/work/u-boot/arch/arm/include/asm/io.h:133:25: note: in expansion
of macro '__arch_getl'
#define __raw_readl(a) __arch_getl(a)
^
/home/work/u-boot/arch/arm/include/asm/io.h:176:49: note: in expansion
of macro '__raw_readl'
#define in_arch(type,endian,a) endian##_to_cpu(__raw_read##type(a))
^
/home/work/u-boot/arch/arm/include/asm/io.h:183:20: note: in expansion
of macro 'in_arch'
#define in_le32(a) in_arch(l,le32,a)
^
/home/work/u-boot/arch/arm/include/asm/io.h:199:21: note: in expansion
of macro 'in_le32'
out_##type((addr), in_##type(addr) | (set))
^
/home/work/u-boot/arch/arm/include/asm/io.h:209:33: note: in expansion
of macro 'setbits'
#define setbits_le32(addr, set) setbits(le32, addr, set)
^
/home/work/u-boot/board/ti/omap5_uevm/evm.c:172:2: note: in expansion of
macro 'setbits_le32'
setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl,
^
/home/work/u-boot/board/ti/omap5_uevm/evm.c: At top level:
/home/work/u-boot/board/ti/omap5_uevm/evm.c:269:5: error: redefinition
of 'board_usb_init'
int board_usb_init(int index, enum usb_init_type init)
^
/home/work/u-boot/board/ti/omap5_uevm/evm.c:83:5: note: previous
definition of 'board_usb_init' was here
int board_usb_init(int index, enum usb_init_type init)
^
/home/work/u-boot/board/ti/omap5_uevm/evm.c: In function 'board_usb_init':
/home/work/u-boot/board/ti/omap5_uevm/evm.c:271:6: warning: unused
variable 'ret' [-Wunused-variable]
int ret;
^
--
Thanks and Regards,
Uri
More information about the U-Boot
mailing list