aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-omap.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/ehci-omap.c')
-rw-r--r--drivers/usb/host/ehci-omap.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index e39b0297bad1..568cefbd63a2 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -41,6 +41,7 @@
41#include <linux/usb/ulpi.h> 41#include <linux/usb/ulpi.h>
42#include <plat/usb.h> 42#include <plat/usb.h>
43#include <linux/regulator/consumer.h> 43#include <linux/regulator/consumer.h>
44#include <linux/pm_runtime.h>
44 45
45/* EHCI Register Set */ 46/* EHCI Register Set */
46#define EHCI_INSNREG04 (0xA0) 47#define EHCI_INSNREG04 (0xA0)
@@ -190,11 +191,8 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
190 } 191 }
191 } 192 }
192 193
193 ret = omap_usbhs_enable(dev); 194 pm_runtime_enable(dev);
194 if (ret) { 195 pm_runtime_get_sync(dev);
195 dev_err(dev, "failed to start usbhs with err %d\n", ret);
196 goto err_enable;
197 }
198 196
199 /* 197 /*
200 * An undocumented "feature" in the OMAP3 EHCI controller, 198 * An undocumented "feature" in the OMAP3 EHCI controller,
@@ -240,11 +238,8 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
240 return 0; 238 return 0;
241 239
242err_add_hcd: 240err_add_hcd:
243 omap_usbhs_disable(dev);
244
245err_enable:
246 disable_put_regulator(pdata); 241 disable_put_regulator(pdata);
247 usb_put_hcd(hcd); 242 pm_runtime_put_sync(dev);
248 243
249err_io: 244err_io:
250 iounmap(regs); 245 iounmap(regs);
@@ -266,10 +261,12 @@ static int ehci_hcd_omap_remove(struct platform_device *pdev)
266 struct usb_hcd *hcd = dev_get_drvdata(dev); 261 struct usb_hcd *hcd = dev_get_drvdata(dev);
267 262
268 usb_remove_hcd(hcd); 263 usb_remove_hcd(hcd);
269 omap_usbhs_disable(dev);
270 disable_put_regulator(dev->platform_data); 264 disable_put_regulator(dev->platform_data);
271 iounmap(hcd->regs); 265 iounmap(hcd->regs);
272 usb_put_hcd(hcd); 266 usb_put_hcd(hcd);
267 pm_runtime_put_sync(dev);
268 pm_runtime_disable(dev);
269
273 return 0; 270 return 0;
274} 271}
275 272