On Sat, 30 Jan 2010, Maxime Bizon wrote: > Signed-off-by: Maxime Bizon <mbizon@xxxxxxxxxx> > --- > drivers/usb/host/ehci-bcm63xx.c | 154 +++++++++++++++++++++++++++++++++++++++ > drivers/usb/host/ehci-hcd.c | 5 + > 2 files changed, 159 insertions(+), 0 deletions(-) > create mode 100644 drivers/usb/host/ehci-bcm63xx.c > > diff --git a/drivers/usb/host/ehci-bcm63xx.c b/drivers/usb/host/ehci-bcm63xx.c > new file mode 100644 > index 0000000..50638f7 > --- /dev/null > +++ b/drivers/usb/host/ehci-bcm63xx.c > +static const struct hc_driver ehci_bcm63xx_hc_driver = { > + .description = hcd_name, > + .product_desc = "BCM63XX integrated EHCI controller", > + .hcd_priv_size = sizeof(struct ehci_hcd), > + > + .irq = ehci_irq, > + .flags = HCD_MEMORY | HCD_USB2, > + > + .reset = ehci_bcm63xx_setup, > + .start = ehci_run, > + .stop = ehci_stop, > + .shutdown = ehci_shutdown, > + > + .urb_enqueue = ehci_urb_enqueue, > + .urb_dequeue = ehci_urb_dequeue, > + .endpoint_disable = ehci_endpoint_disable, > + > + .get_frame_number = ehci_get_frame, > + > + .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, > +}; You'll run into trouble if you don't include the standard endpoint_reset method pointer. Alan Stern