Lines Matching refs:xhci
372 static void xhci_mtk_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_mtk_quirks() argument
374 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_mtk_quirks()
382 xhci->quirks |= XHCI_PLAT; in xhci_mtk_quirks()
383 xhci->quirks |= XHCI_MTK_HOST; in xhci_mtk_quirks()
388 xhci->quirks |= XHCI_SPURIOUS_SUCCESS; in xhci_mtk_quirks()
390 xhci->quirks |= XHCI_LPM_SUPPORT; in xhci_mtk_quirks()
392 xhci->quirks |= XHCI_HW_LPM_DISABLE; in xhci_mtk_quirks()
398 if (xhci->hci_version < 0x100 && HCC_MAX_PSA(xhci->hcc_params) == 4) in xhci_mtk_quirks()
399 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_mtk_quirks()
443 struct xhci_hcd *xhci; in xhci_mtk_probe() local
541 xhci = hcd_to_xhci(hcd); in xhci_mtk_probe()
542 xhci->main_hcd = hcd; in xhci_mtk_probe()
549 xhci->imod_interval = 5000; in xhci_mtk_probe()
550 device_property_read_u32(dev, "imod-interval-ns", &xhci->imod_interval); in xhci_mtk_probe()
552 xhci->shared_hcd = usb_create_shared_hcd(driver, dev, in xhci_mtk_probe()
554 if (!xhci->shared_hcd) { in xhci_mtk_probe()
563 if (HCC_MAX_PSA(xhci->hcc_params) >= 4 && in xhci_mtk_probe()
564 !(xhci->quirks & XHCI_BROKEN_STREAMS)) in xhci_mtk_probe()
565 xhci->shared_hcd->can_do_streams = 1; in xhci_mtk_probe()
567 ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED); in xhci_mtk_probe()
578 usb_put_hcd(xhci->shared_hcd); in xhci_mtk_probe()
602 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_mtk_remove() local
603 struct usb_hcd *shared_hcd = xhci->shared_hcd; in xhci_mtk_remove()
609 xhci->shared_hcd = NULL; in xhci_mtk_remove()
633 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_mtk_suspend() local
635 xhci_dbg(xhci, "%s: stop port polling\n", __func__); in xhci_mtk_suspend()
638 clear_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags); in xhci_mtk_suspend()
639 del_timer_sync(&xhci->shared_hcd->rh_timer); in xhci_mtk_suspend()
651 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_mtk_resume() local
657 xhci_dbg(xhci, "%s: restart port polling\n", __func__); in xhci_mtk_resume()
658 set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags); in xhci_mtk_resume()
659 usb_hcd_poll_rh_status(xhci->shared_hcd); in xhci_mtk_resume()