c563543784
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> |
||
---|---|---|
.. | ||
association.h | ||
atmel_usba_udc.h | ||
audio-v2.h | ||
audio.h | ||
c67x00.h | ||
cdc.h | ||
ch9.h | ||
ch11.h | ||
composite.h | ||
ehci_def.h | ||
functionfs.h | ||
g_hid.h | ||
g_printer.h | ||
gadget.h | ||
gadgetfs.h | ||
gpio_vbus.h | ||
hcd.h | ||
input.h | ||
intel_mid_otg.h | ||
iowarrior.h | ||
irda.h | ||
isp116x.h | ||
isp1362.h | ||
isp1760.h | ||
Kbuild | ||
langwell_otg.h | ||
langwell_udc.h | ||
m66592.h | ||
midi.h | ||
msm_hsusb.h | ||
msm_hsusb_hw.h | ||
musb.h | ||
net2280.h | ||
otg.h | ||
quirks.h | ||
r8a66597.h | ||
rndis_host.h | ||
serial.h | ||
sl811.h | ||
storage.h | ||
tmc.h | ||
ulpi.h | ||
usbnet.h | ||
video.h | ||
wusb-wa.h | ||
wusb.h |