usb: otg: Convert all users to pass struct usb_otg for OTG functions
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Mon, 13 Feb 2012 11:24:20 +0000 (13:24 +0200)
committerFelipe Balbi <balbi@ti.com>
Mon, 27 Feb 2012 13:41:52 +0000 (15:41 +0200)
This changes the otg functions so that they receive struct
otg instead of struct usb_phy as parameter and
converts all users of these functions to pass the otg member
of their usb_phy.

Includes fixes to IMX code from Sascha Hauer.

[ balbi@ti.com : fixed a compile warning on ehci-mv.c ]

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Acked-by: Li Yang <leoli@freescale.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
20 files changed:
arch/arm/mach-pxa/pxa3xx-ulpi.c
drivers/usb/gadget/ci13xxx_udc.c
drivers/usb/gadget/fsl_udc_core.c
drivers/usb/gadget/langwell_udc.c
drivers/usb/gadget/mv_udc_core.c
drivers/usb/gadget/omap_udc.c
drivers/usb/gadget/pxa25x_udc.c
drivers/usb/gadget/pxa27x_udc.c
drivers/usb/gadget/s3c-hsudc.c
drivers/usb/host/ehci-fsl.c
drivers/usb/host/ehci-hub.c
drivers/usb/host/ehci-msm.c
drivers/usb/host/ehci-mv.c
drivers/usb/host/ehci-mxc.c
drivers/usb/host/ehci-tegra.c
drivers/usb/host/ohci-omap.c
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_gadget.c
drivers/usb/musb/omap2430.c
include/linux/usb/otg.h

index a13f33565623946e98f9f9a5e16e7e7a2fec2399..5ead6d480c6d3ecb7d3b3a900bd83ea67e0693d0 100644 (file)
@@ -145,13 +145,13 @@ static int pxa310_start_otg_host_transcvr(struct usb_bus *host)
                return err;
        }
 
-       err = otg_set_vbus(u2d->otg, 1);
+       err = otg_set_vbus(u2d->otg->otg, 1);
        if (err) {
                pr_err("OTG transceiver VBUS set failed");
                return err;
        }
 
-       err = otg_set_host(u2d->otg, host);
+       err = otg_set_host(u2d->otg->otg, host);
        if (err)
                pr_err("OTG transceiver Host mode set failed");
 
@@ -189,8 +189,8 @@ static void pxa310_stop_otg_hc(void)
 {
        pxa310_otg_transceiver_rtsm();
 
-       otg_set_host(u2d->otg, NULL);
-       otg_set_vbus(u2d->otg, 0);
+       otg_set_host(u2d->otg->otg, NULL);
+       otg_set_vbus(u2d->otg->otg, 0);
        usb_phy_shutdown(u2d->otg);
 }
 
