[U-Boot] [PATCH v5 05/15] dm: usb: Prefix ehci interrupt-queue functions with _ehci_

Hans de Goede hdegoede at redhat.com
Mon May 11 20:27:28 CEST 2015


Hi,

On 10-05-15 23:58, Simon Glass wrote:
> Hi Hans,
>
> On 10 May 2015 at 06:10, Hans de Goede <hdegoede at redhat.com> wrote:
>> This is a preparation patch for adding interrupt-queue support to the
>> ehci dm code.
>>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> Acked-by: Simon Glass <sjg at chromium.org>
>> ---
>
> I still see some sort of bisect problem here:
>
> Summary of 16 commits for 33 boards (32 threads, 1 job per thread)
> 01: dm: sf: Update default name of spi flash in structure udevice
> 02: usb: Fix handover of full-speed devices from ehci to companion
> 03: usb: usb_control_msg() propagate controller error code
> 04: usb: legacy_hub_port_reset() check and propagate
> usb_set_port_feature() errors
> 05: usb: Stop reset procedure when a dev is handed over to a companion hcd
> 06: dm: usb: Prefix ehci interrupt-queue functions with _ehci_
>         arm:  +   odroid-xu3 snow arndale odroid
> +drivers/usb/host/built-in.o: In function `_ehci_submit_int_msg':
> +build/../drivers/usb/host/ehci-hcd.c:1518: undefined reference to
> `create_int_queue'
> +build/../drivers/usb/host/ehci-hcd.c:1523: undefined reference to
> `poll_int_queue'
> +build/../drivers/usb/host/ehci-hcd.c:1536: undefined reference to
> `destroy_int_queue'
> +arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG
> linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
> assertion fail /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.23.1/bfd/elf32-arm.c:7677
> +arm-linux-gnueabihf-ld.bfd: error: required section '.rel.plt' not
> found in the linker script
> +arm-linux-gnueabihf-ld.bfd: final link failed: Invalid operation
> +make[1]: *** [u-boot] Error 1
> +make: *** [sub-make] Error 2
> w+../drivers/usb/host/ehci-hcd.c:1266:26: warning:
> ‘_ehci_create_int_queue’ defined but not used [-Wunused-function]
> w+../drivers/usb/host/ehci-hcd.c:1424:14: warning:
> ‘_ehci_poll_int_queue’ defined but not used [-Wunused-function]
> w+../drivers/usb/host/ehci-hcd.c:1460:12: warning:
> ‘_ehci_destroy_int_queue’ defined but not used [-Wunused-function]
> 07: dm: usb: Add support for interrupt queues to the dm usb code
>         arm:     odroid-xu3 snow arndale odroid
> -drivers/usb/host/built-in.o: In function `_ehci_submit_int_msg':
> -build/../drivers/usb/host/ehci-hcd.c:1518: undefined reference to
> `create_int_queue'
> -build/../drivers/usb/host/ehci-hcd.c:1523: undefined reference to
> `poll_int_queue'
> -build/../drivers/usb/host/ehci-hcd.c:1536: undefined reference to
> `destroy_int_queue'
> -arm-linux-gnueabihf-ld.bfd: BFD (crosstool-NG
> linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
> assertion fail /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/binutils-2.23.1/bfd/elf32-arm.c:7677
> -arm-linux-gnueabihf-ld.bfd: error: required section '.rel.plt' not
> found in the linker script
> -arm-linux-gnueabihf-ld.bfd: final link failed: Invalid operation
> -make[1]: *** [u-boot] Error 1
> -make: *** [sub-make] Error 2
> w-../drivers/usb/host/ehci-hcd.c:1266:26: warning:
> ‘_ehci_create_int_queue’ defined but not used [-Wunused-function]
> w-../drivers/usb/host/ehci-hcd.c:1424:14: warning:
> ‘_ehci_poll_int_queue’ defined but not used [-Wunused-function]
> w-../drivers/usb/host/ehci-hcd.c:1460:12: warning:
> ‘_ehci_destroy_int_queue’ defined but not used [-Wunused-function]
> 08: dm: usb: Move printing of usb scan status to usb_scan_bus()


Ah, looking closer at this I see the problem, _ehci_submit_int_msg()
is implemented by calling create/poll/destroy_int_queue. This is working
for CONFIG_DM_USB=y configs after my patchset by _ehci_submit_int_msg()
calling the usb-uclass.c implementations of these, which then call the
_ehci_ versions of them through the controller ops.

This does not work in the intermediate state with only this patch
applied because then the usb-uclass.c implementations do not yet exist.

I'll send a v6 of this patch making ehci_submit_int_msg() use the _ehci_
prefixed versions which is the right thing to do even without the git
bisect problem this causes.

Sorry about this.

Regards,

Hans


More information about the U-Boot mailing list