android_kernel_motorola_sm6225/include/linux/usb
Sarah Sharp c563543784 usb: Make core allocate resources per PCI-device.
Introduce the notion of a PCI device that may be associated with more than
one USB host controller driver (struct usb_hcd).  This patch is the start
of the work to separate the xHCI host controller into two roothubs: a USB
3.0 roothub with SuperSpeed-only ports, and a USB 2.0 roothub with
HS/FS/LS ports.

One usb_hcd structure is designated to be the "primary HCD", and a pointer
is added to the usb_hcd structure to keep track of that.  A new function
call, usb_hcd_is_primary_hcd() is added to check whether the USB hcd is
marked as the primary HCD (or if it is not part of a roothub pair).  To
allow the USB core and xHCI driver to access either roothub in a pair, a
"shared_hcd" pointer is added to the usb_hcd structure.

Add a new function, usb_create_shared_hcd(), that does roothub allocation
for paired roothubs.  It will act just like usb_create_hcd() did if the
primary_hcd pointer argument is NULL.  If it is passed a non-NULL
primary_hcd pointer, it sets usb_hcd->shared_hcd and usb_hcd->primary_hcd
fields.  It will also skip the bandwidth_mutex allocation, and set the
secondary hcd's bandwidth_mutex pointer to the primary HCD's mutex.

IRQs are only allocated once for the primary roothub.

Introduce a new usb_hcd driver flag that indicates the host controller
driver wants to create two roothubs.  If the HCD_SHARED flag is set, then
the USB core PCI probe methods will allocate a second roothub, and make
sure that second roothub gets freed during rmmod and in initialization
error paths.

When usb_hc_died() is called with the primary HCD, make sure that any
roothubs that share that host controller are also marked as being dead.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
2011-03-13 18:23:06 -07:00
..
association.h
atmel_usba_udc.h
audio-v2.h
audio.h
c67x00.h
cdc.h CDC NCM errata updates for cdc.h 2011-02-08 13:54:42 -08:00
ch9.h USB: fix unsafe USB_SS_MAX_STREAMS() definition 2011-02-25 11:40:01 -08:00
ch11.h USB 3.0 Hub Changes 2011-03-13 18:07:11 -07:00
composite.h usb gadget: don't save bind callback in struct usb_configuration 2010-10-22 10:21:26 -07:00
ehci_def.h usb: host: Add EHCI driver for NVIDIA Tegra SoCs 2011-03-11 14:22:11 -08:00
functionfs.h
g_hid.h
g_printer.h
gadget.h usb gadget: don't save bind callback in struct usb_gadget_driver 2010-10-22 10:21:25 -07:00
gadgetfs.h
gpio_vbus.h
hcd.h usb: Make core allocate resources per PCI-device. 2011-03-13 18:23:06 -07:00
input.h
intel_mid_otg.h USB OTG: Add common data structure for Intel MID Platform (Langwell/Penwell) 2010-10-22 10:21:33 -07:00
iowarrior.h
irda.h
isp116x.h
isp1362.h
isp1760.h
Kbuild USB: gadget: export functionfs.h to the includes available for userspace 2011-02-04 11:57:21 -08:00
langwell_otg.h USB OTG Langwell: Update OTG Kconfig and driver version. 2010-10-22 10:21:33 -07:00
langwell_udc.h
m66592.h
midi.h
msm_hsusb.h USB: Rename "msm72k_otg.c" to "msm_otg.c" 2011-03-07 12:15:21 -08:00
msm_hsusb_hw.h USB: Fix trout build failure with ci13xxx_msm gadget 2011-02-04 12:38:14 -08:00
musb.h Merge branch 'usb-next' into musb-merge 2010-12-16 10:05:06 -08:00
net2280.h
otg.h usb: otg: notifier: switch to atomic notifier 2011-02-18 14:05:54 +02:00
quirks.h
r8a66597.h
rndis_host.h
serial.h USB: serial drivers need to use larger bulk-in buffers 2011-02-25 11:38:32 -08:00
sl811.h
storage.h USB: Move USB Storage definitions to their own header file 2010-10-22 10:21:50 -07:00
tmc.h
ulpi.h usb: otg: Add ulpi viewport access ops 2011-03-11 14:22:10 -08:00
usbnet.h usbnet: changes for upcoming cdc_ncm driver 2010-12-06 12:59:02 -08:00
video.h
wusb-wa.h
wusb.h