On Sat, Jan 30, 2010 at 09:11:45PM -0500, Alan Stern wrote: > On Sat, 30 Jan 2010, Maxime Bizon wrote: > > +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 And one will run into even more trouble (as did I! hung ports galore...) if one doesn't include the .clear_tt_buffer_complete callback either, due to using an outdated non-mainline-synchronized host driver (that was Broadcom as well, ehci-ssb.c). The best thing to do is a full review of all _diffs_ in _all_ usb host kernel files in even moderately recent times (say 2.6.23 - 2.6.33) and add every missing required item to these bcm63xx host files, too. Is your code coming from OpenWrt too by chance? :-P Kudos to Alan for catching this problem during review (probably he was still alerted by my miserable luck) HTH, Andreas Mohr P.S.: yup I should get ehci-ssb.c cleaned up and submitted soon.