linux/drivers/usb/gadget
John Youn dbe79bbe9d USB 3.0 Hub Changes
Update the USB core to deal with USB 3.0 hubs.  These hubs have a slightly
different hub descriptor than USB 2.0 hubs, with a fixed (rather than
variable length) size.  Change the USB core's hub descriptor to have a
union for the last fields that differ.  Change the host controller drivers
that access those last fields (DeviceRemovable and PortPowerCtrlMask) to
use the union.

Translate the new version of the hub port status field into the old
version that khubd understands.  (Note: we need to fix it to translate the
roothub's port status once we stop converting it to USB 2.0 hub status
internally.)

Add new code to handle link state change status.  Send out new control
messages that are needed for USB 3.0 hubs, like Set Hub Depth.

This patch is a modified version of the original patch submitted by John
Youn.  It's updated to reflect the removal of the "bitmap" #define, and
change the hub descriptor accesses of a couple new host controller
drivers.

Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Cc: Tony Olech <tony.olech@elandigitalsystems.com>
Cc: "Robert P. J. Day" <rpjday@crashcourse.ca>
Cc: Max Vozeler <mvz@vozeler.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Rodolfo Giometti <giometti@linux.it>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Anton Vorontsov <avorontsov@mvista.com>
Cc: Sebastian Siewior <bigeasy@linutronix.de>
Cc: Lothar Wassmann <LW@KARO-electronics.de>
Cc: Olav Kongas <ok@artecdesign.ee>
Cc: Martin Fuzzey <mfuzzey@gmail.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <dbrownell@users.sourceforge.net>
2011-03-13 18:07:11 -07:00
..
amd5536udc.c USB: gadget: amd5536udc.c: delete double assignment 2010-11-11 05:51:15 -08:00
amd5536udc.h
at91_udc.c usb: gadget: at91_udc: Fix error path 2011-02-17 10:47:56 -08:00
at91_udc.h ARM: 6209/3: at91_udc: Add vbus polarity and polling mode 2010-07-18 20:39:10 +01:00
atmel_usba_udc.c USB: atmel_usba_udc: fix freeing irq in usba_udc_remove() 2010-12-16 13:36:12 -08:00
atmel_usba_udc.h USB: atmel uaba: Adding invert vbus_pin 2010-03-02 14:54:57 -08:00
audio.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
cdc2.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
ci13xxx_msm.c USB: gadget: Implement runtime PM for MSM bus glue driver 2010-12-10 14:23:34 -08:00
ci13xxx_pci.c USB: gadget: Introduce ci13xxx_udc_driver struct 2010-12-10 14:23:33 -08:00
ci13xxx_udc.c USB: gadget: Add test mode support for ci13xxx_udc 2011-02-25 11:33:57 -08:00
ci13xxx_udc.h USB: gadget: Add test mode support for ci13xxx_udc 2011-02-25 11:33:57 -08:00
composite.c usb: gadget: composite: fix req->length in composite_setup() 2011-02-25 11:36:19 -08:00
config.c USB: gadget: __init and __exit tags removed 2010-05-20 13:21:43 -07:00
dbgp.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
dummy_hcd.c USB 3.0 Hub Changes 2011-03-13 18:07:11 -07:00
epautoconf.c USB: Gadget: Initialize wMaxPacketSize if not already set 2011-02-04 11:42:52 -08:00
ether.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
f_acm.c USB: Change acm_iad_descriptor bFunctionProtocol to USB_CDC_ACM_PROTO_AT_V25TER 2010-10-22 10:21:35 -07:00
f_audio.c drivers/usb: Remove unnecessary return's from void functions 2010-08-10 14:25:42 +02:00
f_ecm.c USB: gadget: __init and __exit tags removed 2010-05-20 13:21:43 -07:00
f_eem.c USB: gadget eth: Fix calculate CRC32 in EEM 2010-06-30 08:16:06 -07:00
f_fs.c USB: gadget: f_fs: even zero-length packets require a buffer 2011-02-04 11:57:22 -08:00
f_hid.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
f_loopback.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
f_mass_storage.c USB, Mass Storage, composite, gadget: Fix build failure and memset of a struct 2011-02-04 12:38:14 -08:00
f_ncm.c usb: gadget: f_ncm.c added 2010-12-10 14:29:43 -08:00
f_obex.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
f_phonet.c USB: f_phonet: avoid pskb_pull(), fix OOPS with CONFIG_HIGHMEM 2011-02-25 11:35:21 -08:00
f_rndis.c USB: gadget: __init and __exit tags removed 2010-05-20 13:21:43 -07:00
f_serial.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
f_sourcesink.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
f_subset.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
f_uvc.c V4L/DVB: uvc: Move constants and structures definitions to linux/usb/video.h 2010-08-02 16:43:15 -03:00
f_uvc.h V4L/DVB: uvc: Move constants and structures definitions to linux/usb/video.h 2010-08-02 16:43:15 -03:00
file_storage.c USB: gadget: file_storage: put_device() in error recovery 2010-11-11 05:58:48 -08:00
fsl_mxc_udc.c usb: gadget/fsl_mxc_udc: Detect the CPU type in run-time 2011-02-04 11:42:52 -08:00
fsl_qe_udc.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
fsl_qe_udc.h powerpc/qe&cpm: Implement static inline stubs for non-QE/CPM builds 2009-11-11 21:43:20 -06:00
fsl_udc_core.c USB: Remove unused is_iso from fsl_udc_core.c 2011-03-02 19:52:29 -05:00
fsl_usb2_udc.h
fusb300_udc.c usb: fusb300_udc: add more "ep%d" names 2011-02-17 10:47:55 -08:00
fusb300_udc.h usb: udc: add Faraday fusb300 driver 2011-01-22 19:45:36 -08:00
g_ffs.c usb: gadget: g_fs: Fix compilation warning 2010-11-17 13:24:46 -08:00
g_zero.h
gadget_chips.h Merge branch 'musb-hw' of git://gitorious.org/usb/usb into musb 2010-12-15 09:29:38 -08:00
gmidi.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
goku_udc.c usb: gadget: goku_udc: Fix error path 2010-10-22 10:22:04 -07:00
goku_udc.h usb: gadget: goku_udc: add registered flag bit, fixing build 2010-11-11 06:57:24 -08:00
hid.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
imx_udc.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
imx_udc.h usb: gadget/imx-udc: remove usage of deprecated symbol USBD_INT0 2010-11-11 05:51:15 -08:00
inode.c convert get_sb_single() users 2010-10-29 04:16:28 -04:00
Kconfig USB: Rename "msm72k_otg.c" to "msm_otg.c" 2011-03-07 12:15:21 -08:00
langwell_udc.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
langwell_udc.h USB: langwell: USB Client driver memory handling 2010-10-22 10:21:19 -07:00
lh7a40x_udc.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
lh7a40x_udc.h
m66592-udc.c usb: m66592-udc: Fixed bufnum of Bulk 2011-02-25 11:33:00 -08:00
m66592-udc.h usb: gadget: m66592-udc pio to mmio accessor conversion. 2010-06-02 16:26:13 +09:00
Makefile usb: udc: add Faraday fusb300 driver 2011-01-22 19:45:36 -08:00
mass_storage.c USB: gadget: f_mass_storage: code style clean ups 2010-11-11 05:58:49 -08:00
multi.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
mv_udc_core.c USB: pxa: Add USB client support for Marvell PXA9xx/PXA168 chips 2010-11-30 16:51:21 -08:00
mv_udc_phy.c USB: pxa: Add USB client support for Marvell PXA9xx/PXA168 chips 2010-11-30 16:51:21 -08:00
mv_udc.h USB: pxa: Add USB client support for Marvell PXA9xx/PXA168 chips 2010-11-30 16:51:21 -08:00
ncm.c usb: gadget: g_ncm added 2010-12-10 14:29:43 -08:00
ndis.h
net2280.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
net2280.h
nokia.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
omap_udc.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2010-10-25 13:46:56 -07:00
omap_udc.h
pch_udc.c usb: pch_udc: Fixed issue which does not work with g_ether 2011-02-17 10:47:54 -08:00
printer.c USB: g_printer: fix bug in module parameter definitions 2011-01-22 18:38:58 -08:00
pxa25x_udc.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
pxa25x_udc.h USB: gadget: pxa25x: basic transceiver support 2009-09-23 06:46:23 -07:00
pxa27x_udc.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
pxa27x_udc.h USB: pxa27x_udc: use four bits to store endpoint addresses 2010-05-20 13:21:36 -07:00
r8a66597-udc.c usb: r8a66597-udc: Fixed bufnum of Bulk 2011-02-03 16:45:50 -08:00
r8a66597-udc.h USB: r8a66597-udc: Initialize uninitialized variable, fix compile warning 2010-10-22 10:21:34 -07:00
rndis.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
rndis.h USB: rndis: section mismatch fix 2010-09-03 17:33:40 -07:00
s3c2410_udc.c USB: s3c2410_udc: Add common implementation for GPIO controlled pullups 2011-03-07 12:23:22 -08:00
s3c2410_udc.h
s3c-hsotg.c usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
serial.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
storage_common.c block: check bdev_read_only() from blkdev_get() 2010-11-13 11:55:17 +01:00
u_audio.c usb: g_audio: Fix crash at driver removal 2010-12-03 12:05:35 -08:00
u_audio.h USB: audio gadget: free alsa devices when unloading 2009-12-23 11:34:20 -08:00
u_ether.c usb-gadget: fix warning in ethernet 2011-03-02 19:52:29 -05:00
u_ether.h usb: gadget: f_ncm.c added 2010-12-10 14:29:43 -08:00
u_phonet.h
u_serial.c usb: subtle increased memory usage in u_serial 2010-11-11 07:03:48 -08:00
u_serial.h
usbstring.c
uvc_queue.c V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and host drivers 2010-07-11 17:45:10 -03:00
uvc_queue.h V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and host drivers 2010-07-11 17:45:10 -03:00
uvc_v4l2.c USB: uvc_v4l2: cleanup test for end of loop 2010-08-23 20:50:14 -07:00
uvc_video.c V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and host drivers 2010-07-11 17:45:10 -03:00
uvc.h V4L/DVB: uvc: Move constants and structures definitions to linux/usb/video.h 2010-08-02 16:43:15 -03:00
webcam.c usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
zero.c usb gadget: don't save bind callback in struct usb_composite_driver 2010-10-22 10:21:25 -07:00