]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
xhci: Turn NEC specific quirk for handling Stop Endpoint errors generic
authorMathias Nyman <mathias.nyman@linux.intel.com>
Tue, 17 Dec 2024 10:21:21 +0000 (12:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:28:44 +0000 (13:28 +0100)
[ Upstream commit e21ebe51af688eb98fd6269240212a3c7300deea ]

xHC hosts from several vendors have the same issue where endpoints start
so slowly that a later queued 'Stop Endpoint' command may complete before
endpoint is up and running.

The 'Stop Endpoint' command fails with context state error as the endpoint
still appears as  stopped.

See commit 42b758137601 ("usb: xhci: Limit Stop Endpoint retries") for
details

CC: stable@vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20241217102122.2316814-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/host/xhci-ring.c

index 2694d7bf48a708e17f3a41815618100b11cbf7bd..0ff70c859f14696766d0b99ea671cad4d3d6954d 100644 (file)
@@ -1171,8 +1171,6 @@ static void xhci_handle_cmd_stop_ep(struct xhci_hcd *xhci, int slot_id,
                         * Keep retrying until the EP starts and stops again, on
                         * chips where this is known to help. Wait for 100ms.
                         */
-                       if (!(xhci->quirks & XHCI_NEC_HOST))
-                               break;
                        if (time_is_before_jiffies(ep->stop_time + msecs_to_jiffies(100)))
                                break;
                        fallthrough;