[U-Boot] [U-Boot, v5, 1/3] usb: gadget: at91_udc: port linux driver at91_udc

Andreas Bießmann andreas.devel at googlemail.com
Fri Sep 11 09:39:06 CEST 2015


Dear Heiko Schocher,

Heiko Schocher <hs at denx.de> writes:
>port at91_udc driver from linux:
>
>original commit Message:
>commit c94e289f195e0e13cf34d27f9338d28221a85751
>Author: Arnd Bergmann <arnd at arndb.de>
>Date:   Sat Apr 11 00:14:21 2015 +0200
>
>    usb: gadget: remove incorrect __init/__exit annotations
>
>    A recent change introduced a link error for the composite
>    printer gadget driver:
>
>    `printer_unbind' referenced in section `.ref.data' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o
>
>    Evidently the unbind function should not be marked __exit here,
>    because it is called through a callback pointer that is not necessarily
>    discarded, __composite_unbind() is indeed called from the error path of
>    composite_bind(), which can never work for a built-in driver.
>
>    Looking at the surrounding code, I found the same problem in all other
>    composite gadget drivers in both the bind and unbind functions, as
>    well as the udc platform driver 'remove' functions. Those will break
>    if anyone uses the 'unbind' sysfs attribute to detach a device from a
>    built-in driver.
>
>    This patch removes the incorrect annotations from all the gadget
>    drivers.
>
>Signed-off-by: Heiko Schocher <hs at denx.de>
>---
>checkpatch detects a lot of errors, but as this code is copied
>from linux, I tend to not fix them, so later updates with
>linux code is easier.
>
>Changes in v5: None
>Changes in v4: None
>Changes in v3:
>- add comments from Alexandre Belloni
>  get rid of cpu_is_at91*, use newer linux version as
>  base for the port to U-Boot.
>
>Changes in v2:
>- add comments from Lukasz Majewski
>  - seperate usb gadget driver port from linux into 2 commits
>  - first patch original from linux (with complete commit message)
>  - second adds U-Boot changes without "#ifdef __UBOOT__"
>
> drivers/usb/gadget/at91_udc.c | 2036 +++++++++++++++++++++++++++++++++++++++++
> drivers/usb/gadget/at91_udc.h |  175 ++++
> 2 files changed, 2211 insertions(+)
> create mode 100644 drivers/usb/gadget/at91_udc.c
> create mode 100644 drivers/usb/gadget/at91_udc.h

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bießmann


More information about the U-Boot mailing list