summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0001-USB-musb-only-turn-off-vbus-in-OTG-hosts.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0001-USB-musb-only-turn-off-vbus-in-OTG-hosts.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0001-USB-musb-only-turn-off-vbus-in-OTG-hosts.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0001-USB-musb-only-turn-off-vbus-in-OTG-hosts.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0001-USB-musb-only-turn-off-vbus-in-OTG-hosts.patch
new file mode 100644
index 0000000000..a7898d1440
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0001-USB-musb-only-turn-off-vbus-in-OTG-hosts.patch
@@ -0,0 +1,43 @@
1From a9199e8ab6d6fb105aa251d6bf2192e7eafac8ee Mon Sep 17 00:00:00 2001
2From: Ajay Kumar Gupta <ajay.gupta-l0cyMroinI0@public.gmane.org>
3Date: Tue, 24 Mar 2009 17:22:53 -0700
4Subject: [PATCH] USB: musb: only turn off vbus in OTG hosts
5
6Except on DaVinci, VBUS is now switched off as part of idling the
7USB link (after a_wait_bcon) whenever a device is disconnected
8from host. This is correct for OTG hosts, where either SRP or
9an ID interrupt could turn VBUS on again.
10
11However, for non-OTG hosts there's no way to turn VBUS on again,
12so the host becomes unusable. And the procfs entry which once
13allowed a manual workaround for this is now gone.
14
15This patch adds an is_otg_enabled() check before scheduling the
16switch-off timer in disconnect path, supporting a "classic host"
17mode where SRP is unavailable.
18
19[ dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org: tweak patch description ]
20
21Signed-off-by: Ajay Kumar Gupta <ajay.gupta-l0cyMroinI0@public.gmane.org>
22Signed-off-by: David Brownell <dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
23Signed-off-by: Greg Kroah-Hartman <gregkh-l3A5Bk7waGM@public.gmane.org>
24---
25 drivers/usb/musb/musb_core.c | 2 +-
26 1 files changed, 1 insertions(+), 1 deletions(-)
27
28diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
29index af77e46..338cd16 100644
30--- a/drivers/usb/musb/musb_core.c
31+++ b/drivers/usb/musb/musb_core.c
32@@ -769,7 +769,7 @@ static irqreturn_t musb_stage2_irq(struct musb *musb, u8 int_usb,
33 case OTG_STATE_A_SUSPEND:
34 usb_hcd_resume_root_hub(musb_to_hcd(musb));
35 musb_root_disconnect(musb);
36- if (musb->a_wait_bcon != 0)
37+ if (musb->a_wait_bcon != 0 && is_otg_enabled(musb))
38 musb_platform_try_idle(musb, jiffies
39 + msecs_to_jiffies(musb->a_wait_bcon));
40 break;
41--
421.6.0.4
43