On Sat, 30 Jan 2010, Maxime Bizon wrote:
> Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
> ---
> 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
|