index 68ad160f258942ac401e1bbba87c11b33489a951..b27cb0b0077badf1bd8f256f5788c067af985188 100644 (file)
@@ -2928,7 +2928,8 @@ static int udc_probe(struct ci13xxx_udc_driver *driver, struct device *dev,
                goto unreg_device;
 
        if (udc->transceiver) {
-               retval = otg_set_peripheral(udc->transceiver, &udc->gadget);
+               retval = otg_set_peripheral(udc->transceiver->otg,
+                                               &udc->gadget);
                if (retval)
                        goto remove_dbg;
        }
@@ -2945,7 +2946,7 @@ static int udc_probe(struct ci13xxx_udc_driver *driver, struct device *dev,
 
 remove_trans:
        if (udc->transceiver) {
-               otg_set_peripheral(udc->transceiver, &udc->gadget);
+               otg_set_peripheral(udc->transceiver->otg, &udc->gadget);
                usb_put_transceiver(udc->transceiver);
        }
 
@@ -2981,7 +2982,7 @@ static void udc_remove(void)
        usb_del_gadget_udc(&udc->gadget);
 
        if (udc->transceiver) {
-               otg_set_peripheral(udc->transceiver, &udc->gadget);
+               otg_set_peripheral(udc->transceiver->otg, &udc->gadget);
                usb_put_transceiver(udc->transceiver);
        }
 #ifdef CONFIG_USB_GADGET_DEBUG_FILES
index 21fdfdb18ba8f4a37024ab9bdef65dcba2b7e145..1e8c0c425fa1d0a15944427461141ea7bd6803d4 100644 (file)
@@ -1966,7 +1966,8 @@ static int fsl_start(struct usb_gadget_driver *driver,
 
                /* connect to bus through transceiver */
                if (udc_controller->transceiver) {
-                       retval = otg_set_peripheral(udc_controller->transceiver,
+                       retval = otg_set_peripheral(
+                                       udc_controller->transceiver->otg,
                                                    &udc_controller->gadget);
                        if (retval < 0) {
                                ERR("can't bind to transceiver\n");
@@ -2006,7 +2007,7 @@ static int fsl_stop(struct usb_gadget_driver *driver)
                return -EINVAL;
 
        if (udc_controller->transceiver)
-               otg_set_peripheral(udc_controller->transceiver, NULL);
+               otg_set_peripheral(udc_controller->transceiver->otg, NULL);
 
        /* stop DR, disable intr */
        dr_controller_stop(udc_controller);
index b19a9e46e69df8119592b0b92572bb1cfbecc9f1..42a88b680f251b471ad12040c16075616be7e413 100644 (file)
@@ -1906,7 +1906,7 @@ static int langwell_stop(struct usb_gadget *g,
 
        /* unbind OTG transceiver */
        if (dev->transceiver)
-               (void)otg_set_peripheral(dev->transceiver, 0);
+               (void)otg_set_peripheral(dev->transceiver->otg, 0);
 
        /* disable interrupt and set controller to stop state */
        langwell_udc_stop(dev);
index 50baf3ea336b81f82b3e96e66aafbdd47bb7b0d6..7369fd92c03fbb79ef05b4a133dd3bbbad7276a1 100644 (file)
@@ -1384,7 +1384,8 @@ static int mv_udc_start(struct usb_gadget_driver *driver,
        }
 
        if (udc->transceiver) {
-               retval = otg_set_peripheral(udc->transceiver, &udc->gadget);
+               retval = otg_set_peripheral(udc->transceiver->otg,
+                                       &udc->gadget);
                if (retval) {
                        dev_err(&udc->dev->dev,
                                "unable to register peripheral to otg\n");
index e82c6995ce26693f07031342e32ea84100356111..ace8a652b32b2fd7e0764b15069d1a5c1e2c8cce 100644 (file)
@@ -1213,7 +1213,7 @@ static int omap_wakeup(struct usb_gadget *gadget)
        /* NOTE:  non-OTG systems may use SRP TOO... */
        } else if (!(udc->devstat & UDC_ATT)) {
                if (udc->transceiver)
-                       retval = otg_start_srp(udc->transceiver);
+                       retval = otg_start_srp(udc->transceiver->otg);
        }
        spin_unlock_irqrestore(&udc->lock, flags);
 
@@ -2156,7 +2156,8 @@ static int omap_udc_start(struct usb_gadget_driver *driver,
 
        /* connect to bus through transceiver */
        if (udc->transceiver) {
-               status = otg_set_peripheral(udc->transceiver, &udc->gadget);
+               status = otg_set_peripheral(udc->transceiver->otg,
+                                               &udc->gadget);
                if (status < 0) {
                        ERR("can't bind to transceiver\n");
                        if (driver->unbind) {
@@ -2202,7 +2203,7 @@ static int omap_udc_stop(struct usb_gadget_driver *driver)
                omap_vbus_session(&udc->gadget, 0);
 
        if (udc->transceiver)
-               (void) otg_set_peripheral(udc->transceiver, NULL);
+               (void) otg_set_peripheral(udc->transceiver->otg, NULL);
        else
                pullup_disable(udc);
 
index b86518e494157d0ef63c45e94613bde418e88a71..df681b5cd695f6e1ef6dfa99a3ce3ca93b73c312 100644 (file)
@@ -1301,7 +1301,8 @@ fail:
 
        /* connect to bus through transceiver */
        if (dev->transceiver) {
-               retval = otg_set_peripheral(dev->transceiver, &dev->gadget);
+               retval = otg_set_peripheral(dev->transceiver->otg,
+                                               &dev->gadget);
                if (retval) {
                        DMSG("can't bind to transceiver\n");
                        if (driver->unbind)
@@ -1360,7 +1361,7 @@ static int pxa25x_stop(struct usb_gadget_driver *driver)
        local_irq_enable();
 
        if (dev->transceiver)
-               (void) otg_set_peripheral(dev->transceiver, NULL);
+               (void) otg_set_peripheral(dev->transceiver->otg, NULL);
 
        driver->unbind(&dev->gadget);
        dev->gadget.dev.driver = NULL;
index 1906ed0dcdc2f9fd20a5ec93d697fb6812b85a8e..98acb3ab9e1791f966c44be9b80c430d46a492fb 100644 (file)
@@ -1835,7 +1835,8 @@ static int pxa27x_udc_start(struct usb_gadget_driver *driver,
                driver->driver.name);
 
        if (udc->transceiver) {
-               retval = otg_set_peripheral(udc->transceiver, &udc->gadget);
+               retval = otg_set_peripheral(udc->transceiver->otg,
+                                               &udc->gadget);
                if (retval) {
                        dev_err(udc->dev, "can't bind to transceiver\n");
                        goto transceiver_fail;
@@ -1908,7 +1909,7 @@ static int pxa27x_udc_stop(struct usb_gadget_driver *driver)
                 driver->driver.name);
 
        if (udc->transceiver)
-               return otg_set_peripheral(udc->transceiver, NULL);
+               return otg_set_peripheral(udc->transceiver->otg, NULL);
        return 0;
 }
 
index e124bfa399f5e3e29a6edebf5f68fbd277a323b8..c2f3aa650584071f6eda36d49128445b699f8691 100644 (file)
@@ -1166,7 +1166,8 @@ static int s3c_hsudc_start(struct usb_gadget *gadget,
 
        /* connect to bus through transceiver */
        if (hsudc->transceiver) {
-               ret = otg_set_peripheral(hsudc->transceiver, &hsudc->gadget);
+               ret = otg_set_peripheral(hsudc->transceiver->otg,
+                                       &hsudc->gadget);
                if (ret) {
                        dev_err(hsudc->dev, "%s: can't bind to transceiver\n",
                                        hsudc->gadget.name);
@@ -1214,7 +1215,7 @@ static int s3c_hsudc_stop(struct usb_gadget *gadget,
        spin_unlock_irqrestore(&hsudc->lock, flags);
 
        if (hsudc->transceiver)
-               (void) otg_set_peripheral(hsudc->transceiver, NULL);
+               (void) otg_set_peripheral(hsudc->transceiver->otg, NULL);
 
        disable_irq(hsudc->irq);
 
index 481effdc7f54beab837dbeda612f0764c1f9fd04..4786ba5f2e6c77317b4685dee816c6b8e24f573a 100644 (file)
@@ -147,7 +147,7 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver,
                        hcd, ehci, ehci->transceiver);
 
                if (ehci->transceiver) {
-                       retval = otg_set_host(ehci->transceiver,
+                       retval = otg_set_host(ehci->transceiver->otg,
                                              &ehci_to_hcd(ehci)->self);
                        if (retval) {
                                if (ehci->transceiver)
@@ -194,7 +194,7 @@ static void usb_hcd_fsl_remove(struct usb_hcd *hcd,
        struct ehci_hcd *ehci = hcd_to_ehci(hcd);
 
        if (ehci->transceiver) {
-               otg_set_host(ehci->transceiver, NULL);
+               otg_set_host(ehci->transceiver->otg, NULL);
                put_device(ehci->transceiver->dev);
        }
 
index 77bbb2357e478a5e021118076bbe2a7f84811af4..75a2b30d8aa6ee7e80acb6972e18e8b90033bc15 100644 (file)
@@ -727,7 +727,7 @@ static int ehci_hub_control (
 #ifdef CONFIG_USB_OTG
                        if ((hcd->self.otg_port == (wIndex + 1))
                            && hcd->self.b_hnp_enable) {
-                               otg_start_hnp(ehci->transceiver);
+                               otg_start_hnp(ehci->transceiver->otg);
                                break;
                        }
 #endif
index d8db5ecf5e37197fab5236ae0d775d131c3a0cd0..9803a55fd5f464b600d47b02ae3c2f923060473d 100644 (file)
@@ -152,7 +152,7 @@ static int ehci_msm_probe(struct platform_device *pdev)
                goto unmap;
        }
 
-       ret = otg_set_host(phy, &hcd->self);
+       ret = otg_set_host(phy->otg, &hcd->self);
        if (ret < 0) {
                dev_err(&pdev->dev, "unable to register with transceiver\n");
                goto put_transceiver;
@@ -186,7 +186,7 @@ static int __devexit ehci_msm_remove(struct platform_device *pdev)
        pm_runtime_disable(&pdev->dev);
        pm_runtime_set_suspended(&pdev->dev);
 
-       otg_set_host(phy, NULL);
+       otg_set_host(phy->otg, NULL);
        usb_put_transceiver(phy);
 
        usb_put_hcd(hcd);
index 62a63b598149ee26803eab9bb8dd4bfcfb334550..a936bbcff8f496cd99d23256731887ecdd42c233 100644 (file)
@@ -261,7 +261,7 @@ static int mv_ehci_probe(struct platform_device *pdev)
                        goto err_disable_clk;
                }
 
-               retval = otg_set_host(ehci_mv->otg, &hcd->self);
+               retval = otg_set_host(ehci_mv->otg->otg, &hcd->self);
                if (retval < 0) {
                        dev_err(&pdev->dev,
                                "unable to register with transceiver\n");
@@ -332,7 +332,7 @@ static int mv_ehci_remove(struct platform_device *pdev)
                usb_remove_hcd(hcd);
 
        if (ehci_mv->otg) {
-               otg_set_host(ehci_mv->otg, NULL);
+               otg_set_host(ehci_mv->otg->otg, NULL);
                usb_put_transceiver(ehci_mv->otg);
        }
 
index b762fe0955b96194da360b669b4d4b5d4b3fe0cb..a797d51ecbe83fd9daa651d435a9931219333b4f 100644 (file)
@@ -226,7 +226,7 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
                        ret = -ENODEV;
                        goto err_add;
                }
-               ret = otg_set_vbus(pdata->otg, 1);
+               ret = otg_set_vbus(pdata->otg->otg, 1);
                if (ret) {
                        dev_err(dev, "unable to enable vbus on transceiver\n");
                        goto err_add;
index 701a0bf586231287954908ab010d71681d58300e..3de48a2d79550df7b9af8efe0132ff73e2535fdd 100644 (file)
@@ -735,7 +735,7 @@ static int tegra_ehci_probe(struct platform_device *pdev)
        if (pdata->operating_mode == TEGRA_USB_OTG) {
                tegra->transceiver = usb_get_transceiver();
                if (tegra->transceiver)
-                       otg_set_host(tegra->transceiver, &hcd->self);
+                       otg_set_host(tegra->transceiver->otg, &hcd->self);
        }
 #endif
 
@@ -750,7 +750,7 @@ static int tegra_ehci_probe(struct platform_device *pdev)
 fail:
 #ifdef CONFIG_USB_OTG_UTILS
        if (tegra->transceiver) {
-               otg_set_host(tegra->transceiver, NULL);
+               otg_set_host(tegra->transceiver->otg, NULL);
                usb_put_transceiver(tegra->transceiver);
        }
 #endif
@@ -808,7 +808,7 @@ static int tegra_ehci_remove(struct platform_device *pdev)
 
 #ifdef CONFIG_USB_OTG_UTILS
        if (tegra->transceiver) {
-               otg_set_host(tegra->transceiver, NULL);
+               otg_set_host(tegra->transceiver->otg, NULL);
                usb_put_transceiver(tegra->transceiver);
        }
 #endif
index 744e25da800fa75e95aab2b04299035d09e8fe9a..96451e41ee8ac5f16692f8862ce4b33491edb3d2 100644 (file)
@@ -171,7 +171,7 @@ static void start_hnp(struct ohci_hcd *ohci)
        unsigned long   flags;
        u32 l;
 
-       otg_start_hnp(ohci->transceiver);
+       otg_start_hnp(ohci->transceiver->otg);
 
        local_irq_save(flags);
        ohci->transceiver->state = OTG_STATE_A_SUSPEND;
@@ -212,7 +212,7 @@ static int ohci_omap_init(struct usb_hcd *hcd)
        if (need_transceiver) {
                ohci->transceiver = usb_get_transceiver();
                if (ohci->transceiver) {
-                       int     status = otg_set_host(ohci->transceiver,
+                       int     status = otg_set_host(ohci->transceiver->otg,
                                                &ohci_to_hcd(ohci)->self);
                        dev_dbg(hcd->self.controller, "init %s transceiver, status %d\n",
                                        ohci->transceiver->label, status);
@@ -404,7 +404,7 @@ usb_hcd_omap_remove (struct usb_hcd *hcd, struct platform_device *pdev)
 
        usb_remove_hcd(hcd);
        if (ohci->transceiver) {
-               (void) otg_set_host(ohci->transceiver, 0);
+               (void) otg_set_host(ohci->transceiver->otg, 0);
                put_device(ohci->transceiver->dev);
        }
        if (machine_is_omap_osk())
index 7e9be74dba4dd129a04e244f294d76af613c2cf4..88bf453e33da14bf322741b28bbd4c10f1afb3d3 100644 (file)
@@ -1961,7 +1961,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
        if (is_host_enabled(musb)) {
                struct usb_hcd  *hcd = musb_to_hcd(musb);
 
-               otg_set_host(musb->xceiv, &hcd->self);
+               otg_set_host(musb->xceiv->otg, &hcd->self);
 
                if (is_otg_enabled(musb))
                        hcd->self.otg_port = 1;
index 3a1793663d914a409c88835e1e80b67f20ad0c6e..caeaf9f96f735b7b593f2e067150501ebe1dfbde 100644 (file)
@@ -1624,7 +1624,7 @@ static int musb_gadget_wakeup(struct usb_gadget *gadget)
                }
 
                spin_unlock_irqrestore(&musb->lock, flags);
-               otg_start_srp(musb->xceiv);
+               otg_start_srp(musb->xceiv->otg);
                spin_lock_irqsave(&musb->lock, flags);
 
                /* Block idling for at least 1s */
@@ -1915,7 +1915,7 @@ static int musb_gadget_start(struct usb_gadget *g,
        spin_lock_irqsave(&musb->lock, flags);
        musb->is_active = 1;
 
-       otg_set_peripheral(musb->xceiv, &musb->g);
+       otg_set_peripheral(otg, &musb->g);
        musb->xceiv->state = OTG_STATE_B_IDLE;
 
        /*
@@ -1947,7 +1947,7 @@ static int musb_gadget_start(struct usb_gadget *g,
 
                if ((musb->xceiv->last_event == USB_EVENT_ID)
                                        && otg->set_vbus)
-                       otg_set_vbus(musb->xceiv, 1);
+                       otg_set_vbus(otg, 1);
 
                hcd->self.uses_pio_for_control = 1;
        }
@@ -2029,7 +2029,7 @@ static int musb_gadget_stop(struct usb_gadget *g,
 
        musb->xceiv->state = OTG_STATE_UNDEFINED;
        stop_activity(musb, driver);
-       otg_set_peripheral(musb->xceiv, NULL);
+       otg_set_peripheral(musb->xceiv->otg, NULL);
 
        dev_dbg(musb->controller, "unregistering driver %s\n", driver->function);
 
index 96a3d3763cc4d467ed232a84c1a0a7dbc986c4c2..d8df60a9fc2a5a06b8503172eafc7e012700b9f4 100644 (file)
@@ -164,8 +164,8 @@ static void omap2430_musb_set_vbus(struct musb *musb, int is_on)
                                }
                        }
 
-                       if (ret && musb->xceiv->set_vbus)
-                               otg_set_vbus(musb->xceiv, 1);
+                       if (ret && otg->set_vbus)
+                               otg_set_vbus(otg, 1);
                } else {
                        musb->is_active = 1;
                        otg->default_a = 1;
@@ -270,8 +270,8 @@ static void musb_otg_notifier_work(struct work_struct *data_notifier_work)
                        }
 
                if (data->interface_type == MUSB_INTERFACE_UTMI) {
-                       if (musb->xceiv->set_vbus)
-                               otg_set_vbus(musb->xceiv, 0);
+                       if (musb->xceiv->otg->set_vbus)
+                               otg_set_vbus(musb->xceiv->otg, 0);
                }
                usb_phy_shutdown(musb->xceiv);
                break;
index de89342098e487d91020cf37aeb250d0c956f230..f67810f8f21b1e6468af6c61e044923c005e0da4 100644 (file)
@@ -192,30 +192,30 @@ static inline const char *otg_state_string(enum usb_otg_state state)
 
 /* Context: can sleep */
 static inline int
-otg_start_hnp(struct usb_phy *x)
+otg_start_hnp(struct usb_otg *otg)
 {
-       if (x->otg && x->otg->start_hnp)
-               return x->otg->start_hnp(x->otg);
+       if (otg && otg->start_hnp)
+               return otg->start_hnp(otg);
 
        return -ENOTSUPP;
 }
 
 /* Context: can sleep */
 static inline int
-otg_set_vbus(struct usb_phy *x, bool enabled)
+otg_set_vbus(struct usb_otg *otg, bool enabled)
 {
-       if (x->otg && x->otg->set_vbus)
-               return x->otg->set_vbus(x->otg, enabled);
+       if (otg && otg->set_vbus)
+               return otg->set_vbus(otg, enabled);
 
        return -ENOTSUPP;
 }
 
 /* for HCDs */
 static inline int
-otg_set_host(struct usb_phy *x, struct usb_bus *host)
+otg_set_host(struct usb_otg *otg, struct usb_bus *host)
 {
-       if (x->otg && x->otg->set_host)
-               return x->otg->set_host(x->otg, host);
+       if (otg && otg->set_host)
+               return otg->set_host(otg, host);
 
        return -ENOTSUPP;
 }
@@ -224,10 +224,10 @@ otg_set_host(struct usb_phy *x, struct usb_bus *host)
 
 /* Context: can sleep */
 static inline int
-otg_set_peripheral(struct usb_phy *x, struct usb_gadget *periph)
+otg_set_peripheral(struct usb_otg *otg, struct usb_gadget *periph)
 {
-       if (x->otg && x->otg->set_peripheral)
-               return x->otg->set_peripheral(x->otg, periph);
+       if (otg && otg->set_peripheral)
+               return otg->set_peripheral(otg, periph);
 
        return -ENOTSUPP;
 }
@@ -251,10 +251,10 @@ usb_phy_set_suspend(struct usb_phy *x, int suspend)
 }
 
 static inline int
-otg_start_srp(struct usb_phy *x)
+otg_start_srp(struct usb_otg *otg)
 {
-       if (x->otg && x->otg->start_srp)
-               return x->otg->start_srp(x->otg);
+       if (otg && otg->start_srp)
+               return otg->start_srp(otg);
 
        return -ENOTSUPP;
 }