USB: musb: only turn off vbus in OTG hosts

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Thursday, March 26, 2009 - 12:30 pm

Gitweb:     http://git.kernel.org/linus/743821717c611913a5a3f95010b141f0b4cb5463
Commit:     743821717c611913a5a3f95010b141f0b4cb5463
Parent:     322337168f22e8245aae7f38e84c5711cd4c1265
Author:     Ajay Kumar Gupta <ajay.gupta@ti.com>
AuthorDate: Tue Feb 24 15:29:04 2009 -0800
Committer:  Greg Kroah-Hartman <gregkh@suse.de>
CommitDate: Tue Mar 24 16:20:36 2009 -0700

    USB: musb: only turn off vbus in OTG hosts
    
    Except on DaVinci, VBUS is now switched off as part of idling the
    USB link (after a_wait_bcon) whenever a device is disconnected
    from host.  This is correct for OTG hosts, where either SRP or
    an ID interrupt could turn VBUS on again.
    
    However, for non-OTG hosts there's no way to turn VBUS on again,
    so the host becomes unusable.  And the procfs entry which once
    allowed a manual workaround for this is now gone.
    
    This patch adds an is_otg_enabled() check before scheduling the
    switch-off timer in disconnect path, supporting a "classic host"
    mode where SRP is unavailable.
    
    [ dbrownell@users.sourceforge.net: tweak patch description ]
    
    Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
    Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/usb/musb/musb_core.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index af77e46..338cd16 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -769,7 +769,7 @@ static irqreturn_t musb_stage2_irq(struct musb *musb, u8 int_usb,
 		case OTG_STATE_A_SUSPEND:
 			usb_hcd_resume_root_hub(musb_to_hcd(musb));
 			musb_root_disconnect(musb);
-			if (musb->a_wait_bcon != 0)
+			if (musb->a_wait_bcon != 0 && is_otg_enabled(musb))
 				musb_platform_try_idle(musb, jiffies
 					+ msecs_to_jiffies(musb->a_wait_bcon));
 			break;
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
USB: musb: only turn off vbus in OTG hosts, Linux Kernel Mailing ..., (Thu Mar 26, 12:30 pm)