usb: musb: pass platform_ops via platform_data
authorFelipe Balbi <balbi@ti.com>
Thu, 2 Dec 2010 07:48:58 +0000 (09:48 +0200)
committerFelipe Balbi <balbi@ti.com>
Fri, 10 Dec 2010 08:21:23 +0000 (10:21 +0200)
... then we don't need to export any symbols
from glue layer to musb_core.

Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/am35x.c
drivers/usb/musb/blackfin.c
drivers/usb/musb/da8xx.c
drivers/usb/musb/davinci.c
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_core.h
drivers/usb/musb/omap2430.c
drivers/usb/musb/tusb6010.c
include/linux/usb/musb.h

index 355883c..e372c87 100644 (file)
@@ -530,7 +530,7 @@ void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
        }
 }
 
-const struct musb_platform_ops musb_ops = {
+static const struct musb_platform_ops am35x_ops = {
        .init           = am35x_musb_init,
        .exit           = am35x_musb_exit,
 
@@ -572,6 +572,8 @@ static int __init am35x_probe(struct platform_device *pdev)
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
 
+       pdata->platform_ops             = &am35x_ops;
+
        platform_set_drvdata(pdev, glue);
 
        ret = platform_device_add_resources(musb, pdev->resource,
index 02eded2..03cb001 100644 (file)
@@ -436,7 +436,7 @@ static int bfin_musb_exit(struct musb *musb)
        return 0;
 }
 
-const struct musb_platform_ops musb_ops = {
+static const struct musb_platform_ops bfin_ops = {
        .init           = bfin_musb_init,
        .exit           = bfin_musb_exit,
 
@@ -479,6 +479,8 @@ static int __init bfin_probe(struct platform_device *pdev)
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
 
+       pdata->platform_ops             = &bfin_ops;
+
        platform_set_drvdata(pdev, glue);
 
        ret = platform_device_add_resources(musb, pdev->resource,
index 94ddfe0..45ccac3 100644 (file)
@@ -475,7 +475,7 @@ static int da8xx_musb_exit(struct musb *musb)
        return 0;
 }
 
-const struct musb_platform_ops musb_ops = {
+static const struct musb_platform_ops da8xx_ops = {
        .init           = da8xx_musb_init,
        .exit           = da8xx_musb_exit,
 
@@ -517,6 +517,8 @@ static int __init da8xx_probe(struct platform_device *pdev)
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
 
+       pdata->platform_ops             = &da8xx_ops;
+
        platform_set_drvdata(pdev, glue);
 
        ret = platform_device_add_resources(musb, pdev->resource,
index 661870a..831a04d 100644 (file)
@@ -510,7 +510,7 @@ static int davinci_musb_exit(struct musb *musb)
        return 0;
 }
 
-const struct musb_platform_ops musb_ops = {
+static const struct musb_platform_ops davinci_ops = {
        .init           = davinci_musb_init,
        .exit           = davinci_musb_exit,
 
@@ -551,6 +551,8 @@ static int __init davinci_probe(struct platform_device *pdev)
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
 
+       pdata->platform_ops             = &davinci_ops;
+
        platform_set_drvdata(pdev, glue);
 
        ret = platform_device_add_resources(musb, pdev->resource,
index 1ca14f9..dcc77ef 100644 (file)
@@ -1897,7 +1897,6 @@ allocate_instance(struct device *dev,
        }
 
        musb->controller = dev;
-       musb->ops = &musb_ops;
 
        return musb;
 }
@@ -1997,6 +1996,7 @@ bad_config:
        musb->board_set_power = plat->set_power;
        musb->set_clock = plat->set_clock;
        musb->min_power = plat->min_power;
+       musb->ops = plat->platform_ops;
 
        /* Clock usage is chip-specific ... functional clock (DaVinci,
         * OMAP2430), or PHY ref (some TUSB6010 boards).  All this core
index 9594b9d..fac1eab 100644 (file)
@@ -281,8 +281,6 @@ struct musb_platform_ops {
        void    (*set_vbus)(struct musb *musb, int on);
 };
 
-extern const struct musb_platform_ops musb_ops;
-
 /*
  * struct musb_hw_ep - endpoint hardware (bidirectional)
  *
index bca9df7..2eea170 100644 (file)
@@ -333,7 +333,7 @@ static int omap2430_musb_exit(struct musb *musb)
        return 0;
 }
 
-const struct musb_platform_ops musb_ops = {
+static const struct musb_platform_ops omap2430_ops = {
        .init           = omap2430_musb_init,
        .exit           = omap2430_musb_exit,
 
@@ -378,6 +378,8 @@ static int __init omap2430_probe(struct platform_device *pdev)
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
 
+       pdata->platform_ops             = &omap2430_ops;
+
        platform_set_drvdata(pdev, glue);
 
        ret = platform_device_add_resources(musb, pdev->resource,
index 2ff78d6..d6b8326 100644 (file)
@@ -1178,7 +1178,7 @@ static int tusb_musb_exit(struct musb *musb)
        return 0;
 }
 
-const struct musb_platform_ops musb_ops = {
+static const struct musb_platform_ops tusb_ops = {
        .init           = tusb_musb_init,
        .exit           = tusb_musb_exit,
 
@@ -1221,6 +1221,8 @@ static int __init tusb_probe(struct platform_device *pdev)
        glue->dev                       = &pdev->dev;
        glue->musb                      = musb;
 
+       pdata->platform_ops             = &tusb_ops;
+
        platform_set_drvdata(pdev, glue);
 
        ret = platform_device_add_resources(musb, pdev->resource,
index e2191d4..6f4e501 100644 (file)
@@ -126,6 +126,9 @@ struct musb_hdrc_platform_data {
 
        /* Architecture specific board data     */
        void            *board_data;
+
+       /* Platform specific struct musb_ops pointer */
+       const void      *platform_ops;
 };