summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-07-11 07:09:23 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-07-11 07:09:22 -0700
commit324c1ad8e85bad922d2897300fea91dcd5547c07 (patch)
treef19310e8dfe53e783a38289d03fcef455c2b34d1 /drivers/usb
parent52d99c3422b8ca7e3d32be85023355b4b7ccb99b (diff)
parent07cc3a041ec1ce9c1044c782f4d2c73a6e435696 (diff)
Merge "usb: dwc3-msm: Enable PHY IRQ wakeup only for non-auto targets"
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/dwc3/dwc3-msm.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c
index f94d0ba2f966..4f8b0fb6d670 100644
--- a/drivers/usb/dwc3/dwc3-msm.c
+++ b/drivers/usb/dwc3/dwc3-msm.c
@@ -2162,10 +2162,12 @@ static int dwc3_msm_suspend(struct dwc3_msm *mdwc, bool hibernation)
* case of host bus suspend and device bus suspend.
*/
if (mdwc->vbus_active || mdwc->in_host_mode) {
- enable_irq_wake(mdwc->hs_phy_irq);
+ if (!mdwc->no_wakeup_src_in_hostmode)
+ enable_irq_wake(mdwc->hs_phy_irq);
enable_irq(mdwc->hs_phy_irq);
if (mdwc->ss_phy_irq) {
- enable_irq_wake(mdwc->ss_phy_irq);
+ if (!mdwc->no_wakeup_src_in_hostmode)
+ enable_irq_wake(mdwc->ss_phy_irq);
enable_irq(mdwc->ss_phy_irq);
}
mdwc->lpm_flags |= MDWC3_ASYNC_IRQ_WAKE_CAPABILITY;
@@ -2287,10 +2289,12 @@ static int dwc3_msm_resume(struct dwc3_msm *mdwc)
/* Disable wakeup capable for HS_PHY IRQ & SS_PHY_IRQ if enabled */
if (mdwc->lpm_flags & MDWC3_ASYNC_IRQ_WAKE_CAPABILITY) {
- disable_irq_wake(mdwc->hs_phy_irq);
+ if (!mdwc->no_wakeup_src_in_hostmode)
+ disable_irq_wake(mdwc->hs_phy_irq);
disable_irq_nosync(mdwc->hs_phy_irq);
if (mdwc->ss_phy_irq) {
- disable_irq_wake(mdwc->ss_phy_irq);
+ if (!mdwc->no_wakeup_src_in_hostmode)
+ disable_irq_wake(mdwc->ss_phy_irq);
disable_irq_nosync(mdwc->ss_phy_irq);
}
mdwc->lpm_flags &= ~MDWC3_ASYNC_IRQ_WAKE_CAPABILITY;