--- zzzz-none-000/linux-2.6.32.61/drivers/usb/host/xhci-pci.c 2013-06-10 09:43:48.000000000 +0000 +++ virian-300e-630/linux-2.6.32.61/drivers/usb/host/xhci-pci.c 2014-10-29 15:55:54.000000000 +0000 @@ -54,6 +54,11 @@ struct pci_dev *pdev = to_pci_dev(hcd->self.controller); int retval; +#ifdef XHCI_FWDOWNLOAD_72020x + XHCI_FWDOWNLOAD(hcd); + XHCI_FWUNLOAD(hcd); +#endif + xhci->cap_regs = hcd->regs; xhci->op_regs = hcd->regs + HC_LENGTH(xhci_readl(xhci, &xhci->cap_regs->hc_capbase)); @@ -63,11 +68,12 @@ xhci->hcs_params1 = xhci_readl(xhci, &xhci->cap_regs->hcs_params1); xhci->hcs_params2 = xhci_readl(xhci, &xhci->cap_regs->hcs_params2); xhci->hcs_params3 = xhci_readl(xhci, &xhci->cap_regs->hcs_params3); - xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hc_capbase); + xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hc_capbase); xhci->hci_version = HC_VERSION(xhci->hcc_params); - xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hcc_params); + xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hcc_params); xhci_print_registers(xhci); + #if 0 /* Look for vendor-specific quirks */ if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC && pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK && @@ -76,6 +82,7 @@ xhci_dbg(xhci, "QUIRK: Fresco Logic xHC needs configure" " endpoint cmd after reset endpoint\n"); } + #endif /* Make sure the HC is halted. */ retval = xhci_halt(xhci); @@ -137,6 +144,8 @@ .reset_bandwidth = xhci_reset_bandwidth, .address_device = xhci_address_device, .update_hub_device = xhci_update_hub_device, +/* -- 20140828 AVM/WK XHCI patch from newer kernel --*/ + .reset_device = xhci_reset_device, /* * scheduling support