[linux-cirrus] [PATCH 2.6.12-rc4] USB: update the ohci-ep93xx.c

  • From: Benedikt Spranger <b.spranger@xxxxxxxxxxxxx>
  • To: linux-cirrus@xxxxxxxxxxxxx, Ray Lehtiniemi <rayl@xxxxxxxx>
  • Date: Thu, 19 May 2005 19:24:02 +0200

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
 };
 
 /*-------------------------------------------------------------------------*/

Other related posts: