Hi, the upstream OHCI framework changed, so ohci-ep93xx.c did not compile any more. Bene Signed-off-by: Benedikt Spranger <b.spranger@xxxxxxxxxxxxx> --- ohci-ep93xx.c | 97 +++++++++++ +---------------------------------------------- 1 files changed, 21 insertions(+), 76 deletions(-) ---
--- linux-2.6.11/drivers/usb/host/ohci-ep93xx.c 2005-05-19 16:10:51.000000000 +0200 +++ 2.6.11-RT/drivers/usb/host/ohci-ep93xx.c 2005-05-19 14:02:54.000000000 +0200 @@ -91,68 +91,28 @@ struct amba_device *dev) { int retval; - struct usb_hcd *hcd = NULL; + struct usb_hcd *hcd; -#if 0 - if (!request_mem_region(dev->res.start, - dev->res.end - dev->res.start + 1, hcd_name)) { - dbg("request_mem_region failed"); - return -EBUSY; - } -#endif + hcd = usb_create_hcd(driver, &dev->dev, "ep93xx"); + + if (!hcd) + return -ENOMEM; + + hcd->rsrc_start = dev->res.start; + hcd->rsrc_len = dev->res.end - dev->res.start + 1; + + hcd->regs = (void __iomem *) dev->res.start; ep93xx_start_hc(dev); - - hcd = usb_create_hcd(driver); - if (hcd == NULL){ - dbg ("hcd_alloc failed"); - retval = -ENOMEM; - goto err1; - } ohci_hcd_init(hcd_to_ohci(hcd)); - - hcd->irq = dev->irq[0]; - hcd->regs = (void __iomem *) dev->res.start; - hcd->self.controller = &dev->dev; - - retval = hcd_buffer_create (hcd); - if (retval != 0) { - dbg ("pool alloc fail"); - goto err2; - } - - retval = request_irq (hcd->irq, usb_hcd_irq, SA_INTERRUPT, - hcd->driver->description, hcd); - if (retval != 0) { - dbg("request_irq failed"); - retval = -EBUSY; - goto err3; - } - - info ("%s (EP93xx) at 0x%p, irq %d\n", - hcd->driver->description, hcd->regs, hcd->irq); - - hcd->self.bus_name = "amba"; - usb_register_bus (&hcd->self); - - if ((retval = driver->start (hcd)) < 0) - { - usb_hcd_ep93xx_remove(hcd, dev); + + retval = usb_add_hcd(hcd, dev->irq[0], SA_INTERRUPT); + if (retval == 0) return retval; - } - *hcd_out = hcd; - return 0; - - err3: - hcd_buffer_destroy (hcd); - err2: - usb_put_hcd(hcd); - err1: ep93xx_stop_hc(dev); -#if 0 - release_mem_region(dev->res.start, dev->res.end - dev->res.start + 1); -#endif + + usb_put_hcd(hcd); return retval; } @@ -172,28 +132,9 @@ */ void usb_hcd_ep93xx_remove (struct usb_hcd *hcd, struct amba_device *dev) { - info ("remove: %s, state %x", hcd->self.bus_name, hcd->state); - - if (in_interrupt ()) - BUG (); - - hcd->state = USB_STATE_QUIESCING; - - dbg ("%s: roothub graceful disconnect", hcd->self.bus_name); - usb_disconnect (&hcd->self.root_hub); - - hcd->driver->stop (hcd); - hcd->state = USB_STATE_HALT; - - free_irq (hcd->irq, hcd); - hcd_buffer_destroy (hcd); - - usb_deregister_bus (&hcd->self); - + usb_remove_hcd(hcd); ep93xx_stop_hc(dev); -#if 0 - release_mem_region(dev->res.start, dev->res.end - dev->res.start + 1); -#endif + usb_put_hcd(hcd); } /*-------------------------------------------------------------------------*/ @@ -258,6 +199,10 @@ */ .hub_status_data = ohci_hub_status_data, .hub_control = ohci_hub_control, +#ifdef CONFIG_USB_SUSPEND + .hub_suspend = ohci_hub_suspend, + .hub_resume = ohci_hub_resume, +#endif }; /*-------------------------------------------------------------------------*/