summaryrefslogtreecommitdiff
path: root/drivers/usb/host/ehci-sh.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-11-26 16:43:38 +0900
committerPaul Mundt <lethal@linux-sh.org>2010-11-26 16:43:38 +0900
commitc1e0774d74481fdc3082d2096a99a3aa411a71f1 (patch)
tree14bffea2222c5d01bd77c7dc7dd334e900a96bd4 /drivers/usb/host/ehci-sh.c
parent8b32a92b600e2728c5c438a748a4dc3132c98ef3 (diff)
usb: ehci-sh: Fix up fault in shutdown path.
We can't use the generic usb_hcd_platform_shutdown helper on account of the fact we don't stash the hcd pointer in the driver data, so we provide our own shutdown handler. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/usb/host/ehci-sh.c')
-rw-r--r--drivers/usb/host/ehci-sh.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-sh.c b/drivers/usb/host/ehci-sh.c
index 430b72e637fd..9d3a29f8ced5 100644
--- a/drivers/usb/host/ehci-sh.c
+++ b/drivers/usb/host/ehci-sh.c
@@ -219,10 +219,19 @@ static int __exit ehci_hcd_sh_remove(struct platform_device *pdev)
return 0;
}
+static void ehci_hcd_sh_shutdown(struct platform_device *pdev)
+{
+ struct ehci_sh_priv *priv = platform_get_drvdata(pdev);
+ struct usb_hcd *hcd = priv->hcd;
+
+ if (hcd->driver->shutdown)
+ hcd->driver->shutdown(hcd);
+}
+
static struct platform_driver ehci_hcd_sh_driver = {
.probe = ehci_hcd_sh_probe,
.remove = __exit_p(ehci_hcd_sh_remove),
- .shutdown = usb_hcd_platform_shutdown,
+ .shutdown = ehci_hcd_sh_shutdown,
.driver = {
.name = "sh_ehci",
.owner = THIS_MODULE,