Skip to contentSkip to conversation

xhci: Apply broken streams quirk to Etron EJ188 xHCI host

PATCH Superseded Kuangyi Chiang 2 participants 6 messages May 22, 2024 – May 23, 2024

Subsystems (2)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 2/2 xhci: Apply broken streams quirk to Etron EJ188 xHCI host

As described in commit 8f873c1ff4ca ("xhci: Blacklist using streams on the Etron EJ168 controller"), EJ188 have the same issue as EJ168, where Streams do not work reliable on EJ188. So apply XHCI_BROKEN_STREAMS quirk to EJ188 as well.

---
 drivers/usb/host/xhci-pci.c | 1 +
 1 file changed, 1 insertion(+)
drivers/usb/host/xhci-pci.c +1 -0
index a0beb41..5591e6d 100644
@@ -242,6 +242,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 	if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
 			pdev->device == PCI_DEVICE_ID_EJ188) {
 		xhci->quirks |= XHCI_RESET_ON_RESUME;
+		xhci->quirks |= XHCI_BROKEN_STREAMS;
 	}
 	if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
 	    pdev->device == 0x0014) {
Signature · 1 line
2.25.1
#1 lore raw

PATCH 1/2 xhci: Apply reset resume quirk to Etron EJ188 xHCI host

As described in commit c877b3b2ad5c ("xhci: Add reset on resume quirk for asrock p67 host"), EJ188 have the same issue as EJ168, where completely dies on resume. So apply XHCI_RESET_ON_RESUME quirk to EJ188 as well.

---
 drivers/usb/host/xhci-pci.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/usb/host/xhci-pci.c +5 -0
index ef513c2..a0beb41 100644
@@ -31,6 +31,7 @@
 
 #define PCI_VENDOR_ID_ETRON		0x1b6f
 #define PCI_DEVICE_ID_EJ168		0x7023
+#define PCI_DEVICE_ID_EJ188		0x7052
 
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI	0x8c31
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI	0x9c31
@@ -238,6 +239,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
 		xhci->quirks |= XHCI_BROKEN_STREAMS;
 	}
+	if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
+			pdev->device == PCI_DEVICE_ID_EJ188) {
+		xhci->quirks |= XHCI_RESET_ON_RESUME;
+	}
 	if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
 	    pdev->device == 0x0014) {
 		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
Signature · 1 line
2.25.1
maintainer
#2 lore raw

Re: [PATCH 1/2] xhci: Apply reset resume quirk to Etron EJ188 xHCI host

Quoted 22 lines · Kuangyi Chiang

As described in commit c877b3b2ad5c ("xhci: Add reset on resume quirk for asrock p67 host"), EJ188 have the same issue as EJ168, where completely dies on resume. So apply XHCI_RESET_ON_RESUME quirk to EJ188 as well.

---
 drivers/usb/host/xhci-pci.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/usb/host/xhci-pci.c +1 -0
index ef513c2..a0beb41 100644
@@ -31,6 +31,7 @@
 
 #define PCI_VENDOR_ID_ETRON		0x1b6f
 #define PCI_DEVICE_ID_EJ168		0x7023
+#define PCI_DEVICE_ID_EJ188		0x7052
 
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI	0x8c31
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI	0x9c31

drivers/usb/host/xhci-pci.c static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) · line 245

Quoted 7 lines
drivers/usb/host/xhci-pci.c +4 -0
@@ -238,6 +239,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
 		xhci->quirks |= XHCI_BROKEN_STREAMS;
 	}
+	if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
+			pdev->device == PCI_DEVICE_ID_EJ188) {
+		xhci->quirks |= XHCI_RESET_ON_RESUME;
+	}

Same question as on other patch, should this be backported to older kernels too?

thanks,

greg k-h

author
#3 lore raw

Re: [PATCH 1/2] xhci: Apply reset resume quirk to Etron EJ188 xHCI host

Hi Greg,

Greg KH <[email protected]> 於 2024年5月22日 週三 下午12:36寫道:

Quoted 35 lines · Kuangyi Chiang
Quoted 22 lines

