diff options
-rw-r--r-- | drivers/usb/host/ohci-exynos.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c index 3e4bc74f76ab..f5f372e02a99 100644 --- a/drivers/usb/host/ohci-exynos.c +++ b/drivers/usb/host/ohci-exynos.c | |||
@@ -203,24 +203,15 @@ static int exynos_ohci_suspend(struct device *dev) | |||
203 | struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd); | 203 | struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd); |
204 | struct ohci_hcd *ohci = hcd_to_ohci(hcd); | 204 | struct ohci_hcd *ohci = hcd_to_ohci(hcd); |
205 | struct platform_device *pdev = to_platform_device(dev); | 205 | struct platform_device *pdev = to_platform_device(dev); |
206 | bool do_wakeup = device_may_wakeup(dev); | ||
206 | unsigned long flags; | 207 | unsigned long flags; |
207 | int rc = 0; | 208 | int rc = 0; |
208 | 209 | ||
209 | /* | 210 | rc = ohci_suspend(hcd, do_wakeup); |
210 | * Root hub was already suspended. Disable irq emission and | 211 | if (rc) |
211 | * mark HW unaccessible, bail out if RH has been resumed. Use | 212 | return rc; |
212 | * the spinlock to properly synchronize with possible pending | ||
213 | * RH suspend or resume activity. | ||
214 | */ | ||
215 | spin_lock_irqsave(&ohci->lock, flags); | ||
216 | if (ohci->rh_state != OHCI_RH_SUSPENDED && | ||
217 | ohci->rh_state != OHCI_RH_HALTED) { | ||
218 | rc = -EINVAL; | ||
219 | goto fail; | ||
220 | } | ||
221 | |||
222 | clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); | ||
223 | 213 | ||
214 | spin_lock_irqsave(&ohci->lock, flags); | ||
224 | if (exynos_ohci->otg) | 215 | if (exynos_ohci->otg) |
225 | exynos_ohci->otg->set_host(exynos_ohci->otg, &hcd->self); | 216 | exynos_ohci->otg->set_host(exynos_ohci->otg, &hcd->self); |
226 | 217 | ||
@@ -228,7 +219,6 @@ static int exynos_ohci_suspend(struct device *dev) | |||
228 | 219 | ||
229 | clk_disable_unprepare(exynos_ohci->clk); | 220 | clk_disable_unprepare(exynos_ohci->clk); |
230 | 221 | ||
231 | fail: | ||
232 | spin_unlock_irqrestore(&ohci->lock, flags); | 222 | spin_unlock_irqrestore(&ohci->lock, flags); |
233 | 223 | ||
234 | return rc; | 224 | return rc; |