diff options
author | Daniel Mack <zonque@gmail.com> | 2014-02-14 14:49:47 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-18 15:08:15 -0500 |
commit | f2dece4499eea534c7c92e49fbf6a9bb0510cbcf (patch) | |
tree | 55b6d0dbeeed98003369c4163bb3a5897b9ea217 | |
parent | 73926db33b277c4c371edbc9fe9093adc9b2803b (diff) |
usb: musb: correct use of schedule_delayed_work()
schedule_delayed_work() takes the delay in jiffies, not msecs. Fix the
caller sites in musb. This bug caused regressions with the cleanups
that went in for 3.14 (8ed1fb790ea: "usb: musb: finish suspend/reset
work independently from musb_hub_control()").
Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/usb/musb/musb_core.c | 3 | ||||
-rw-r--r-- | drivers/usb/musb/musb_virthub.c | 12 |
2 files changed, 9 insertions, 6 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 1a377cac4d4c..93eba53f6ce8 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c | |||
@@ -480,7 +480,8 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb, | |||
480 | musb->rh_timer = jiffies | 480 | musb->rh_timer = jiffies |
481 | + msecs_to_jiffies(20); | 481 | + msecs_to_jiffies(20); |
482 | schedule_delayed_work( | 482 | schedule_delayed_work( |
483 | &musb->finish_resume_work, 20); | 483 | &musb->finish_resume_work, |
484 | msecs_to_jiffies(20)); | ||
484 | 485 | ||
485 | musb->xceiv->state = OTG_STATE_A_HOST; | 486 | musb->xceiv->state = OTG_STATE_A_HOST; |
486 | musb->is_active = 1; | 487 | musb->is_active = 1; |
diff --git a/drivers/usb/musb/musb_virthub.c b/drivers/usb/musb/musb_virthub.c index 32f49e1efa9c..e2d2d8c9891b 100644 --- a/drivers/usb/musb/musb_virthub.c +++ b/drivers/usb/musb/musb_virthub.c | |||
@@ -135,7 +135,8 @@ void musb_port_suspend(struct musb *musb, bool do_suspend) | |||
135 | 135 | ||
136 | /* later, GetPortStatus will stop RESUME signaling */ | 136 | /* later, GetPortStatus will stop RESUME signaling */ |
137 | musb->port1_status |= MUSB_PORT_STAT_RESUME; | 137 | musb->port1_status |= MUSB_PORT_STAT_RESUME; |
138 | schedule_delayed_work(&musb->finish_resume_work, 20); | 138 | schedule_delayed_work(&musb->finish_resume_work, |
139 | msecs_to_jiffies(20)); | ||
139 | } | 140 | } |
140 | } | 141 | } |
141 | 142 | ||
@@ -171,8 +172,7 @@ void musb_port_reset(struct musb *musb, bool do_reset) | |||
171 | if (musb->rh_timer > 0 && remain > 0) { | 172 | if (musb->rh_timer > 0 && remain > 0) { |
172 | /* take into account the minimum delay after resume */ | 173 | /* take into account the minimum delay after resume */ |
173 | schedule_delayed_work( | 174 | schedule_delayed_work( |
174 | &musb->deassert_reset_work, | 175 | &musb->deassert_reset_work, remain); |
175 | jiffies_to_msecs(remain)); | ||
176 | return; | 176 | return; |
177 | } | 177 | } |
178 | 178 | ||
@@ -180,7 +180,8 @@ void musb_port_reset(struct musb *musb, bool do_reset) | |||
180 | power & ~MUSB_POWER_RESUME); | 180 | power & ~MUSB_POWER_RESUME); |
181 | 181 | ||
182 | /* Give the core 1 ms to clear MUSB_POWER_RESUME */ | 182 | /* Give the core 1 ms to clear MUSB_POWER_RESUME */ |
183 | schedule_delayed_work(&musb->deassert_reset_work, 1); | 183 | schedule_delayed_work(&musb->deassert_reset_work, |
184 | msecs_to_jiffies(1)); | ||
184 | return; | 185 | return; |
185 | } | 186 | } |
186 | 187 | ||
@@ -190,7 +191,8 @@ void musb_port_reset(struct musb *musb, bool do_reset) | |||
190 | 191 | ||
191 | musb->port1_status |= USB_PORT_STAT_RESET; | 192 | musb->port1_status |= USB_PORT_STAT_RESET; |
192 | musb->port1_status &= ~USB_PORT_STAT_ENABLE; | 193 | musb->port1_status &= ~USB_PORT_STAT_ENABLE; |
193 | schedule_delayed_work(&musb->deassert_reset_work, 50); | 194 | schedule_delayed_work(&musb->deassert_reset_work, |
195 | msecs_to_jiffies(50)); | ||
194 | } else { | 196 | } else { |
195 | dev_dbg(musb->controller, "root port reset stopped\n"); | 197 | dev_dbg(musb->controller, "root port reset stopped\n"); |
196 | musb_writeb(mbase, MUSB_POWER, | 198 | musb_writeb(mbase, MUSB_POWER, |