[U-Boot] [PATCH v4 3/7] usb: host: xhci-omap: fix double weak board_usb_init functions

Roger Quadros rogerq at ti.com
Wed Mar 1 15:13:00 UTC 2017


On 01/03/17 11:12, Uri Mashiach wrote:
> 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?

I'm fine with that. 

> 
> 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;
>       ^

-- 
cheers,
-roger


More information about the U-Boot mailing list