[PATCH v5 0/5] usb/gadget: independent registration of gadgets and gadget drivers

From: Ruslan Bilovol
Date: Mon Jun 22 2015 - 18:01:35 EST


This patchset adds independent registration of gadgets
and gadget drivers to udc-core. This is very useful for
built-in modules into kernel case since it's possible
situation that gadget driver is probing at a time
when no gadgets are registered in udc-core.
In this case instead of silently failing without
of any attempt to recover, with independent registration
of gadgets and gadget drivers there is no matter
in which order gadgets and gadget drivers are
probed/registered.

This patch has side-effect on gadget drivers that had
__init/__exit attributes on some paths like bind/unbind
and (since bind/unbind may happen at any time) should
not use them now. This is covered by forth patch

=====================
v5:
- this set of patches (that I already forgot about) has been
successfully tested by Maxime Ripard, who sent me confirmation via
personal email, so his Tested-by tag is added to the patches
- rebased onto latest 'next' branch of Felipe Balbi's tree

v4:
- misc fixes - addressed Alan's and Sergei's comments
- rebased onto latest 'next' branch of Felipe Balbi's tree

v3:
- addressed Alan's comments - now UDC name and pending
gadget drivers list is a part of struct usb_gadget_driver.
- removed usb_udc_attach_driver() function that became unused
and not needed now

v2:
- changed first patch to have only deferred probe part
(because Gadget Bus seems to be better variant when
some more complicated behavior will be required)
- rebased to latest 'next' branch of Felipe Balbi's tree

Ruslan Bilovol (5):
usb: gadget: bind UDC by name passed via usb_gadget_driver structure
usb: gadget: configfs: pass UDC name via usb_gadget_driver struct
usb: gadget: udc-core: remove unused usb_udc_attach_driver()
usb: gadget: legacy: don't use __init/__exit attributes for
bind/unbind path
usb: gadget: udc-core: independent registration of gadgets and gadget
drivers

drivers/usb/gadget/configfs.c | 27 +++++-----
drivers/usb/gadget/legacy/acm_ms.c | 6 +--
drivers/usb/gadget/legacy/audio.c | 6 +--
drivers/usb/gadget/legacy/cdc2.c | 6 +--
drivers/usb/gadget/legacy/dbgp.c | 2 +-
drivers/usb/gadget/legacy/ether.c | 8 +--
drivers/usb/gadget/legacy/gmidi.c | 6 +--
drivers/usb/gadget/legacy/hid.c | 6 +--
drivers/usb/gadget/legacy/mass_storage.c | 4 +-
drivers/usb/gadget/legacy/multi.c | 16 +++---
drivers/usb/gadget/legacy/ncm.c | 6 +--
drivers/usb/gadget/legacy/nokia.c | 6 +--
drivers/usb/gadget/legacy/printer.c | 6 +--
drivers/usb/gadget/legacy/serial.c | 2 +-
drivers/usb/gadget/legacy/webcam.c | 4 +-
drivers/usb/gadget/legacy/zero.c | 2 +-
drivers/usb/gadget/udc/udc-core.c | 87 ++++++++++++++++++++------------
include/linux/usb/gadget.h | 8 ++-
18 files changed, 117 insertions(+), 91 deletions(-)

--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at http://www.tux.org/lkml/