linux/drivers/usb/gadget
Alan Stern e9df41c5c5 USB: make HCDs responsible for managing endpoint queues
This patch (as954) implements a suggestion of David Brownell's.  Now
the host controller drivers are responsible for linking and unlinking
URBs to/from their endpoint queues.  This eliminates the possiblity of
strange situations where usbcore thinks an URB is linked but the HCD
thinks it isn't.  It also means HCDs no longer have to check for URBs
being dequeued before they were fully enqueued.

In addition to the core changes, this requires changing every host
controller driver and the root-hub URB handler.  For the most part the
required changes are fairly small; drivers have to call
usb_hcd_link_urb_to_ep() in their urb_enqueue method,
usb_hcd_check_unlink_urb() in their urb_dequeue method, and
usb_hcd_unlink_urb_from_ep() before giving URBs back.  A few HCDs make
matters more complicated by the way they split up the flow of control.

In addition some method interfaces get changed.  The endpoint argument
for urb_enqueue is now redundant so it is removed.  The unlink status
is required by usb_hcd_check_unlink_urb(), so it has been added to
urb_dequeue.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: David Brownell <david-b@pacbell.net>
CC: Olav Kongas <ok@artecdesign.ee>
CC: Tony Olech <tony.olech@elandigitalsystems.com>
CC: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-10-12 14:55:10 -07:00
..
amd5536udc.c USB: amd5536 UDC driver (in GEODE southbridge) 2007-07-19 17:46:05 -07:00
amd5536udc.h USB: amd5536 UDC driver (in GEODE southbridge) 2007-07-19 17:46:05 -07:00
at91_udc.c usb gadget stack: remove usb_ep_*_buffer(), part 2 2007-07-12 16:34:42 -07:00
at91_udc.h USB: at91_udc wakeup event updates 2007-02-07 15:44:37 -08:00
config.c USB: "sparse" cleanups for usb gadgets 2007-07-30 13:27:47 -07:00
dummy_hcd.c USB: make HCDs responsible for managing endpoint queues 2007-10-12 14:55:10 -07:00
epautoconf.c USB: "sparse" cleanups for usb gadgets 2007-07-30 13:27:47 -07:00
ether.c USB: gadget: ethernet gadget cleanups, shrinkage 2007-10-12 14:55:03 -07:00
file_storage.c USB: gadget: file storage gadget cleanups 2007-10-12 14:55:04 -07:00
fsl_usb2_udc.c USB: gadget: gadget_is_{dualspeed,otg} predicates and cleanup 2007-10-12 14:55:03 -07:00
fsl_usb2_udc.h USB: fsl_usb2_udc: Get max ep number from DCCPARAMS register 2007-07-12 16:34:30 -07:00
gadget_chips.h USB: m66592-udc: fixes some problems 2007-07-19 17:46:05 -07:00
gmidi.c USB: gadget: gmidi cleanups 2007-10-12 14:55:03 -07:00
goku_udc.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
goku_udc.h USB: goku_udc trivial cleanups 2007-07-12 16:34:43 -07:00
inode.c USB: gadget: gadget_is_{dualspeed,otg} predicates and cleanup 2007-10-12 14:55:03 -07:00
Kconfig USB: m66592-udc: fixes some problems 2007-07-19 17:46:05 -07:00
lh7a40x_udc.c usb gadget stack: remove usb_ep_*_buffer(), part 2 2007-07-12 16:34:42 -07:00
lh7a40x_udc.h USB: <linux/usb_ch9.h> becomes <linux/usb/ch9.h> 2007-02-07 15:44:32 -08:00
m66592-udc.c USB: "sparse" cleanups for usb gadgets 2007-07-30 13:27:47 -07:00
m66592-udc.h USB: m66592-udc: fixes some problems 2007-07-19 17:46:05 -07:00
Makefile USB: amd5536 UDC driver (in GEODE southbridge) 2007-07-19 17:46:05 -07:00
ndis.h [PATCH] USB: rndis updates (mostly cleanup) 2005-06-27 14:43:50 -07:00
net2280.c usb gadget stack: remove usb_ep_*_buffer(), part 2 2007-07-12 16:34:42 -07:00
net2280.h USB: net2280: don't send unwanted zero-length packets 2006-12-01 14:23:36 -08:00
omap_udc.c USB: gadget: gadget_is_{dualspeed,otg} predicates and cleanup 2007-10-12 14:55:03 -07:00
omap_udc.h USB: omap_udc build fixes (sync with linux-omap) 2007-01-05 12:19:09 -08:00
pxa2xx_udc.c USB: px2xx_udc bugfix, missing check for gpio_pullup 2007-08-22 14:27:43 -07:00
pxa2xx_udc.h USB: pxa2xx_udc -- cleanups, mostly removing dma hooks 2007-07-12 16:34:42 -07:00
rndis.c USB: usb gadget stack can now -DDEBUG with Kconfig 2007-07-12 16:34:42 -07:00
rndis.h USB gadget rndis: fix struct rndis_packet_msg_type unaligned bug 2007-04-27 13:28:40 -07:00
s3c2410_udc.c usb gadget stack: remove usb_ep_*_buffer(), part 2 2007-07-12 16:34:42 -07:00
s3c2410_udc.h USB Gadget driver for Samsung s3c2410 ARM SoC 2007-07-12 16:34:30 -07:00
serial.c USB: gadget: serial gadget cleanups 2007-10-12 14:55:03 -07:00
usbstring.c USB: <linux/usb_ch9.h> becomes <linux/usb/ch9.h> 2007-02-07 15:44:32 -08:00
zero.c USB: gadget: gadget zero cleanups 2007-10-12 14:55:04 -07:00