diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-24 02:21:43 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-24 02:21:43 +0300 |
commit | e94571653876922bbc247c8ef13c0b7839c3e503 (patch) | |
tree | cc70e5373640832ddc9eb6cba933639dcbedceac /drivers/usb/host/ehci-pci.c | |
parent | 3561d43fd289f590fdae672e5eb831b8d5cf0bf6 (diff) | |
parent | 02e2c51ba3e80acde600721ea784c3ef84da5ea1 (diff) | |
download | linux-e94571653876922bbc247c8ef13c0b7839c3e503.tar.xz |
Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
USB: EHCI: fix obscure race in ehci_endpoint_disable
USB: gadget: AT91: fix typo in atmel_usba_udc driver
USB: isp1362-hcd - fix section mismatch warning
USB: EHCI: AMD periodic frame list table quirk
USB: OTG: langwell_otg: fix up some sysfs attribute permissions
USB: misc: usbsevseg: fix up some sysfs attribute permissions
USB: misc: usbled: fix up some sysfs attribute permissions
USB: misc: trancevibrator: fix up a sysfs attribute permission
USB: misc: cypress_cy7c63: fix up some sysfs attribute permissions
USB: storage: sierra_ms: fix sysfs file attribute
USB: ehci: fix debugfs 'lpm' permissions
USB: atm: ueagle-atm: fix up some permissions on the sysfs files
xhci: Fix command ring replay after resume.
xHCI: fix wMaxPacketSize mask
xHCI: release spinlock when setup interrupt
xhci: Remove excessive printks with shared IRQs.
Diffstat (limited to 'drivers/usb/host/ehci-pci.c')
-rw-r--r-- | drivers/usb/host/ehci-pci.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c index a1e8d273103f..01bb72b71832 100644 --- a/drivers/usb/host/ehci-pci.c +++ b/drivers/usb/host/ehci-pci.c @@ -103,6 +103,19 @@ static int ehci_pci_setup(struct usb_hcd *hcd) if (retval) return retval; + if ((pdev->vendor == PCI_VENDOR_ID_AMD && pdev->device == 0x7808) || + (pdev->vendor == PCI_VENDOR_ID_ATI && pdev->device == 0x4396)) { + /* EHCI controller on AMD SB700/SB800/Hudson-2/3 platforms may + * read/write memory space which does not belong to it when + * there is NULL pointer with T-bit set to 1 in the frame list + * table. To avoid the issue, the frame list link pointer + * should always contain a valid pointer to a inactive qh. + */ + ehci->use_dummy_qh = 1; + ehci_info(ehci, "applying AMD SB700/SB800/Hudson-2/3 EHCI " + "dummy qh workaround\n"); + } + /* data structure init */ retval = ehci_init(hcd); if (retval) |