bcm27xx: remove linux 5.10 compatibility
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.10 / 950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
diff --git a/target/linux/bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
deleted file mode 100644 (file)
index bc2639a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From be6ae78e28ff92b6da6af988f3013420af957481 Mon Sep 17 00:00:00 2001
-From: Jonathan Bell <jonathan@raspberrypi.org>
-Date: Mon, 26 Oct 2020 14:03:35 +0000
-Subject: [PATCH] xhci: quirks: add link TRB quirk for VL805
-
-The VL805 controller can't cope with the TR Dequeue Pointer for an endpoint
-being set to a Link TRB. The hardware-maintained endpoint context ends up
-stuck at the address of the Link TRB, leading to erroneous ring expansion
-events whenever the enqueue pointer wraps to the dequeue position.
-
-If the search for the end of the current TD and ring cycle state lands on
-a Link TRB, move to the next segment.
-
-See: https://github.com/raspberrypi/linux/issues/3919
-
-Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
----
- drivers/usb/host/xhci-pci.c  |  1 +
- drivers/usb/host/xhci-ring.c | 10 ++++++++++
- drivers/usb/host/xhci.h      |  1 +
- 3 files changed, 12 insertions(+)
-
---- a/drivers/usb/host/xhci-pci.c
-+++ b/drivers/usb/host/xhci-pci.c
-@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
-       if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
-               xhci->quirks |= XHCI_LPM_SUPPORT;
-               xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
-+              xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
-       }
-       if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -666,6 +666,16 @@ void xhci_find_new_dequeue_state(struct
-       } while (!cycle_found || !td_last_trb_found);
-+      /*
-+       * Quirk: the xHC does not correctly parse link TRBs if the HW Dequeue
-+       * pointer is set to one. Advance to the next TRB (and next segment).
-+       */
-+      if (xhci->quirks & XHCI_AVOID_DQ_ON_LINK && trb_is_link(new_deq)) {
-+              if (link_trb_toggles_cycle(new_deq))
-+                      state->new_cycle_state ^= 0x1;
-+              next_trb(xhci, ep_ring, &new_seg, &new_deq);
-+      }
-+
-       state->new_deq_seg = new_seg;
-       state->new_deq_ptr = new_deq;
---- a/drivers/usb/host/xhci.h
-+++ b/drivers/usb/host/xhci.h
-@@ -1888,6 +1888,7 @@ struct xhci_hcd {
- #define XHCI_SG_TRB_CACHE_SIZE_QUIRK  BIT_ULL(39)
- #define XHCI_NO_SOFT_RETRY    BIT_ULL(40)
- #define XHCI_EP_CTX_BROKEN_DCS        BIT_ULL(42)
-+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(43)
-       unsigned int            num_active_eps;
-       unsigned int            limit_active_eps;