aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/isp116x-hcd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c
index 69e7433d9ce8..1183988fdf54 100644
--- a/drivers/usb/host/isp116x-hcd.c
+++ b/drivers/usb/host/isp116x-hcd.c
@@ -1501,6 +1501,12 @@ static int isp116x_reset(struct usb_hcd *hcd)
1501 } 1501 }
1502 if (!clkrdy) { 1502 if (!clkrdy) {
1503 ERR("Clock not ready after 20ms\n"); 1503 ERR("Clock not ready after 20ms\n");
1504 /* After sw_reset the clock won't report to be ready, if
1505 H_WAKEUP pin is high. */
1506 if (!isp116x->board || !isp116x->board->reset)
1507 ERR("The driver does not support hardware wakeup.\n");
1508 ERR("Please make sure that the H_WAKEUP pin "
1509 "is pulled low!\n");
1504 ret = -ENODEV; 1510 ret = -ENODEV;
1505 } 1511 }
1506 return ret; 1512 return ret;
@@ -1678,10 +1684,13 @@ static struct hc_driver isp116x_hc_driver = {
1678static int __init_or_module isp116x_remove(struct device *dev) 1684static int __init_or_module isp116x_remove(struct device *dev)
1679{ 1685{
1680 struct usb_hcd *hcd = dev_get_drvdata(dev); 1686 struct usb_hcd *hcd = dev_get_drvdata(dev);
1681 struct isp116x *isp116x = hcd_to_isp116x(hcd); 1687 struct isp116x *isp116x;
1682 struct platform_device *pdev; 1688 struct platform_device *pdev;
1683 struct resource *res; 1689 struct resource *res;
1684 1690
1691 if(!hcd)
1692 return 0;
1693 isp116x = hcd_to_isp116x(hcd);
1685 pdev = container_of(dev, struct platform_device, dev); 1694 pdev = container_of(dev, struct platform_device, dev);
1686 remove_debug_file(isp116x); 1695 remove_debug_file(isp116x);
1687 usb_remove_hcd(hcd); 1696 usb_remove_hcd(hcd);