* [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible
@ 2013-07-09 10:58 Roger Quadros
2013-07-09 12:01 ` Felipe Balbi
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Roger Quadros @ 2013-07-09 10:58 UTC (permalink / raw)
To: stern, gregkh; +Cc: linux-usb, linux-kernel, Roger Quadros
Most HCD drivers are doing the same thing in their ".shutdown" callback
so it makes sense to use the generic usb_hcd_platform_shutdown()
handler there.
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
drivers/usb/host/ehci-grlib.c | 11 +----------
drivers/usb/host/ehci-mxc.c | 10 +---------
drivers/usb/host/ehci-omap.c | 10 +---------
drivers/usb/host/ehci-ppc-of.c | 11 +----------
drivers/usb/host/ehci-s5p.c | 10 +---------
drivers/usb/host/ehci-tegra.c | 10 +---------
drivers/usb/host/ehci-xilinx-of.c | 17 +----------------
drivers/usb/host/ohci-omap3.c | 10 +---------
8 files changed, 8 insertions(+), 81 deletions(-)
diff --git a/drivers/usb/host/ehci-grlib.c b/drivers/usb/host/ehci-grlib.c
index a77bd8d..83ab51a 100644
--- a/drivers/usb/host/ehci-grlib.c
+++ b/drivers/usb/host/ehci-grlib.c
@@ -167,15 +167,6 @@ static int ehci_hcd_grlib_remove(struct platform_device *op)
}
-static void ehci_hcd_grlib_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ehci_hcd_grlib_of_match[] = {
{
.name = "GAISLER_EHCI",
@@ -191,7 +182,7 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_grlib_of_match);
static struct platform_driver ehci_grlib_driver = {
.probe = ehci_hcd_grlib_probe,
.remove = ehci_hcd_grlib_remove,
- .shutdown = ehci_hcd_grlib_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "grlib-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ehci-mxc.c b/drivers/usb/host/ehci-mxc.c
index e4c34ac..030b539 100644
--- a/drivers/usb/host/ehci-mxc.c
+++ b/drivers/usb/host/ehci-mxc.c
@@ -197,20 +197,12 @@ static int ehci_mxc_drv_remove(struct platform_device *pdev)
return 0;
}
-static void ehci_mxc_drv_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = platform_get_drvdata(pdev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
MODULE_ALIAS("platform:mxc-ehci");
static struct platform_driver ehci_mxc_driver = {
.probe = ehci_mxc_drv_probe,
.remove = ehci_mxc_drv_remove,
- .shutdown = ehci_mxc_drv_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "mxc-ehci",
},
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 9bd7dfe..4384d07 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -278,14 +278,6 @@ static int ehci_hcd_omap_remove(struct platform_device *pdev)
return 0;
}
-static void ehci_hcd_omap_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = dev_get_drvdata(&pdev->dev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
static const struct of_device_id omap_ehci_dt_ids[] = {
{ .compatible = "ti,ehci-omap" },
{ }
@@ -296,7 +288,7 @@ MODULE_DEVICE_TABLE(of, omap_ehci_dt_ids);
static struct platform_driver ehci_hcd_omap_driver = {
.probe = ehci_hcd_omap_probe,
.remove = ehci_hcd_omap_remove,
- .shutdown = ehci_hcd_omap_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
/*.suspend = ehci_hcd_omap_suspend, */
/*.resume = ehci_hcd_omap_resume, */
.driver = {
diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c
index 86da09c..932293f 100644
--- a/drivers/usb/host/ehci-ppc-of.c
+++ b/drivers/usb/host/ehci-ppc-of.c
@@ -215,15 +215,6 @@ static int ehci_hcd_ppc_of_remove(struct platform_device *op)
}
-static void ehci_hcd_ppc_of_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ehci_hcd_ppc_of_match[] = {
{
.compatible = "usb-ehci",
@@ -236,7 +227,7 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match);
static struct platform_driver ehci_hcd_ppc_of_driver = {
.probe = ehci_hcd_ppc_of_probe,
.remove = ehci_hcd_ppc_of_remove,
- .shutdown = ehci_hcd_ppc_of_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "ppc-of-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ehci-s5p.c b/drivers/usb/host/ehci-s5p.c
index 7cc26e6..aba645b 100644
--- a/drivers/usb/host/ehci-s5p.c
+++ b/drivers/usb/host/ehci-s5p.c
@@ -220,14 +220,6 @@ static int s5p_ehci_remove(struct platform_device *pdev)
return 0;
}
-static void s5p_ehci_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = platform_get_drvdata(pdev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
#ifdef CONFIG_PM
static int s5p_ehci_suspend(struct device *dev)
{
@@ -297,7 +289,7 @@ MODULE_DEVICE_TABLE(of, exynos_ehci_match);
static struct platform_driver s5p_ehci_driver = {
.probe = s5p_ehci_probe,
.remove = s5p_ehci_remove,
- .shutdown = s5p_ehci_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "s5p-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index 6ee7ef7..c8ba888 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -517,14 +517,6 @@ static int tegra_ehci_remove(struct platform_device *pdev)
return 0;
}
-static void tegra_ehci_hcd_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = platform_get_drvdata(pdev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
static struct of_device_id tegra_ehci_of_match[] = {
{ .compatible = "nvidia,tegra20-ehci", },
{ },
@@ -533,7 +525,7 @@ static struct of_device_id tegra_ehci_of_match[] = {
static struct platform_driver tegra_ehci_driver = {
.probe = tegra_ehci_probe,
.remove = tegra_ehci_remove,
- .shutdown = tegra_ehci_hcd_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = DRV_NAME,
.of_match_table = tegra_ehci_of_match,
diff --git a/drivers/usb/host/ehci-xilinx-of.c b/drivers/usb/host/ehci-xilinx-of.c
index 35c7f90..eba962e 100644
--- a/drivers/usb/host/ehci-xilinx-of.c
+++ b/drivers/usb/host/ehci-xilinx-of.c
@@ -220,21 +220,6 @@ static int ehci_hcd_xilinx_of_remove(struct platform_device *op)
return 0;
}
-/**
- * ehci_hcd_xilinx_of_shutdown - shutdown the hcd
- * @op: pointer to platform_device structure that is to be removed
- *
- * Properly shutdown the hcd, call driver's shutdown routine.
- */
-static void ehci_hcd_xilinx_of_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ehci_hcd_xilinx_of_match[] = {
{.compatible = "xlnx,xps-usb-host-1.00.a",},
{},
@@ -244,7 +229,7 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match);
static struct platform_driver ehci_hcd_xilinx_of_driver = {
.probe = ehci_hcd_xilinx_of_probe,
.remove = ehci_hcd_xilinx_of_remove,
- .shutdown = ehci_hcd_xilinx_of_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "xilinx-of-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ohci-omap3.c b/drivers/usb/host/ohci-omap3.c
index 8f71357..a09af26 100644
--- a/drivers/usb/host/ohci-omap3.c
+++ b/drivers/usb/host/ohci-omap3.c
@@ -231,14 +231,6 @@ static int ohci_hcd_omap3_remove(struct platform_device *pdev)
return 0;
}
-static void ohci_hcd_omap3_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = dev_get_drvdata(&pdev->dev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
static const struct of_device_id omap_ohci_dt_ids[] = {
{ .compatible = "ti,ohci-omap3" },
{ }
@@ -249,7 +241,7 @@ MODULE_DEVICE_TABLE(of, omap_ohci_dt_ids);
static struct platform_driver ohci_hcd_omap3_driver = {
.probe = ohci_hcd_omap3_probe,
.remove = ohci_hcd_omap3_remove,
- .shutdown = ohci_hcd_omap3_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "ohci-omap3",
.of_match_table = omap_ohci_dt_ids,
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible
2013-07-09 10:58 [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible Roger Quadros
@ 2013-07-09 12:01 ` Felipe Balbi
2013-07-09 14:16 ` Alan Stern
2013-07-22 12:04 ` [PATCH v2] " Roger Quadros
2 siblings, 0 replies; 7+ messages in thread
From: Felipe Balbi @ 2013-07-09 12:01 UTC (permalink / raw)
To: Roger Quadros; +Cc: stern, gregkh, linux-usb, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 335 bytes --]
On Tue, Jul 09, 2013 at 01:58:49PM +0300, Roger Quadros wrote:
> Most HCD drivers are doing the same thing in their ".shutdown" callback
> so it makes sense to use the generic usb_hcd_platform_shutdown()
> handler there.
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
--
balbi
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible
2013-07-09 10:58 [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible Roger Quadros
2013-07-09 12:01 ` Felipe Balbi
@ 2013-07-09 14:16 ` Alan Stern
2013-07-10 8:08 ` Roger Quadros
2013-07-22 12:04 ` [PATCH v2] " Roger Quadros
2 siblings, 1 reply; 7+ messages in thread
From: Alan Stern @ 2013-07-09 14:16 UTC (permalink / raw)
To: Roger Quadros; +Cc: gregkh, linux-usb, linux-kernel
On Tue, 9 Jul 2013, Roger Quadros wrote:
> Most HCD drivers are doing the same thing in their ".shutdown" callback
> so it makes sense to use the generic usb_hcd_platform_shutdown()
> handler there.
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> ---
> drivers/usb/host/ehci-grlib.c | 11 +----------
> drivers/usb/host/ehci-mxc.c | 10 +---------
> drivers/usb/host/ehci-omap.c | 10 +---------
> drivers/usb/host/ehci-ppc-of.c | 11 +----------
> drivers/usb/host/ehci-s5p.c | 10 +---------
> drivers/usb/host/ehci-tegra.c | 10 +---------
> drivers/usb/host/ehci-xilinx-of.c | 17 +----------------
> drivers/usb/host/ohci-omap3.c | 10 +---------
> 8 files changed, 8 insertions(+), 81 deletions(-)
This all looks fine. But unless my kernel tree is out of date, you
missed ohci-ppc-of.c.
Alan Stern
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible
2013-07-09 14:16 ` Alan Stern
@ 2013-07-10 8:08 ` Roger Quadros
2013-07-10 14:57 ` Alan Stern
0 siblings, 1 reply; 7+ messages in thread
From: Roger Quadros @ 2013-07-10 8:08 UTC (permalink / raw)
To: Alan Stern; +Cc: gregkh, linux-usb, linux-kernel
On 07/09/2013 05:16 PM, Alan Stern wrote:
> On Tue, 9 Jul 2013, Roger Quadros wrote:
>
>> Most HCD drivers are doing the same thing in their ".shutdown" callback
>> so it makes sense to use the generic usb_hcd_platform_shutdown()
>> handler there.
>>
>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>> ---
>> drivers/usb/host/ehci-grlib.c | 11 +----------
>> drivers/usb/host/ehci-mxc.c | 10 +---------
>> drivers/usb/host/ehci-omap.c | 10 +---------
>> drivers/usb/host/ehci-ppc-of.c | 11 +----------
>> drivers/usb/host/ehci-s5p.c | 10 +---------
>> drivers/usb/host/ehci-tegra.c | 10 +---------
>> drivers/usb/host/ehci-xilinx-of.c | 17 +----------------
>> drivers/usb/host/ohci-omap3.c | 10 +---------
>> 8 files changed, 8 insertions(+), 81 deletions(-)
>
> This all looks fine. But unless my kernel tree is out of date, you
> missed ohci-ppc-of.c.
You are right. I missed it and will send a revision.
I've also noticed some drivers doing non-standard stuff.
e.g.
- ehci-ps3.c and ohci-pst set .shutdown as well as .remove to to ps3_ehci_remove
- ehci-tilegx.c and ohci-tilegx call .remove in the .shutdown path
- ehci-mv.c checks for (!hcd->rh_registered) in the shudown & remove patch.
Is this necessary?
cheers,
-roger
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible
2013-07-10 8:08 ` Roger Quadros
@ 2013-07-10 14:57 ` Alan Stern
0 siblings, 0 replies; 7+ messages in thread
From: Alan Stern @ 2013-07-10 14:57 UTC (permalink / raw)
To: Roger Quadros; +Cc: gregkh, linux-usb, linux-kernel
On Wed, 10 Jul 2013, Roger Quadros wrote:
> On 07/09/2013 05:16 PM, Alan Stern wrote:
> > On Tue, 9 Jul 2013, Roger Quadros wrote:
> >
> >> Most HCD drivers are doing the same thing in their ".shutdown" callback
> >> so it makes sense to use the generic usb_hcd_platform_shutdown()
> >> handler there.
> >>
> >> Signed-off-by: Roger Quadros <rogerq@ti.com>
> >> ---
> >> drivers/usb/host/ehci-grlib.c | 11 +----------
> >> drivers/usb/host/ehci-mxc.c | 10 +---------
> >> drivers/usb/host/ehci-omap.c | 10 +---------
> >> drivers/usb/host/ehci-ppc-of.c | 11 +----------
> >> drivers/usb/host/ehci-s5p.c | 10 +---------
> >> drivers/usb/host/ehci-tegra.c | 10 +---------
> >> drivers/usb/host/ehci-xilinx-of.c | 17 +----------------
> >> drivers/usb/host/ohci-omap3.c | 10 +---------
> >> 8 files changed, 8 insertions(+), 81 deletions(-)
> >
> > This all looks fine. But unless my kernel tree is out of date, you
> > missed ohci-ppc-of.c.
>
> You are right. I missed it and will send a revision.
>
> I've also noticed some drivers doing non-standard stuff.
> e.g.
> - ehci-ps3.c and ohci-pst set .shutdown as well as .remove to to ps3_ehci_remove
I don't know why they do that. There not be any good reason. You
could try asking the PS3 platform maintainer.
> - ehci-tilegx.c and ohci-tilegx call .remove in the .shutdown path
Again, I don't know why. The TILE architecture maintainer might know.
> - ehci-mv.c checks for (!hcd->rh_registered) in the shudown & remove patch.
> Is this necessary?
I suspect this is because the driver is trying to cope with switching
between host mode and device (peripheral) mode. This doesn't seem like
a good way to implement OTG, but until it gets changed we'll have to
live with the driver the way it is.
Alan Stern
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] USB: host: Use usb_hcd_platform_shutdown() wherever possible
2013-07-09 10:58 [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible Roger Quadros
2013-07-09 12:01 ` Felipe Balbi
2013-07-09 14:16 ` Alan Stern
@ 2013-07-22 12:04 ` Roger Quadros
2013-07-22 15:11 ` Alan Stern
2 siblings, 1 reply; 7+ messages in thread
From: Roger Quadros @ 2013-07-22 12:04 UTC (permalink / raw)
To: stern, gregkh; +Cc: balbi, linux-usb, linux-kernel, Roger Quadros
Most HCD drivers are doing the same thing in their ".shutdown" callback
so it makes sense to use the generic usb_hcd_platform_shutdown()
handler there.
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
drivers/usb/host/ehci-grlib.c | 11 +----------
drivers/usb/host/ehci-mxc.c | 10 +---------
drivers/usb/host/ehci-omap.c | 10 +---------
drivers/usb/host/ehci-ppc-of.c | 11 +----------
drivers/usb/host/ehci-s5p.c | 10 +---------
drivers/usb/host/ehci-xilinx-of.c | 17 +----------------
drivers/usb/host/ohci-omap3.c | 10 +---------
drivers/usb/host/ohci-ppc-of.c | 11 +----------
8 files changed, 8 insertions(+), 82 deletions(-)
diff --git a/drivers/usb/host/ehci-grlib.c b/drivers/usb/host/ehci-grlib.c
index a77bd8d..83ab51a 100644
--- a/drivers/usb/host/ehci-grlib.c
+++ b/drivers/usb/host/ehci-grlib.c
@@ -167,15 +167,6 @@ static int ehci_hcd_grlib_remove(struct platform_device *op)
}
-static void ehci_hcd_grlib_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ehci_hcd_grlib_of_match[] = {
{
.name = "GAISLER_EHCI",
@@ -191,7 +182,7 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_grlib_of_match);
static struct platform_driver ehci_grlib_driver = {
.probe = ehci_hcd_grlib_probe,
.remove = ehci_hcd_grlib_remove,
- .shutdown = ehci_hcd_grlib_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "grlib-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ehci-mxc.c b/drivers/usb/host/ehci-mxc.c
index e4c34ac..030b539 100644
--- a/drivers/usb/host/ehci-mxc.c
+++ b/drivers/usb/host/ehci-mxc.c
@@ -197,20 +197,12 @@ static int ehci_mxc_drv_remove(struct platform_device *pdev)
return 0;
}
-static void ehci_mxc_drv_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = platform_get_drvdata(pdev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
MODULE_ALIAS("platform:mxc-ehci");
static struct platform_driver ehci_mxc_driver = {
.probe = ehci_mxc_drv_probe,
.remove = ehci_mxc_drv_remove,
- .shutdown = ehci_mxc_drv_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "mxc-ehci",
},
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 9bd7dfe..4384d07 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -278,14 +278,6 @@ static int ehci_hcd_omap_remove(struct platform_device *pdev)
return 0;
}
-static void ehci_hcd_omap_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = dev_get_drvdata(&pdev->dev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
static const struct of_device_id omap_ehci_dt_ids[] = {
{ .compatible = "ti,ehci-omap" },
{ }
@@ -296,7 +288,7 @@ MODULE_DEVICE_TABLE(of, omap_ehci_dt_ids);
static struct platform_driver ehci_hcd_omap_driver = {
.probe = ehci_hcd_omap_probe,
.remove = ehci_hcd_omap_remove,
- .shutdown = ehci_hcd_omap_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
/*.suspend = ehci_hcd_omap_suspend, */
/*.resume = ehci_hcd_omap_resume, */
.driver = {
diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c
index 86da09c..932293f 100644
--- a/drivers/usb/host/ehci-ppc-of.c
+++ b/drivers/usb/host/ehci-ppc-of.c
@@ -215,15 +215,6 @@ static int ehci_hcd_ppc_of_remove(struct platform_device *op)
}
-static void ehci_hcd_ppc_of_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ehci_hcd_ppc_of_match[] = {
{
.compatible = "usb-ehci",
@@ -236,7 +227,7 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match);
static struct platform_driver ehci_hcd_ppc_of_driver = {
.probe = ehci_hcd_ppc_of_probe,
.remove = ehci_hcd_ppc_of_remove,
- .shutdown = ehci_hcd_ppc_of_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "ppc-of-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ehci-s5p.c b/drivers/usb/host/ehci-s5p.c
index 7cc26e6..aba645b 100644
--- a/drivers/usb/host/ehci-s5p.c
+++ b/drivers/usb/host/ehci-s5p.c
@@ -220,14 +220,6 @@ static int s5p_ehci_remove(struct platform_device *pdev)
return 0;
}
-static void s5p_ehci_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = platform_get_drvdata(pdev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
#ifdef CONFIG_PM
static int s5p_ehci_suspend(struct device *dev)
{
@@ -297,7 +289,7 @@ MODULE_DEVICE_TABLE(of, exynos_ehci_match);
static struct platform_driver s5p_ehci_driver = {
.probe = s5p_ehci_probe,
.remove = s5p_ehci_remove,
- .shutdown = s5p_ehci_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "s5p-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ehci-xilinx-of.c b/drivers/usb/host/ehci-xilinx-of.c
index 35c7f90..eba962e 100644
--- a/drivers/usb/host/ehci-xilinx-of.c
+++ b/drivers/usb/host/ehci-xilinx-of.c
@@ -220,21 +220,6 @@ static int ehci_hcd_xilinx_of_remove(struct platform_device *op)
return 0;
}
-/**
- * ehci_hcd_xilinx_of_shutdown - shutdown the hcd
- * @op: pointer to platform_device structure that is to be removed
- *
- * Properly shutdown the hcd, call driver's shutdown routine.
- */
-static void ehci_hcd_xilinx_of_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ehci_hcd_xilinx_of_match[] = {
{.compatible = "xlnx,xps-usb-host-1.00.a",},
{},
@@ -244,7 +229,7 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match);
static struct platform_driver ehci_hcd_xilinx_of_driver = {
.probe = ehci_hcd_xilinx_of_probe,
.remove = ehci_hcd_xilinx_of_remove,
- .shutdown = ehci_hcd_xilinx_of_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "xilinx-of-ehci",
.owner = THIS_MODULE,
diff --git a/drivers/usb/host/ohci-omap3.c b/drivers/usb/host/ohci-omap3.c
index 8f71357..a09af26 100644
--- a/drivers/usb/host/ohci-omap3.c
+++ b/drivers/usb/host/ohci-omap3.c
@@ -231,14 +231,6 @@ static int ohci_hcd_omap3_remove(struct platform_device *pdev)
return 0;
}
-static void ohci_hcd_omap3_shutdown(struct platform_device *pdev)
-{
- struct usb_hcd *hcd = dev_get_drvdata(&pdev->dev);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
static const struct of_device_id omap_ohci_dt_ids[] = {
{ .compatible = "ti,ohci-omap3" },
{ }
@@ -249,7 +241,7 @@ MODULE_DEVICE_TABLE(of, omap_ohci_dt_ids);
static struct platform_driver ohci_hcd_omap3_driver = {
.probe = ohci_hcd_omap3_probe,
.remove = ohci_hcd_omap3_remove,
- .shutdown = ohci_hcd_omap3_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "ohci-omap3",
.of_match_table = omap_ohci_dt_ids,
diff --git a/drivers/usb/host/ohci-ppc-of.c b/drivers/usb/host/ohci-ppc-of.c
index 8294e2f..75f5a1e 100644
--- a/drivers/usb/host/ohci-ppc-of.c
+++ b/drivers/usb/host/ohci-ppc-of.c
@@ -200,15 +200,6 @@ static int ohci_hcd_ppc_of_remove(struct platform_device *op)
return 0;
}
-static void ohci_hcd_ppc_of_shutdown(struct platform_device *op)
-{
- struct usb_hcd *hcd = platform_get_drvdata(op);
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-
static const struct of_device_id ohci_hcd_ppc_of_match[] = {
#ifdef CONFIG_USB_OHCI_HCD_PPC_OF_BE
{
@@ -243,7 +234,7 @@ MODULE_DEVICE_TABLE(of, ohci_hcd_ppc_of_match);
static struct platform_driver ohci_hcd_ppc_of_driver = {
.probe = ohci_hcd_ppc_of_probe,
.remove = ohci_hcd_ppc_of_remove,
- .shutdown = ohci_hcd_ppc_of_shutdown,
+ .shutdown = usb_hcd_platform_shutdown,
.driver = {
.name = "ppc-of-ohci",
.owner = THIS_MODULE,
--
1.7.4.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] USB: host: Use usb_hcd_platform_shutdown() wherever possible
2013-07-22 12:04 ` [PATCH v2] " Roger Quadros
@ 2013-07-22 15:11 ` Alan Stern
0 siblings, 0 replies; 7+ messages in thread
From: Alan Stern @ 2013-07-22 15:11 UTC (permalink / raw)
To: Roger Quadros; +Cc: gregkh, Felipe Balbi, USB list, Kernel development list
On Mon, 22 Jul 2013, Roger Quadros wrote:
> Most HCD drivers are doing the same thing in their ".shutdown" callback
> so it makes sense to use the generic usb_hcd_platform_shutdown()
> handler there.
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> ---
> drivers/usb/host/ehci-grlib.c | 11 +----------
> drivers/usb/host/ehci-mxc.c | 10 +---------
> drivers/usb/host/ehci-omap.c | 10 +---------
> drivers/usb/host/ehci-ppc-of.c | 11 +----------
> drivers/usb/host/ehci-s5p.c | 10 +---------
> drivers/usb/host/ehci-xilinx-of.c | 17 +----------------
> drivers/usb/host/ohci-omap3.c | 10 +---------
> drivers/usb/host/ohci-ppc-of.c | 11 +----------
> 8 files changed, 8 insertions(+), 82 deletions(-)
Acked-by: Alan Stern <stern@rowland.harvard.edu>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-22 15:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-09 10:58 [PATCH] USB: host: Use usb_hcd_platform_shutdown() wherever possible Roger Quadros
2013-07-09 12:01 ` Felipe Balbi
2013-07-09 14:16 ` Alan Stern
2013-07-10 8:08 ` Roger Quadros
2013-07-10 14:57 ` Alan Stern
2013-07-22 12:04 ` [PATCH v2] " Roger Quadros
2013-07-22 15:11 ` Alan Stern
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.