Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue"

This reverts commit 8466489ef5ba48272ba4fa4ea9f8f403306de4c7.

Now that we can properly reset the uPD72020x without a hard PCI reset,
let's get rid of the existing quirks.

Tested-by: Domenico Andreoli <domenico.andreoli@linux.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Tested-by: Faiz Abbas <faiz_abbas@ti.com>
Tested-by: Domenico Andreoli <domenico.andreoli@linux.com>
Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Marc Zyngier and committed by
Greg Kroah-Hartman
c2ef60fe 12de0a35

-28
-20
drivers/usb/host/pci-quirks.c
··· 1268 1268 } 1269 1269 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID, 1270 1270 PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff); 1271 - 1272 - bool usb_xhci_needs_pci_reset(struct pci_dev *pdev) 1273 - { 1274 - /* 1275 - * Our dear uPD72020{1,2} friend only partially resets when 1276 - * asked to via the XHCI interface, and may end up doing DMA 1277 - * at the wrong addresses, as it keeps the top 32bit of some 1278 - * addresses from its previous programming under obscure 1279 - * circumstances. 1280 - * Give it a good wack at probe time. Unfortunately, this 1281 - * needs to happen before we've had a chance to discover any 1282 - * quirk, or the system will be in a rather bad state. 1283 - */ 1284 - if (pdev->vendor == PCI_VENDOR_ID_RENESAS && 1285 - (pdev->device == 0x0014 || pdev->device == 0x0015)) 1286 - return true; 1287 - 1288 - return false; 1289 - } 1290 - EXPORT_SYMBOL_GPL(usb_xhci_needs_pci_reset);
-1
drivers/usb/host/pci-quirks.h
··· 16 16 void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev); 17 17 void usb_disable_xhci_ports(struct pci_dev *xhci_pdev); 18 18 void sb800_prefetch(struct device *dev, int on); 19 - bool usb_xhci_needs_pci_reset(struct pci_dev *pdev); 20 19 bool usb_amd_pt_check_port(struct device *device, int port); 21 20 #else 22 21 struct pci_dev;
-7
drivers/usb/host/xhci-pci.c
··· 288 288 289 289 driver = (struct hc_driver *)id->driver_data; 290 290 291 - /* For some HW implementation, a XHCI reset is just not enough... */ 292 - if (usb_xhci_needs_pci_reset(dev)) { 293 - dev_info(&dev->dev, "Resetting\n"); 294 - if (pci_reset_function_locked(dev)) 295 - dev_warn(&dev->dev, "Reset failed"); 296 - } 297 - 298 291 /* Prevent runtime suspending between USB-2 and USB-3 initialization */ 299 292 pm_runtime_get_noresume(&dev->dev); 300 293