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 355883c5ffed8a6003944d383ebde787c91426eb..e372c87f37e2ac3e0d9ed1878848bb5ca64ecf48 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 02eded21d17101b799ee095476a9c158a5de598e..03cb001c0e19203ccfb71d1481c79aca87cb0d7e 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 94ddfe01d673adfb42eefa49d87c91dc328053a0..45ccac3aad9d7391e246001cda31eee3a5284763 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 661870a1cd4d18ebb19f7d3e458988b8c39ca38c..831a04dd5a53ed421c904239875ddfd8dbc7dc72 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 1ca14f90c994eb612b882580583523debff0d902..dcc77ef6cfffca0e7803e03949132a52decc7cf8 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 9594b9d1d27b78126d91f99644dcb2e7950d619a..fac1eab3c59fbc55adc97b02da6330d8a3a0167e 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 bca9df7557a4dd3fa857778897877b7386abc717..2eea1703e6300d451cf1065ec12afe3a7d134b56 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 2ff78d6b2eff0759c5a8d8058716b8b34be31eb1..d6b832641c53a9ba7c5cb95d0e6992bd510dd78d 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 e2191d4db4dd9d69f58836ffda54f544b538fc3e..6f4e5014cf5e648c7060ece729bdb93c8fd7b3ec 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;
 };
 
 
This page took 0.030153 seconds and 5 git commands to generate.