Oliver Neukum fa2871
From ca09b1bea63ab83f4cca3a2ae8bc4f597ec28851 Mon Sep 17 00:00:00 2001
Oliver Neukum fa2871
From: Maximilian Luz <luzmaximilian@gmail.com>
Oliver Neukum fa2871
Date: Wed, 12 May 2021 11:08:15 +0300
Oliver Neukum fa2871
Subject: [PATCH] usb: xhci: Increase timeout for HC halt
Oliver Neukum fa2871
Git-commit: ca09b1bea63ab83f4cca3a2ae8bc4f597ec28851
Oliver Neukum fa2871
References: git-fixes
Oliver Neukum fa2871
Patch-mainline: v5.13-rc2
Oliver Neukum fa2871
Oliver Neukum fa2871
On some devices (specifically the SC8180x based Surface Pro X with
Oliver Neukum fa2871
QCOM04A6) HC halt / xhci_halt() times out during boot. Manually binding
Oliver Neukum fa2871
the xhci-hcd driver at some point later does not exhibit this behavior.
Oliver Neukum fa2871
To work around this, double XHCI_MAX_HALT_USEC, which also resolves this
Oliver Neukum fa2871
issue.
Oliver Neukum fa2871
Oliver Neukum fa2871
Cc: <stable@vger.kernel.org>
Oliver Neukum fa2871
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Oliver Neukum fa2871
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Oliver Neukum fa2871
Link: https://lore.kernel.org/r/20210512080816.866037-5-mathias.nyman@linux.intel.com
Oliver Neukum fa2871
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Oliver Neukum fa2871
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Oliver Neukum fa2871
---
Oliver Neukum fa2871
 drivers/usb/host/xhci-ext-caps.h |    5 +++--
Oliver Neukum fa2871
 1 file changed, 3 insertions(+), 2 deletions(-)
Oliver Neukum fa2871
Oliver Neukum fa2871
--- a/drivers/usb/host/xhci-ext-caps.h
Oliver Neukum fa2871
+++ b/drivers/usb/host/xhci-ext-caps.h
Oliver Neukum fa2871
@@ -19,8 +19,9 @@
Oliver Neukum fa2871
  * along with this program; if not, write to the Free Software Foundation,
Oliver Neukum fa2871
  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Oliver Neukum fa2871
  */
Oliver Neukum fa2871
-/* Up to 16 ms to halt an HC */
Oliver Neukum fa2871
-#define XHCI_MAX_HALT_USEC	(16*1000)
Oliver Neukum fa2871
+
Oliver Neukum fa2871
+/* HC should halt within 16 ms, but use 32 ms as some hosts take longer */
Oliver Neukum fa2871
+#define XHCI_MAX_HALT_USEC	(32 * 1000)
Oliver Neukum fa2871
 /* HC not running - set to 1 when run/stop bit is cleared. */
Oliver Neukum fa2871
 #define XHCI_STS_HALT		(1<<0)
Oliver Neukum fa2871