diff options
author | Pavankumar Kondeti <pkondeti@codeaurora.org> | 2011-05-02 02:26:33 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-05-03 13:25:26 -0400 |
commit | 2ce2c3ac8852cfc8f74f4b7b9a2c4cdff007f96a (patch) | |
tree | c86963aeee28990c155c76e8e399787aae0bbcb7 /drivers/usb/otg | |
parent | ac1aa6a21747d02a93b1becb4ab19f1fc9de2beb (diff) |
USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume
The current code is clearing in_lpm flag after enabling the IRQ.
If IRQ comes immediately before in_lpm flag is set, it thinks that
hardware is in low power mode and disables the IRQ. Fix this by
clearing in_lpm flag before enabling the IRQ.
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/otg')
-rw-r--r-- | drivers/usb/otg/msm_otg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 296598628b85..f58b7dab75aa 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c | |||
@@ -389,14 +389,14 @@ skip_phy_resume: | |||
389 | if (bus) | 389 | if (bus) |
390 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &(bus_to_hcd(bus))->flags); | 390 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &(bus_to_hcd(bus))->flags); |
391 | 391 | ||
392 | atomic_set(&motg->in_lpm, 0); | ||
393 | |||
392 | if (motg->async_int) { | 394 | if (motg->async_int) { |
393 | motg->async_int = 0; | 395 | motg->async_int = 0; |
394 | pm_runtime_put(otg->dev); | 396 | pm_runtime_put(otg->dev); |
395 | enable_irq(motg->irq); | 397 | enable_irq(motg->irq); |
396 | } | 398 | } |
397 | 399 | ||
398 | atomic_set(&motg->in_lpm, 0); | ||
399 | |||
400 | dev_info(otg->dev, "USB exited from low power mode\n"); | 400 | dev_info(otg->dev, "USB exited from low power mode\n"); |
401 | 401 | ||
402 | return 0; | 402 | return 0; |