]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/musb/davinci.c
Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git...
[~andy/linux] / drivers / usb / musb / davinci.c
index 7c569f51212abeeed36e504dde9b6a1e5460817c..97ab975fa4424c3bcb4b6cce5368fc144aaba845 100644 (file)
@@ -265,6 +265,7 @@ static irqreturn_t davinci_musb_interrupt(int irq, void *__hci)
        unsigned long   flags;
        irqreturn_t     retval = IRQ_NONE;
        struct musb     *musb = __hci;
+       struct usb_otg  *otg = musb->xceiv->otg;
        void __iomem    *tibase = musb->ctrl_base;
        struct cppi     *cppi;
        u32             tmp;
@@ -331,14 +332,14 @@ static irqreturn_t davinci_musb_interrupt(int irq, void *__hci)
                        WARNING("VBUS error workaround (delay coming)\n");
                } else if (is_host_enabled(musb) && drvvbus) {
                        MUSB_HST_MODE(musb);
-                       musb->xceiv->default_a = 1;
+                       otg->default_a = 1;
                        musb->xceiv->state = OTG_STATE_A_WAIT_VRISE;
                        portstate(musb->port1_status |= USB_PORT_STAT_POWER);
                        del_timer(&otg_workaround);
                } else {
                        musb->is_active = 0;
                        MUSB_DEV_MODE(musb);
-                       musb->xceiv->default_a = 0;
+                       otg->default_a = 0;
                        musb->xceiv->state = OTG_STATE_B_IDLE;
                        portstate(musb->port1_status &= ~USB_PORT_STAT_POWER);
                }
@@ -383,7 +384,7 @@ static int davinci_musb_init(struct musb *musb)
        u32             revision;
 
        usb_nop_xceiv_register();
-       musb->xceiv = otg_get_transceiver();
+       musb->xceiv = usb_get_transceiver();
        if (!musb->xceiv)
                return -ENODEV;
 
@@ -442,7 +443,7 @@ static int davinci_musb_init(struct musb *musb)
        return 0;
 
 fail:
-       otg_put_transceiver(musb->xceiv);
+       usb_put_transceiver(musb->xceiv);
        usb_nop_xceiv_unregister();
        return -ENODEV;
 }
@@ -464,7 +465,7 @@ static int davinci_musb_exit(struct musb *musb)
        davinci_musb_source_power(musb, 0 /*off*/, 1);
 
        /* delay, to avoid problems with module reload */
-       if (is_host_enabled(musb) && musb->xceiv->default_a) {
+       if (is_host_enabled(musb) && musb->xceiv->otg->default_a) {
                int     maxdelay = 30;
                u8      devctl, warn = 0;
 
@@ -491,7 +492,7 @@ static int davinci_musb_exit(struct musb *musb)
 
        phy_off();
 
-       otg_put_transceiver(musb->xceiv);
+       usb_put_transceiver(musb->xceiv);
        usb_nop_xceiv_unregister();
 
        return 0;
@@ -511,7 +512,7 @@ static const struct musb_platform_ops davinci_ops = {
 
 static u64 davinci_dmamask = DMA_BIT_MASK(32);
 
-static int __init davinci_probe(struct platform_device *pdev)
+static int __devinit davinci_probe(struct platform_device *pdev)
 {
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct platform_device          *musb;
@@ -594,7 +595,7 @@ err0:
        return ret;
 }
 
-static int __exit davinci_remove(struct platform_device *pdev)
+static int __devexit davinci_remove(struct platform_device *pdev)
 {
        struct davinci_glue             *glue = platform_get_drvdata(pdev);
 
@@ -608,7 +609,8 @@ static int __exit davinci_remove(struct platform_device *pdev)
 }
 
 static struct platform_driver davinci_driver = {
-       .remove         = __exit_p(davinci_remove),
+       .probe          = davinci_probe,
+       .remove         = __devexit_p(davinci_remove),
        .driver         = {
                .name   = "musb-davinci",
        },
@@ -620,9 +622,9 @@ MODULE_LICENSE("GPL v2");
 
 static int __init davinci_init(void)
 {
-       return platform_driver_probe(&davinci_driver, davinci_probe);
+       return platform_driver_register(&davinci_driver);
 }
-subsys_initcall(davinci_init);
+module_init(davinci_init);
 
 static void __exit davinci_exit(void)
 {