diff --git a/drivers/usb/phy/phy-msm-snps-hs.c b/drivers/usb/phy/phy-msm-snps-hs.c index ffc7350d6850..d2334ea523b5 100644 --- a/drivers/usb/phy/phy-msm-snps-hs.c +++ b/drivers/usb/phy/phy-msm-snps-hs.c @@ -476,14 +476,13 @@ static int msm_hsphy_set_suspend(struct usb_phy *uphy, int suspend) } if (suspend) { /* Bus suspend */ - if (phy->cable_connected || - (phy->phy.flags & PHY_HOST_MODE)) { - /* Enable auto-resume functionality only when - * there is some peripheral connected and real - * bus suspend happened + if (phy->cable_connected) { + /* Enable auto-resume functionality only during host + * mode bus suspend with some peripheral connected. */ - if ((phy->phy.flags & PHY_HSFS_MODE) || - (phy->phy.flags & PHY_LS_MODE)) { + if ((phy->phy.flags & PHY_HOST_MODE) && + ((phy->phy.flags & PHY_HSFS_MODE) || + (phy->phy.flags & PHY_LS_MODE))) { /* Enable auto-resume functionality by pulsing * signal */