2024-05-28 03:32:35

by 蔣光益

[permalink] [raw]
Subject: [PATCH v2 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.

Cc: <[email protected]>
Signed-off-by: Kuangyi Chiang <[email protected]>
---
Changes in v2:
- Porting to latest release

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

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index b47d57d80b96..effeec5cf1fa 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -399,6 +399,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) {
--
2.25.1



2024-05-28 03:33:47

by 蔣光益

[permalink] [raw]
Subject: [PATCH v2 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.

Cc: <[email protected]>
Signed-off-by: Kuangyi Chiang <[email protected]>
---
Changes in v2:
- Porting to latest release

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

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index c040d816e626..b47d57d80b96 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -36,6 +36,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
@@ -395,6 +396,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
xhci->quirks |= XHCI_RESET_ON_RESUME;
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_ZERO_64B_REGS;
--
2.25.1


2024-05-28 08:36:31

by Sergei Shtylyov

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

On 5/28/24 6:31 AM, Kuangyi Chiang wrote:

> 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.
>
> Cc: <[email protected]>
> Signed-off-by: Kuangyi Chiang <[email protected]>
> ---
> Changes in v2:
> - Porting to latest release
>
> drivers/usb/host/xhci-pci.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index c040d816e626..b47d57d80b96 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
[...]
> @@ -395,6 +396,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
> xhci->quirks |= XHCI_RESET_ON_RESUME;
> xhci->quirks |= XHCI_BROKEN_STREAMS;
> }
> + if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
> + pdev->device == PCI_DEVICE_ID_EJ188) {
> + xhci->quirks |= XHCI_RESET_ON_RESUME;
> + }

You don't need {} around a single statement, according to CodingStyle.

[...]

MBR, Sergey

2024-05-28 09:53:53

by 蔣光益

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

Hi Sergey,

Sergei Shtylyov <[email protected]> 於 2024年5月28日 週二 下午4:36寫道:
>
> On 5/28/24 6:31 AM, Kuangyi Chiang wrote:
>
> > 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.
> >
> > Cc: <[email protected]>
> > Signed-off-by: Kuangyi Chiang <[email protected]>
> > ---
> > Changes in v2:
> > - Porting to latest release
> >
> > drivers/usb/host/xhci-pci.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> > index c040d816e626..b47d57d80b96 100644
> > --- a/drivers/usb/host/xhci-pci.c
> > +++ b/drivers/usb/host/xhci-pci.c
> [...]
> > @@ -395,6 +396,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
> > xhci->quirks |= XHCI_RESET_ON_RESUME;
> > xhci->quirks |= XHCI_BROKEN_STREAMS;
> > }
> > + if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
> > + pdev->device == PCI_DEVICE_ID_EJ188) {
> > + xhci->quirks |= XHCI_RESET_ON_RESUME;
> > + }
>
> You don't need {} around a single statement, according to CodingStyle.
>
> [...]
>
> MBR, Sergey

Got it, I'll modify it and resend patches.

Thanks,
Kuangyi Chiang