Commit 4062a4ea authored by Felipe Balbi's avatar Felipe Balbi Committed by Sasha Levin

usb: host: ehci: use new USB_RESUME_TIMEOUT

[ Upstream commit ea16328f ]

Make sure we're using the new macro, so our
resume signaling will always pass certification.

Cc: <stable@vger.kernel.org> # v3.10+
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent 9f322045
...@@ -787,12 +787,12 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) ...@@ -787,12 +787,12 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
ehci->reset_done[i] == 0)) ehci->reset_done[i] == 0))
continue; continue;
/* start 20 msec resume signaling from this port, /* start USB_RESUME_TIMEOUT msec resume signaling from
* and make hub_wq collect PORT_STAT_C_SUSPEND to * this port, and make hub_wq collect
* stop that signaling. Use 5 ms extra for safety, * PORT_STAT_C_SUSPEND to stop that signaling.
* like usb_port_resume() does.
*/ */
ehci->reset_done[i] = jiffies + msecs_to_jiffies(25); ehci->reset_done[i] = jiffies +
msecs_to_jiffies(USB_RESUME_TIMEOUT);
set_bit(i, &ehci->resuming_ports); set_bit(i, &ehci->resuming_ports);
ehci_dbg (ehci, "port %d remote wakeup\n", i + 1); ehci_dbg (ehci, "port %d remote wakeup\n", i + 1);
usb_hcd_start_port_resume(&hcd->self, i); usb_hcd_start_port_resume(&hcd->self, i);
......
...@@ -473,10 +473,13 @@ static int ehci_bus_resume (struct usb_hcd *hcd) ...@@ -473,10 +473,13 @@ static int ehci_bus_resume (struct usb_hcd *hcd)
ehci_writel(ehci, temp, &ehci->regs->port_status [i]); ehci_writel(ehci, temp, &ehci->regs->port_status [i]);
} }
/* msleep for 20ms only if code is trying to resume port */ /*
* msleep for USB_RESUME_TIMEOUT ms only if code is trying to resume
* port
*/
if (resume_needed) { if (resume_needed) {
spin_unlock_irq(&ehci->lock); spin_unlock_irq(&ehci->lock);
msleep(20); msleep(USB_RESUME_TIMEOUT);
spin_lock_irq(&ehci->lock); spin_lock_irq(&ehci->lock);
if (ehci->shutdown) if (ehci->shutdown)
goto shutdown; goto shutdown;
...@@ -944,7 +947,7 @@ int ehci_hub_control( ...@@ -944,7 +947,7 @@ int ehci_hub_control(
temp &= ~PORT_WAKE_BITS; temp &= ~PORT_WAKE_BITS;
ehci_writel(ehci, temp | PORT_RESUME, status_reg); ehci_writel(ehci, temp | PORT_RESUME, status_reg);
ehci->reset_done[wIndex] = jiffies ehci->reset_done[wIndex] = jiffies
+ msecs_to_jiffies(20); + msecs_to_jiffies(USB_RESUME_TIMEOUT);
set_bit(wIndex, &ehci->resuming_ports); set_bit(wIndex, &ehci->resuming_ports);
usb_hcd_start_port_resume(&hcd->self, wIndex); usb_hcd_start_port_resume(&hcd->self, wIndex);
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment