| From 53185b3a441a6cc9bb3f57e924342d249138dcd6 Mon Sep 17 00:00:00 2001 |
| From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Date: Mon, 13 Oct 2014 12:16:13 +0200 |
| Subject: usb: musb: dsps: start OTG timer on resume again |
| |
| From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| |
| commit 53185b3a441a6cc9bb3f57e924342d249138dcd6 upstream. |
| |
| 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. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/musb/musb_dsps.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/musb/musb_dsps.c |
| +++ b/drivers/usb/musb/musb_dsps.c |
| @@ -896,7 +896,9 @@ static int dsps_resume(struct device *de |
| 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; |
| } |