diff options
author | Bin Liu <b-liu@ti.com> | 2015-09-16 22:49:28 +0300 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-09-21 22:42:35 +0300 |
commit | b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb (patch) | |
tree | 049ec2e1a0d2c932e1d555cfcbd0c390cb09e98b /drivers/usb/musb | |
parent | cf261fd1a444e87894c2ed8f481606ead7916fab (diff) | |
download | linux-b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb.tar.xz |
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/usb/musb')
-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 a0cfead6150f..84512d1d5eee 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); } |