summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2015-02-25 14:07:52 -0600
committerFelipe Balbi <balbi@ti.com>2015-03-10 15:33:25 -0500
commitd0fc0a20b5b7babe0fe1552204bd52505a4f93dd (patch)
tree29d7c736e1c71a3e2ae386113bfa6146bb97eed4 /drivers/usb/musb
parentd0cddae7926f39e8fd488f62496cfebf7a5e757d (diff)
downloadlinux-d0fc0a20b5b7babe0fe1552204bd52505a4f93dd.tar.gz
linux-d0fc0a20b5b7babe0fe1552204bd52505a4f93dd.tar.bz2
linux-d0fc0a20b5b7babe0fe1552204bd52505a4f93dd.zip
usb: musb: core: move babble recovery inside babble check
There was already a proper place where we were checking for babble interrupts, move babble recovery there. Tested-by: Bin Liu <b-liu@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb')
-rw-r--r--drivers/usb/musb/musb_core.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index cf7b10e5963e..9ea02d4cc2c2 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -899,6 +899,12 @@ b_host:
if (power & MUSB_POWER_HSMODE) {
ERR("Stopping host session -- babble\n");
musb_writeb(musb->mregs, MUSB_DEVCTL, 0);
+
+ if (is_host_active(musb)) {
+ musb_generic_disable(musb);
+ schedule_delayed_work(&musb->recover_work,
+ msecs_to_jiffies(100));
+ }
}
} else {
dev_dbg(musb->controller, "BUS RESET as %s\n",
@@ -938,13 +944,6 @@ b_host:
}
}
- /* handle babble condition */
- if (int_usb & MUSB_INTR_BABBLE && is_host_active(musb)) {
- musb_generic_disable(musb);
- schedule_delayed_work(&musb->recover_work,
- msecs_to_jiffies(100));
- }
-
#if 0
/* REVISIT ... this would be for multiplexing periodic endpoints, or
* supporting transfer phasing to prevent exceeding ISO bandwidth