|
@@ -25,57 +25,18 @@
|
|
|
#include <linux/usb/chipidea.h>
|
|
|
|
|
|
#define CHIPIDEA_EHCI
|
|
|
-#include "../host/ehci-hcd.c"
|
|
|
+#include "../host/ehci.h"
|
|
|
|
|
|
#include "ci.h"
|
|
|
#include "bits.h"
|
|
|
#include "host.h"
|
|
|
|
|
|
-static const struct hc_driver ci_ehci_hc_driver = {
|
|
|
- .description = "ehci_hcd",
|
|
|
- .product_desc = "ChipIdea HDRC EHCI",
|
|
|
- .hcd_priv_size = sizeof(struct ehci_hcd),
|
|
|
-
|
|
|
- /*
|
|
|
- * generic hardware linkage
|
|
|
- */
|
|
|
- .irq = ehci_irq,
|
|
|
- .flags = HCD_MEMORY | HCD_USB2,
|
|
|
-
|
|
|
- /*
|
|
|
- * basic lifecycle operations
|
|
|
- */
|
|
|
- .reset = ehci_setup,
|
|
|
- .start = ehci_run,
|
|
|
- .stop = ehci_stop,
|
|
|
- .shutdown = ehci_shutdown,
|
|
|
-
|
|
|
- /*
|
|
|
- * managing i/o requests and associated device resources
|
|
|
- */
|
|
|
- .urb_enqueue = ehci_urb_enqueue,
|
|
|
- .urb_dequeue = ehci_urb_dequeue,
|
|
|
- .endpoint_disable = ehci_endpoint_disable,
|
|
|
- .endpoint_reset = ehci_endpoint_reset,
|
|
|
-
|
|
|
- /*
|
|
|
- * scheduling support
|
|
|
- */
|
|
|
- .get_frame_number = ehci_get_frame,
|
|
|
-
|
|
|
- /*
|
|
|
- * root hub support
|
|
|
- */
|
|
|
- .hub_status_data = ehci_hub_status_data,
|
|
|
- .hub_control = ehci_hub_control,
|
|
|
- .bus_suspend = ehci_bus_suspend,
|
|
|
- .bus_resume = ehci_bus_resume,
|
|
|
- .relinquish_port = ehci_relinquish_port,
|
|
|
- .port_handed_over = ehci_port_handed_over,
|
|
|
-
|
|
|
- .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete,
|
|
|
+static const struct ehci_driver_overrides ci_overrides = {
|
|
|
+ .product_desc = "ChipIdea HDRC EHCI host controller",
|
|
|
};
|
|
|
|
|
|
+static struct hc_driver __read_mostly ci_ehci_hc_driver;
|
|
|
+
|
|
|
static irqreturn_t host_irq(struct ci13xxx *ci)
|
|
|
{
|
|
|
return usb_hcd_irq(ci->irq, ci->hcd);
|
|
@@ -141,5 +102,7 @@ int ci_hdrc_host_init(struct ci13xxx *ci)
|
|
|
rdrv->name = "host";
|
|
|
ci->roles[CI_ROLE_HOST] = rdrv;
|
|
|
|
|
|
+ ehci_init_driver(&ci_ehci_hc_driver, &ci_overrides);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|