/* called during probe() after chip reset completes */ static int xhci_plat_setup(struct usb_hcd *hcd) { struct device_node *of_node = hcd->self.controller->of_node; int ret; #ifdef CONFIG_SSUSB_MTK_XHCI struct xhci_hcd *xhci; #endif if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || of_device_is_compatible(of_node, "renesas,xhci-r8a7791")) { ret = xhci_rcar_init_quirk(hcd); if (ret) return ret; } #ifdef CONFIG_SSUSB_MTK_XHCI ret = xhci_gen_setup(hcd, xhci_plat_quirks); if (ret) return ret; if (!usb_hcd_is_primary_hcd(hcd)) return 0; xhci = hcd_to_xhci(hcd); ret = xhci_mtk_init_quirk(xhci); if (ret) { kfree(xhci); return ret; } return ret; #else return xhci_gen_setup(hcd, xhci_plat_quirks); #endif }
/* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { struct xhci_hcd *xhci; struct pci_dev *pdev = to_pci_dev(hcd->self.controller); int retval; retval = xhci_gen_setup(hcd, xhci_pci_quirks); if (retval) return retval; xhci = hcd_to_xhci(hcd); if (!usb_hcd_is_primary_hcd(hcd)) return 0; pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn); xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn); /* Find any debug ports */ retval = xhci_pci_reinit(xhci, pdev); if (!retval) return retval; kfree(xhci); return retval; }
/* called during probe() after chip reset completes */ static int exynos_xhci_setup(struct usb_hcd *hcd) { struct device *dev = hcd->self.controller; struct exynos_xhci_hcd *exynos_xhci = dev_get_drvdata(dev); struct xhci_hcd *xhci; int retval; retval = xhci_gen_setup(hcd, exynos_xhci_quirks); if (retval) return retval; /* * During xhci_gen_setup() GSBUSCFG0 DRD register resets (detected by * experiment). We need to configure it again here. */ if (exynos_xhci->core->ops->config) exynos_xhci->core->ops->config(exynos_xhci->core); xhci = hcd_to_xhci(hcd); if (!usb_hcd_is_primary_hcd(hcd)) return 0; xhci->sbrn = HCD_USB3; xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn); return retval; }
/* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { struct xhci_hcd *xhci; struct pci_dev *pdev = to_pci_dev(hcd->self.controller); int retval; xhci = hcd_to_xhci(hcd); if (!xhci->sbrn) pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn); /* imod_interval is the interrupt moderation value in nanoseconds. */ xhci->imod_interval = 40000; retval = xhci_gen_setup(hcd, xhci_pci_quirks); if (retval) return retval; if (!usb_hcd_is_primary_hcd(hcd)) return 0; xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn); /* Find any debug ports */ return xhci_pci_reinit(xhci, pdev); }
/* called during probe() after chip reset completes */ static int xhci_mtk_setup(struct usb_hcd *hcd) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd); int ret; if (usb_hcd_is_primary_hcd(hcd)) { ret = xhci_mtk_ssusb_config(mtk); if (ret) return ret; } ret = xhci_gen_setup(hcd, xhci_mtk_quirks); if (ret) return ret; if (usb_hcd_is_primary_hcd(hcd)) { mtk->num_u3_ports = xhci->num_usb3_ports; mtk->num_u2_ports = xhci->num_usb2_ports; ret = xhci_mtk_sch_init(mtk); if (ret) return ret; } return ret; }
/* called during probe() after chip reset completes */ static int xhci_plat_setup(struct usb_hcd *hcd) { int ret; ret = xhci_priv_init_quirk(hcd); if (ret) return ret; return xhci_gen_setup(hcd, xhci_plat_quirks); }
/* called during probe() after chip reset completes */ static int xhci_plat_setup(struct usb_hcd *hcd) { int ret; if (xhci_plat_type_is(hcd, XHCI_PLAT_TYPE_RENESAS_RCAR_GEN2) || xhci_plat_type_is(hcd, XHCI_PLAT_TYPE_RENESAS_RCAR_GEN3)) { ret = xhci_rcar_init_quirk(hcd); if (ret) return ret; } return xhci_gen_setup(hcd, xhci_plat_quirks); }
/* called during probe() after chip reset completes */ static int xhci_histb_setup(struct usb_hcd *hcd) { struct xhci_hcd_histb *histb = hcd_to_histb(hcd); int ret; if (usb_hcd_is_primary_hcd(hcd)) { ret = xhci_histb_config(histb); if (ret) return ret; } return xhci_gen_setup(hcd, xhci_histb_quirks); }
/* called during probe() after chip reset completes */ static int xhci_plat_setup(struct usb_hcd *hcd) { struct device_node *of_node = hcd->self.controller->of_node; int ret; if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || of_device_is_compatible(of_node, "renesas,xhci-r8a7791")) { ret = xhci_rcar_init_quirk(hcd); if (ret) return ret; } return xhci_gen_setup(hcd, xhci_plat_quirks); }
/* called during probe() after chip reset completes */ static int xhci_mtk_setup(struct usb_hcd *hcd) { struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd); int ret; if (usb_hcd_is_primary_hcd(hcd)) { ret = xhci_mtk_ssusb_config(mtk); if (ret) return ret; ret = xhci_mtk_sch_init(mtk); if (ret) return ret; } return xhci_gen_setup(hcd, xhci_mtk_quirks); }
static int dwc3_host_setup(struct usb_hcd *hcd) { return xhci_gen_setup(hcd, dwc3_host_quirks); }
/* called during probe() after chip reset completes */ static int xhci_plat_setup(struct usb_hcd *hcd) { return xhci_gen_setup(hcd, xhci_plat_quirks); }
/* called during probe() after chip reset completes */ static int mxhci_hsic_plat_setup(struct usb_hcd *hcd) { return xhci_gen_setup(hcd, mxhci_hsic_plat_quirks); }