[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