diff options
author | Bin Liu <b-liu@ti.com> | 2015-09-16 14:49:28 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-09-21 14:42:35 -0500 |
commit | b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb (patch) | |
tree | 049ec2e1a0d2c932e1d555cfcbd0c390cb09e98b /drivers | |
parent | cf261fd1a444e87894c2ed8f481606ead7916fab (diff) | |
download | op-kernel-dev-b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb.zip op-kernel-dev-b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb.tar.gz |
usb: musb: dsps: fix polling in device-only mode
Fix the regression caused by commit ad78c918602 ("usb: musb: dsps: just
start polling already") which causes polling the ID pin status even in
device-only mode.
Fixes: ad78c918602c ("usb: musb: dsps: just start polling already")
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/musb/musb_dsps.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index a0cfead..84512d1 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c @@ -225,8 +225,11 @@ static void dsps_musb_enable(struct musb *musb) dsps_writel(reg_base, wrp->epintr_set, epmask); dsps_writel(reg_base, wrp->coreintr_set, coremask); - /* start polling for ID change. */ - mod_timer(&glue->timer, jiffies + msecs_to_jiffies(wrp->poll_timeout)); + /* start polling for ID change in dual-role idle mode */ + if (musb->xceiv->otg->state == OTG_STATE_B_IDLE && + musb->port_mode == MUSB_PORT_MODE_DUAL_ROLE) + mod_timer(&glue->timer, jiffies + + msecs_to_jiffies(wrp->poll_timeout)); dsps_musb_try_idle(musb, 0); } |