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 <[email protected]>
---
 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 2965986..f58b7da 100644
--- a/drivers/usb/otg/msm_otg.c
+++ b/drivers/usb/otg/msm_otg.c
@@ -389,14 +389,14 @@ skip_phy_resume:
        if (bus)
                set_bit(HCD_FLAG_HW_ACCESSIBLE, &(bus_to_hcd(bus))->flags);
 
+       atomic_set(&motg->in_lpm, 0);
+
        if (motg->async_int) {
                motg->async_int = 0;
                pm_runtime_put(otg->dev);
                enable_irq(motg->irq);
        }
 
-       atomic_set(&motg->in_lpm, 0);
-
        dev_info(otg->dev, "USB exited from low power mode\n");
 
        return 0;
-- 
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to