Lines Matching refs:xhci
69 static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev) in xhci_pci_reinit() argument
79 xhci_dbg(xhci, "MWI active\n"); in xhci_pci_reinit()
81 xhci_dbg(xhci, "Finished xhci_pci_reinit\n"); in xhci_pci_reinit()
85 static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_pci_quirks() argument
95 xhci->quirks |= XHCI_RESET_EP_QUIRK; in xhci_pci_quirks()
96 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, in xhci_pci_quirks()
102 xhci->quirks |= XHCI_SLOW_SUSPEND; in xhci_pci_quirks()
103 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, in xhci_pci_quirks()
109 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_pci_quirks()
114 xhci->quirks |= XHCI_BROKEN_MSI; in xhci_pci_quirks()
115 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, in xhci_pci_quirks()
119 xhci->quirks |= XHCI_TRUST_TX_LENGTH; in xhci_pci_quirks()
124 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_pci_quirks()
127 xhci->quirks |= XHCI_NEC_HOST; in xhci_pci_quirks()
129 if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96) in xhci_pci_quirks()
130 xhci->quirks |= XHCI_AMD_0x96_HOST; in xhci_pci_quirks()
134 xhci->quirks |= XHCI_AMD_PLL_FIX; in xhci_pci_quirks()
140 xhci->quirks |= XHCI_SUSPEND_DELAY; in xhci_pci_quirks()
144 xhci->quirks |= XHCI_SNPS_BROKEN_SUSPEND; in xhci_pci_quirks()
147 xhci->quirks |= XHCI_TRUST_TX_LENGTH; in xhci_pci_quirks()
154 xhci->quirks |= XHCI_U2_DISABLE_WAKE; in xhci_pci_quirks()
157 xhci->quirks |= XHCI_LPM_SUPPORT; in xhci_pci_quirks()
158 xhci->quirks |= XHCI_INTEL_HOST; in xhci_pci_quirks()
159 xhci->quirks |= XHCI_AVOID_BEI; in xhci_pci_quirks()
163 xhci->quirks |= XHCI_EP_LIMIT_QUIRK; in xhci_pci_quirks()
164 xhci->limit_active_eps = 64; in xhci_pci_quirks()
165 xhci->quirks |= XHCI_SW_BW_CHECKING; in xhci_pci_quirks()
174 xhci->quirks |= XHCI_SPURIOUS_REBOOT; in xhci_pci_quirks()
179 xhci->quirks |= XHCI_SPURIOUS_REBOOT; in xhci_pci_quirks()
180 xhci->quirks |= XHCI_SPURIOUS_WAKEUP; in xhci_pci_quirks()
190 xhci->quirks |= XHCI_PME_STUCK_QUIRK; in xhci_pci_quirks()
194 xhci->quirks |= XHCI_SSIC_PORT_UNUSED; in xhci_pci_quirks()
199 xhci->quirks |= XHCI_INTEL_USB_ROLE_SW; in xhci_pci_quirks()
206 xhci->quirks |= XHCI_MISSING_CAS; in xhci_pci_quirks()
217 xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; in xhci_pci_quirks()
221 xhci->quirks |= XHCI_RESET_ON_RESUME; in xhci_pci_quirks()
222 xhci->quirks |= XHCI_TRUST_TX_LENGTH; in xhci_pci_quirks()
223 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_pci_quirks()
227 xhci->quirks |= XHCI_TRUST_TX_LENGTH; in xhci_pci_quirks()
228 xhci->quirks |= XHCI_ZERO_64B_REGS; in xhci_pci_quirks()
232 xhci->quirks |= XHCI_RESET_ON_RESUME; in xhci_pci_quirks()
233 xhci->quirks |= XHCI_ZERO_64B_REGS; in xhci_pci_quirks()
236 xhci->quirks |= XHCI_RESET_ON_RESUME; in xhci_pci_quirks()
241 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_pci_quirks()
245 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_pci_quirks()
248 xhci->quirks |= XHCI_TRUST_TX_LENGTH; in xhci_pci_quirks()
252 xhci->quirks |= XHCI_ASMEDIA_MODIFY_FLOWCONTROL; in xhci_pci_quirks()
255 xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7; in xhci_pci_quirks()
260 xhci->quirks |= XHCI_RESET_PLL_ON_DISCONNECT; in xhci_pci_quirks()
262 if (xhci->quirks & XHCI_RESET_ON_RESUME) in xhci_pci_quirks()
263 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, in xhci_pci_quirks()
286 struct xhci_hcd *xhci; in xhci_pci_setup() local
290 xhci = hcd_to_xhci(hcd); in xhci_pci_setup()
291 if (!xhci->sbrn) in xhci_pci_setup()
292 pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn); in xhci_pci_setup()
295 xhci->imod_interval = 40000; in xhci_pci_setup()
304 xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn); in xhci_pci_setup()
307 return xhci_pci_reinit(xhci, pdev); in xhci_pci_setup()
318 struct xhci_hcd *xhci; in xhci_pci_probe() local
340 xhci = hcd_to_xhci(hcd); in xhci_pci_probe()
341 xhci->shared_hcd = usb_create_shared_hcd(driver, &dev->dev, in xhci_pci_probe()
343 if (!xhci->shared_hcd) { in xhci_pci_probe()
348 retval = xhci_ext_cap_init(xhci); in xhci_pci_probe()
352 retval = usb_add_hcd(xhci->shared_hcd, dev->irq, in xhci_pci_probe()
358 if (!(xhci->quirks & XHCI_BROKEN_STREAMS) && in xhci_pci_probe()
359 HCC_MAX_PSA(xhci->hcc_params) >= 4) in xhci_pci_probe()
360 xhci->shared_hcd->can_do_streams = 1; in xhci_pci_probe()
362 if (xhci->quirks & XHCI_PME_STUCK_QUIRK) in xhci_pci_probe()
368 if (xhci->quirks & XHCI_DEFAULT_PM_RUNTIME_ALLOW) in xhci_pci_probe()
374 usb_put_hcd(xhci->shared_hcd); in xhci_pci_probe()
385 struct xhci_hcd *xhci; in xhci_pci_remove() local
387 xhci = hcd_to_xhci(pci_get_drvdata(dev)); in xhci_pci_remove()
388 xhci->xhc_state |= XHCI_STATE_REMOVING; in xhci_pci_remove()
390 if (xhci->quirks & XHCI_DEFAULT_PM_RUNTIME_ALLOW) in xhci_pci_remove()
393 if (xhci->shared_hcd) { in xhci_pci_remove()
394 usb_remove_hcd(xhci->shared_hcd); in xhci_pci_remove()
395 usb_put_hcd(xhci->shared_hcd); in xhci_pci_remove()
396 xhci->shared_hcd = NULL; in xhci_pci_remove()
400 if (xhci->quirks & XHCI_SPURIOUS_WAKEUP) in xhci_pci_remove()
417 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_ssic_port_unused_quirk() local
423 reg = (void __iomem *) xhci->cap_regs + in xhci_ssic_port_unused_quirk()
452 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_pme_quirk() local
456 reg = (void __iomem *) xhci->cap_regs + 0x80a4; in xhci_pme_quirk()
464 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_pci_suspend() local
472 if (xhci->quirks & XHCI_COMP_MODE_QUIRK) in xhci_pci_suspend()
475 if (xhci->quirks & XHCI_PME_STUCK_QUIRK) in xhci_pci_suspend()
478 if (xhci->quirks & XHCI_SSIC_PORT_UNUSED) in xhci_pci_suspend()
481 ret = xhci_suspend(xhci, do_wakeup); in xhci_pci_suspend()
482 if (ret && (xhci->quirks & XHCI_SSIC_PORT_UNUSED)) in xhci_pci_suspend()
491 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_pci_resume() local
516 if (xhci->quirks & XHCI_SSIC_PORT_UNUSED) in xhci_pci_resume()
519 if (xhci->quirks & XHCI_PME_STUCK_QUIRK) in xhci_pci_resume()
522 retval = xhci_resume(xhci, hibernated); in xhci_pci_resume()
528 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_pci_shutdown() local
534 if (xhci->quirks & XHCI_SPURIOUS_WAKEUP) in xhci_pci_shutdown()