As described in commit c877b3b2ad5c ("xhci: Add reset on resume quirk for asrock p67 host"), EJ188 have the same issue as EJ168, where completely dies on resume. So apply XHCI_RESET_ON_RESUME quirk to EJ188 as well.

---
 drivers/usb/host/xhci-pci.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/usb/host/xhci-pci.c +1 -0
index ef513c2..a0beb41 100644
@@ -31,6 +31,7 @@
 
 #define PCI_VENDOR_ID_ETRON          0x1b6f
 #define PCI_DEVICE_ID_EJ168          0x7023
+#define PCI_DEVICE_ID_EJ188          0x7052
 
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI   0x8c31
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI        0x9c31

drivers/usb/host/xhci-pci.c static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) · line 245

Quoted 7 lines
drivers/usb/host/xhci-pci.c +4 -0
@@ -238,6 +239,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
              xhci->quirks |= XHCI_TRUST_TX_LENGTH;
              xhci->quirks |= XHCI_BROKEN_STREAMS;
      }
+     if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
+                     pdev->device == PCI_DEVICE_ID_EJ188) {
+             xhci->quirks |= XHCI_RESET_ON_RESUME;
+     }

Same question as on other patch, should this be backported to older kernels too?

Quoted 3 lines

thanks,

greg k-h

Sorry, I'm new to this.
These patches have been tested in the stable 4.19 kernel, so they should be backported to stable kernels as old as 4.19, right?

Thanks,
Kuangyi Chiang

maintainer
#4 lore raw

Re: [PATCH 1/2] xhci: Apply reset resume quirk to Etron EJ188 xHCI host

Quoted 38 lines · 蔣光益

Hi Greg,

Greg KH <[email protected]> 於 2024年5月22日 週三 下午12:36寫道:

Quoted 35 lines · Kuangyi Chiang
Quoted 22 lines

As described in commit c877b3b2ad5c ("xhci: Add reset on resume quirk for asrock p67 host"), EJ188 have the same issue as EJ168, where completely dies on resume. So apply XHCI_RESET_ON_RESUME quirk to EJ188 as well.

---
 drivers/usb/host/xhci-pci.c | 5 +++++
 1 file changed, 5 insertions(+)
drivers/usb/host/xhci-pci.c +1 -0
index ef513c2..a0beb41 100644
@@ -31,6 +31,7 @@
 
 #define PCI_VENDOR_ID_ETRON          0x1b6f
 #define PCI_DEVICE_ID_EJ168          0x7023
+#define PCI_DEVICE_ID_EJ188          0x7052
 
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI   0x8c31
 #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI        0x9c31

drivers/usb/host/xhci-pci.c static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) · line 245

Quoted 7 lines
drivers/usb/host/xhci-pci.c +4 -0
@@ -238,6 +239,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
              xhci->quirks |= XHCI_TRUST_TX_LENGTH;
              xhci->quirks |= XHCI_BROKEN_STREAMS;
      }
+     if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
+                     pdev->device == PCI_DEVICE_ID_EJ188) {
+             xhci->quirks |= XHCI_RESET_ON_RESUME;
+     }

Same question as on other patch, should this be backported to older kernels too?

Quoted 7 lines
Quoted 3 lines

thanks,

greg k-h

Sorry, I'm new to this.
These patches have been tested in the stable 4.19 kernel, so they should be backported to stable kernels as old as 4.19, right?

Great, please put the proper Fixes: and Cc: stable tags on the commit when resending these. Also, they need to be made against the latest release, not an old 4.19 kernel, as we can't go back in time to only apply it to there.

thanks,

greg k-h

maintainer
#5 lore raw
In reply to Kuangyi Chiang
Quoted 9 lines · Kuangyi Chiang

As described in commit 8f873c1ff4ca ("xhci: Blacklist using streams on the Etron EJ168 controller"), EJ188 have the same issue as EJ168, where Streams do not work reliable on EJ188. So apply XHCI_BROKEN_STREAMS quirk to EJ188 as well.

---
 drivers/usb/host/xhci-pci.c | 1 +
 1 file changed, 1 insertion(+)

Should this go to stable kernels, if so, how far back?

thanks,

greg k-h