linux-uconsole/drivers
Sarah Sharp cce0edb3ee USB: Fix handoff when BIOS disables host PCI device.
commit cab928ee1f upstream.

On some systems with an Intel Panther Point xHCI host controller, the
BIOS disables the xHCI PCI device during boot, and switches the xHCI
ports over to EHCI.  This allows the BIOS to access USB devices without
having xHCI support.

The downside is that the xHCI BIOS handoff mechanism will fail because
memory mapped I/O is not enabled for the disabled PCI device.
Jesse Barnes says this is expected behavior.  The PCI core will enable
BARs before quirks run, but it will leave it in an undefined state, and
it may not have memory mapped I/O enabled.

Make the generic USB quirk handler call pci_enable_device() to re-enable
MMIO, and call pci_disable_device() once the host-specific BIOS handoff
is finished.  This will balance the ref counts in the PCI core.  When
the PCI probe function is called, usb_hcd_pci_probe() will call
pci_enable_device() again.

This should be back ported to kernels as old as 2.6.31.  That was the
first kernel with xHCI support, and no one has complained about BIOS
handoffs failing due to memory mapped I/O being disabled on other hosts
(EHCI, UHCI, or OHCI).

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Acked-by: Oliver Neukum <oneukum@suse.de>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-02-29 16:34:20 -08:00
..
accessibility
acpi PCI: Rework ASPM disable code 2012-02-06 09:24:01 -08:00
amba
ata ata_piix: make DVD Drive recognisable on systems with Intel Sandybridge chipsets(v2) 2011-11-11 09:35:50 -08:00
atm
auxdisplay
base firmware: Fix an oops on reading fw_priv->fw in sysfs loading file 2012-01-12 11:34:55 -08:00
bcma
block block: add and use scsi_blk_cmd_ioctl 2012-01-25 17:24:54 -08:00
bluetooth btusb: add device entry for Broadcom SoftSailing 2011-11-11 09:36:43 -08:00
cdrom block: add and use scsi_blk_cmd_ioctl 2012-01-25 17:24:54 -08:00
char TPM: Zero buffer after copying to userspace 2011-10-03 11:40:58 -07:00
clk
clocksource
connector
cpufreq powernow-k8: Fix indexing issue 2012-02-13 11:06:13 -08:00
cpuidle
crypto crypto: mv_cesa - fix hashing of chunks > 1920 bytes 2011-12-09 08:52:20 -08:00
dca
dio
dma at_hdmac: bugfix for enabling channel irq 2012-02-13 11:06:07 -08:00
edac i7core_edac: fixed typo in error count calculation 2011-08-29 13:29:06 -07:00
eisa
firewire firewire: ohci: disable MSI on Ricoh controllers 2012-02-13 11:06:06 -08:00
firmware ibft: Fix finding IBFT ACPI table on UEFI 2011-12-21 12:57:45 -08:00
gpio gpio/pca953x: Fix warning of enabled interrupts in handler 2012-02-20 12:48:11 -08:00
gpu drm/radeon/kms: fix MSI re-arm on rv370+ 2012-02-29 16:33:39 -08:00
hid HID: multitouch: add support for 3M 32" 2012-01-25 17:24:53 -08:00
hwmon hwmon: (ads1015) Fix file leak in probe function 2012-02-29 16:33:38 -08:00
hwspinlock hwspinlock/core: use a mutex to protect the radix tree 2011-11-11 09:36:31 -08:00
i2c i2c-eg20t: modified the setting of transfer rate. 2012-01-25 17:25:03 -08:00
ide block: add and use scsi_blk_cmd_ioctl 2012-01-25 17:24:54 -08:00
idle intel_idle: fix API misuse 2012-01-25 17:24:56 -08:00
ieee802154
infiniband IPoIB: Stop lying about hard_header_len and use skb->cb to stash LL addresses 2012-02-29 16:33:45 -08:00
input Input: synaptics - fix touchpad not working after S2R on Vostro V13 2012-01-06 14:13:49 -08:00
isdn net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared 2011-08-15 18:31:38 -07:00
leds Revert "leds: save the delay values after a successful call to blink_set()" 2011-11-21 14:31:19 -08:00
lguest
macintosh
mca
md dm: do not forward ioctls from logical volumes to the underlying device 2012-01-25 17:24:54 -08:00
media uvcvideo: Fix integer overflow in uvc_ioctl_ctrl_map() 2012-01-25 17:24:50 -08:00
memstick
message
mfd mfd: Turn on the twl4030-madc MADC clock 2012-01-06 14:14:11 -08:00
misc mmc: cb710 core: Add missing spin_lock_init for irq_lock of struct cb710_chip 2012-02-13 11:06:13 -08:00
mmc mmc: core: check for zero length ioctl data 2012-02-29 16:33:42 -08:00
mtd UBI: fix debugging messages 2012-01-25 17:24:44 -08:00
net via-velocity: S3 resume fix. 2012-02-29 16:34:08 -08:00
nfc
nubus
of
oprofile oprofile: Fix uninitialized memory access when writing to writing to oprofilefs 2012-01-06 14:13:51 -08:00
parisc
parport
pci PCI: workaround hard-wired bus number V2 2012-02-29 16:33:39 -08:00
pcmcia pcmcia: fix socket refcount decrementing on each resume 2012-02-13 11:06:10 -08:00
platform WMI: properly cleanup devices to avoid crashes 2011-11-11 09:36:09 -08:00
pnp PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB 2012-01-25 17:24:42 -08:00
power drivers/power/ds2780_battery.c: fix deadlock upon insertion and removal 2011-11-11 09:36:32 -08:00
pps
ps3
ptp ptp: Fix clock_getres() implementation 2011-12-21 12:57:36 -08:00
rapidio rapidio: fix use of non-compatible registers 2011-10-03 11:39:46 -07:00
regulator regulator: tps65910: Add missing breaks in switch/case 2011-10-03 11:40:01 -07:00
rtc drivers/rtc/interface.c: fix alarm rollover when day or month is out-of-range 2012-01-25 17:24:33 -08:00
s390 net: fix NULL dereferences in check_peer_redir() 2012-02-13 11:06:13 -08:00
sbus
scsi net: fix NULL dereferences in check_peer_redir() 2012-02-13 11:06:13 -08:00
sfi
sh
sn
spi spi/s3c64xx: Bug fix for SPI with different FIFO level 2011-07-06 15:03:08 +09:00
ssb ssb: fix init regression with SoCs 2012-01-06 14:13:48 -08:00
staging staging: r8712u: Add new Sitecom UsB ID 2012-02-13 11:06:12 -08:00
target target: Correct sense key for INVALID FIELD IN {PARAMETER LIST,CDB} 2012-02-13 11:06:11 -08:00
tc
telephony
thermal
tty drivers/tty/vt/vt_ioctl.c: fix KDFONTOP 32bit compatibility layer 2012-02-13 11:06:05 -08:00
uio
usb USB: Fix handoff when BIOS disables host PCI device. 2012-02-29 16:34:20 -08:00
uwb
vhost
video atmel_lcdfb: fix usage of CONTRAST_CTR in suspend/resume 2012-02-13 11:06:09 -08:00
virtio virtio-pci: fix use after free 2011-11-21 14:31:14 -08:00
vlynq
w1 drivers/power/ds2780_battery.c: add a nolock function to w1 interface 2011-11-11 09:36:32 -08:00
watchdog watchdog: hpwdt: Changes to handle NX secure bit in 32bit path 2012-01-06 14:14:00 -08:00
xen xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX. 2012-01-25 17:24:41 -08:00
zorro zorro: Defer device_register() until all devices have been identified 2011-10-03 11:40:57 -07:00
Kconfig
Makefile