Re: [PATCH] usb: xhci: Increase timeout for HC halt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/11/21 9:19 AM, Mathias Nyman wrote:
On 11.5.2021 3.29, Maximilian Luz wrote:
On some devices (specifically the SC8180x based Surface Pro X with
QCOM04A6) HC halt / xhci_halt() times out during boot. Manually binding
the xhci-hcd driver at some point later does not exhibit this behavior.
To work around this, double XHCI_MAX_HALT_USEC, which also resolves this
issue.

Signed-off-by: Maximilian Luz <luzmaximilian@xxxxxxxxx>
---
  drivers/usb/host/xhci-ext-caps.h | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/xhci-ext-caps.h b/drivers/usb/host/xhci-ext-caps.h
index fa59b242cd51..fb591e41cd50 100644
--- a/drivers/usb/host/xhci-ext-caps.h
+++ b/drivers/usb/host/xhci-ext-caps.h
@@ -7,8 +7,8 @@
   * Author: Sarah Sharp
   * Some code borrowed from the Linux EHCI driver.
   */
-/* Up to 16 ms to halt an HC */
-#define XHCI_MAX_HALT_USEC	(16*1000)
+/* Up to 32 ms to halt an HC */
+#define XHCI_MAX_HALT_USEC	(32 * 1000)

xHCI spec has a 16ms limit stated in several places, for example section 5.4.1
"xHC is forced to halt within 16 ms. of software clearing the R/S bit to ‘0’,
irrespective of any queued Transfer or Command Ring activity"

Right, thanks, I wasn't aware of this.

To make sure hosts work we could increase it to 32, but comment could be
changed to make sure it doean't get optimized back to 16 ms later.

How about:
/* HC should halt within 16 ms, but use 32 ms as some in reality take longer */

If that's ok I can take this and modify the comment

That makes sense, yes. Please feel free to change that comment as you wish.

Regards,
Max



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux