int ci_hdrc_host_init(struct ci_hdrc *ci) { struct ci_role_driver *rdrv; if (!hw_read(ci, CAP_DCCPARAMS, DCCPARAMS_HC)) return -ENXIO; rdrv = devm_kzalloc(ci->dev, sizeof(struct ci_role_driver), GFP_KERNEL); if (!rdrv) return -ENOMEM; rdrv->start = host_start; rdrv->stop = host_stop; rdrv->irq = host_irq; rdrv->suspend = ci_hdrc_host_suspend; rdrv->resume = ci_hdrc_host_resume; rdrv->name = "host"; ci->roles[CI_ROLE_HOST] = rdrv; ehci_init_driver(&ci_ehci_hc_driver, &ehci_ci_overrides); orig_bus_suspend = ci_ehci_hc_driver.bus_suspend; orig_bus_resume = ci_ehci_hc_driver.bus_resume; orig_hub_control = ci_ehci_hc_driver.hub_control; ci_ehci_hc_driver.bus_suspend = ci_ehci_bus_suspend; if (ci->platdata->flags & CI_HDRC_IMX_EHCI_QUIRK) { ci_ehci_hc_driver.bus_resume = ci_imx_ehci_bus_resume; ci_ehci_hc_driver.hub_control = ci_imx_ehci_hub_control; } return 0; }
static int __init ehci_oxnas_init(void) { if (usb_disabled()) return -ENODEV; ehci_init_driver(&oxnas_hc_driver, &oxnas_overrides); return platform_driver_register(&ehci_oxnas_driver); }
static int __init ehci_msm_init(void) { if (usb_disabled()) return -ENODEV; pr_info("%s: " DRIVER_DESC "\n", hcd_name); ehci_init_driver(&msm_hc_driver, &msm_overrides); return platform_driver_register(&ehci_msm_driver); }
static int __init ehci_atmel_init(void) { if (usb_disabled()) return -ENODEV; pr_info("%s: " DRIVER_DESC "\n", hcd_name); ehci_init_driver(&ehci_atmel_hc_driver, NULL); return platform_driver_register(&ehci_atmel_driver); }
static int __init ehci_s5p_init(void) { if (usb_disabled()) return -ENODEV; pr_info("%s: " DRIVER_DESC "\n", hcd_name); ehci_init_driver(&s5p_ehci_hc_driver, &s5p_overrides); bus_resume = s5p_ehci_hc_driver.bus_resume; s5p_ehci_hc_driver.bus_resume = s5p_ehci_bus_resume; return platform_driver_register(&s5p_ehci_driver); }
int ci_hdrc_host_init(struct ci13xxx *ci) { struct ci_role_driver *rdrv; if (!hw_read(ci, CAP_DCCPARAMS, DCCPARAMS_HC)) return -ENXIO; rdrv = devm_kzalloc(ci->dev, sizeof(struct ci_role_driver), GFP_KERNEL); if (!rdrv) return -ENOMEM; rdrv->start = host_start; rdrv->stop = host_stop; rdrv->irq = host_irq; rdrv->name = "host"; ci->roles[CI_ROLE_HOST] = rdrv; ehci_init_driver(&ci_ehci_hc_driver, NULL); return 0; }
void ci_hdrc_host_driver_init(void) { ehci_init_driver(&ci_ehci_hc_driver, &ehci_ci_overrides); orig_bus_suspend = ci_ehci_hc_driver.bus_suspend; ci_ehci_hc_driver.bus_suspend = ci_ehci_bus_suspend; }