kernel-fxtec-pro1x/drivers/usb/gadget
David Brownell a4c39c41bf usb gadget: descriptor copying support
Define three new descriptor manipulation utilities, for use when
setting up functions that may have multiple instances:

	usb_copy_descriptors() to copy a vector of descriptors
	usb_free_descriptors() to free the copy
	usb_find_endpoint() to find a copied version

These will be used as follows.  Functions will continue to have static
tables of descriptors they update, now used as __initdata templates.

When a function creates a new instance, it patches those tables with
relevant interface and string IDs, plus endpoint assignments.  Then it
copies those morphed descriptors, associates the copies with the new
function instance, and records the endpoint descriptors to use when
activating the endpoints.  When initialization is done, only the copies
remain in memory.  The copies are freed on driver removal.

This ensures that each instance has descriptors which hold the right
instance-specific data.  Two instances in the same configuration will
obviously never share the same interface IDs or use the same endpoints.
Instances in different configurations won't do so either, which means
this is slightly less memory-efficient in some cases.

This also includes a bugfix to the epautoconf code that shows up with
this usage model.  It must replace the previous endpoint number when
updating the template descriptors, not just mask in a few more bits.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21 15:16:00 -07:00
..
amd5536udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
amd5536udc.h USB: amd5536 UDC driver (in GEODE southbridge) 2007-07-19 17:46:05 -07:00
at91_udc.c USB: at91_udc: updated fifo sizes 2008-07-21 15:15:58 -07:00
at91_udc.h USB: at91_udc uses generic GPIO calls; minor cleanup 2008-02-01 14:35:01 -08:00
atmel_usba_udc.c USB: atmel_usba_udc fixes, mostly disconnect() 2008-05-14 10:00:30 -07:00
atmel_usba_udc.h atmel_usba_udc: Add support for AT91CAP9 UDPHS 2008-04-06 17:25:06 -04:00
config.c usb gadget: descriptor copying support 2008-07-21 15:16:00 -07:00
dummy_hcd.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
epautoconf.c usb gadget: descriptor copying support 2008-07-21 15:16:00 -07:00
ether.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
file_storage.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
fsl_usb2_udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
fsl_usb2_udc.h USB: replace remaining __FUNCTION__ occurrences 2008-04-24 21:16:55 -07:00
gadget_chips.h [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers 2008-07-09 21:30:13 +01:00
gmidi.c drivers/usb annotations and fixes 2008-04-28 10:03:31 -07:00
goku_udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
goku_udc.h USB: goku_udc trivial cleanups 2007-07-12 16:34:43 -07:00
inode.c [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers 2008-07-09 21:30:13 +01:00
Kconfig [ARM] Merge most of the PXA work for initial merge 2008-07-14 23:34:46 +01:00
lh7a40x_udc.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
lh7a40x_udc.h USB: move <linux/usb_gadget.h> to <linux/usb/gadget.h> 2007-10-12 14:55:31 -07:00
m66592-udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
m66592-udc.h drivers/usb annotations and fixes 2008-04-28 10:03:31 -07:00
Makefile usb gadget: use new serial core 2008-07-21 15:15:59 -07:00
ndis.h
net2280.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
net2280.h USB: replace remaining __FUNCTION__ occurrences 2008-04-24 21:16:55 -07:00
omap_udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
omap_udc.h ARM: OMAP: USB: Change omap USB code to use omap_read/write instead of __REG 2008-07-03 12:24:43 +03:00
printer.c printer gadget: BKL pushdown 2008-06-20 14:05:52 -06:00
pxa25x_udc.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
pxa25x_udc.h [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers 2008-07-09 21:30:13 +01:00
pxa27x_udc.c [ARM] Merge most of the PXA work for initial merge 2008-07-14 23:34:46 +01:00
pxa27x_udc.h [ARM] 5080/1: touch PSSR_OTGPH only on pxa27x in ohci-pxa27x and pxa27x_udc 2008-06-15 19:54:23 +01:00
rndis.c USB: rndis: switch to seq_files 2008-07-21 15:15:57 -07:00
rndis.h USB: remove CVS keywords 2008-07-21 15:15:55 -07:00
s3c2410_udc.c usb gadget: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -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: use new serial core 2008-07-21 15:15:59 -07:00
u_serial.c usb gadget: split out serial core 2008-07-21 15:15:59 -07:00
u_serial.h usb gadget: split out serial core 2008-07-21 15:15:59 -07:00
usbstring.c usb: use get/put_unaligned_* helpers 2008-04-29 08:06:28 -07:00
zero.c usb: gadget zero timer init fix 2008-05-02 10:25:54 -07:00