aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2010-12-02 09:48:58 +0200
committerFelipe Balbi <balbi@ti.com>2010-12-10 10:21:23 +0200
commitf7ec94370f417fedad4db1054228ef958d48b926 (patch)
treeb036e02e21c04f60300394247869bdd5cda90026
parenta023c631f546ef95d58969385825a47652ab9039 (diff)
usb: musb: pass platform_ops via platform_data
... then we don't need to export any symbols from glue layer to musb_core. Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/musb/am35x.c4
-rw-r--r--drivers/usb/musb/blackfin.c4
-rw-r--r--drivers/usb/musb/da8xx.c4
-rw-r--r--drivers/usb/musb/davinci.c4
-rw-r--r--drivers/usb/musb/musb_core.c2
-rw-r--r--drivers/usb/musb/musb_core.h2
-rw-r--r--drivers/usb/musb/omap2430.c4
-rw-r--r--drivers/usb/musb/tusb6010.c4
-rw-r--r--include/linux/usb/musb.h3
9 files changed, 22 insertions, 9 deletions
diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c
index 355883c5ffe..e372c87f37e 100644
--- a/drivers/usb/musb/am35x.c
+++ b/drivers/usb/musb/am35x.c
@@ -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,
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c
index 02eded21d17..03cb001c0e1 100644
--- a/drivers/usb/musb/blackfin.c
+++ b/drivers/usb/musb/blackfin.c
@@ -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,
diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
index 94ddfe01d67..45ccac3aad9 100644
--- a/drivers/usb/musb/da8xx.c
+++ b/drivers/usb/musb/da8xx.c
@@ -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,
diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 661870a1cd4..831a04dd5a5 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -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,
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 1ca14f90c99..dcc77ef6cff 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -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
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
index 9594b9d1d27..fac1eab3c59 100644
--- a/drivers/usb/musb/musb_core.h
+++ b/drivers/usb/musb/musb_core.h
@@ -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)
*
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index bca9df7557a..2eea1703e63 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -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,
diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index 2ff78d6b2ef..d6b832641c5 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -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,
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h
index e2191d4db4d..6f4e5014cf5 100644
--- a/include/linux/usb/musb.h
+++ b/include/linux/usb/musb.h
@@ -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;
};