summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior2014-10-13 12:16:13 +0200
committerFelipe Balbi2014-10-23 16:55:42 +0200
commit53185b3a441a6cc9bb3f57e924342d249138dcd6 (patch)
tree26b6c191afb5591db75eda8932a863ab4cc0c780 /drivers/usb/musb
parentusb: gadget: loopback: don't queue requests to bogus endpoints (diff)
downloadkernel-qcow2-linux-53185b3a441a6cc9bb3f57e924342d249138dcd6.tar.gz
kernel-qcow2-linux-53185b3a441a6cc9bb3f57e924342d249138dcd6.tar.xz
kernel-qcow2-linux-53185b3a441a6cc9bb3f57e924342d249138dcd6.zip
usb: musb: dsps: start OTG timer on resume again
Commit 468bcc2a2ca ("usb: musb: dsps: kill OTG timer on suspend") stopped the timer in suspend path but forgot the re-enable it in the resume path. This patch fixes the behaviour. Cc: <stable@vger.kernel.org> # v3.14+ Fixes 468bcc2a2ca "usb: musb: dsps: kill OTG timer on suspend" Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb')
-rw-r--r--drivers/usb/musb/musb_dsps.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 154bcf1b5dfa..b18f8d5e4f98 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -896,7 +896,9 @@ static int dsps_resume(struct device *dev)
dsps_writel(mbase, wrp->mode, glue->context.mode);
dsps_writel(mbase, wrp->tx_mode, glue->context.tx_mode);
dsps_writel(mbase, wrp->rx_mode, glue->context.rx_mode);
- setup_timer(&glue->timer, otg_timer, (unsigned long) musb);
+ if (musb->xceiv->state == OTG_STATE_B_IDLE &&
+ musb->port_mode == MUSB_PORT_MODE_DUAL_ROLE)
+ mod_timer(&glue->timer, jiffies + wrp->poll_seconds * HZ);
return 0;
}