2022-09-25 17:52:55

by Jens Glathe

[permalink] [raw]
Subject: [PATCH] fix: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller

only if it reports as a V0.96 XHCI controller. Appears to fix the errors
"xhci_hcd <address>; ERROR Transfer event TRB DMA ptr not part of
current TD ep_index 2 comp_code 13" that appear spuriously (or pretty
often) when using a r8152 USB3 ethernet adapter with integrated hub.

Signed-off-by: Jens Glathe <[email protected]>
---
drivers/usb/host/xhci-pci.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index dce6c0ec8d34..d1b8e7148dd1 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -306,8 +306,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
}

if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
- pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
+ pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
+ /* try to tame the ASMedia 1042 controller which is 0.96 */
+ if (xhci->hci_version == 0x96)
+ xhci->quirks |= XHCI_SPURIOUS_SUCCESS;
xhci->quirks |= XHCI_BROKEN_STREAMS;
+ }
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) {
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
--
2.25.1

---
Hi there, a "try again" with git send-email and the corrected patch. Hope this works now.

with best regards

Jens Glathe


2022-09-26 09:17:40

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] fix: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller

On Sun, Sep 25, 2022 at 07:22:37PM +0200, Jens Glathe wrote:
> only if it reports as a V0.96 XHCI controller. Appears to fix the errors
> "xhci_hcd <address>; ERROR Transfer event TRB DMA ptr not part of
> current TD ep_index 2 comp_code 13" that appear spuriously (or pretty
> often) when using a r8152 USB3 ethernet adapter with integrated hub.
>
> Signed-off-by: Jens Glathe <[email protected]>
> ---
> drivers/usb/host/xhci-pci.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index dce6c0ec8d34..d1b8e7148dd1 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
> @@ -306,8 +306,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
> }
>
> if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
> - pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
> + pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
> + /* try to tame the ASMedia 1042 controller which is 0.96 */
> + if (xhci->hci_version == 0x96)
> + xhci->quirks |= XHCI_SPURIOUS_SUCCESS;
> xhci->quirks |= XHCI_BROKEN_STREAMS;
> + }
> if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
> pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) {
> xhci->quirks |= XHCI_TRUST_TX_LENGTH;
> --
> 2.25.1
>
> ---
> Hi there, a "try again" with git send-email and the corrected patch. Hope this works now.
>
> with best regards
>
> Jens Glathe

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him
a patch that has triggered this response. He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created. Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- You did not write a descriptive Subject: for the patch, allowing Greg,
and everyone else, to know what this patch is all about. Please read
the section entitled "The canonical patch format" in the kernel file,
Documentation/SubmittingPatches for what a proper Subject: line should
look like.

- This looks like a new version of a previously submitted patch, but you
did not list below the --- line any changes from the previous version.
Please read the section entitled "The canonical patch format" in the
kernel file, Documentation/SubmittingPatches for what needs to be done
here to properly describe this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot

2022-09-26 13:52:33

by Mathias Nyman

[permalink] [raw]
Subject: Re: [PATCH] fix: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller

Hi

Thanks for the patch, some small changes still needed:

Include subsystem in subject line, something like
usb: xhci: Add XHCI_SPURIOUS...

On 25.9.2022 20.22, Jens Glathe wrote:
> only if it reports as a V0.96 XHCI controller. Appears to fix the errors
> "xhci_hcd <address>; ERROR Transfer event TRB DMA ptr not part of
> current TD ep_index 2 comp_code 13" that appear spuriously (or pretty
> often) when using a r8152 USB3 ethernet adapter with integrated hub.
>
> Signed-off-by: Jens Glathe <[email protected]>
> ---
> drivers/usb/host/xhci-pci.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index dce6c0ec8d34..d1b8e7148dd1 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
> @@ -306,8 +306,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
> }
>
> if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
> - pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
> + pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
> + /* try to tame the ASMedia 1042 controller which is 0.96 */
> + if (xhci->hci_version == 0x96)

Do we need this 0x96 check? It's anyway set for 1.0 and newer controllers

> + xhci->quirks |= XHCI_SPURIOUS_SUCCESS;

This reminds me that I should get rid of this quirk.

If we get a short transfers event for a TRB mid TD, then xhci hosts version 1.0 and later
should send a second event for the last TRB in the TD

so this is default behavior for modern xHCI, not a spurious event.

But your patch is anyways needed for stable kernels.

Thanks
-Mathias

2022-09-26 14:24:04

by Jens Glathe

[permalink] [raw]
Subject: Re[2]: [PATCH] fix: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller

Hi there,

thank you for the hint, I'll amend the commit text. For practical
purposes you won't need to check for ASM1042/0x96, however according to
documentation it *should* be a V1.0 XHCI controller. So, the defensive
approach would be to check for it (so its a quirk only in this case),
the outcome without checking would be the same. I can take it out,
adding the quirk for ASM1042 would be sufficient.

with best regards

Jens

------ Originalnachricht ------
Von "Mathias Nyman" <[email protected]>
An "Jens Glathe" <[email protected]>;
[email protected]
Cc [email protected]; [email protected];
[email protected]
Datum 26.09.2022 13:31:42
Betreff Re: [PATCH] fix: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite
being a V0.96 controller

>Hi
>
>Thanks for the patch, some small changes still needed:
>
>Include subsystem in subject line, something like
>usb: xhci: Add XHCI_SPURIOUS...
>
>On 25.9.2022 20.22, Jens Glathe wrote:
>>only if it reports as a V0.96 XHCI controller. Appears to fix the errors
>>"xhci_hcd <address>; ERROR Transfer event TRB DMA ptr not part of
>>current TD ep_index 2 comp_code 13" that appear spuriously (or pretty
>>often) when using a r8152 USB3 ethernet adapter with integrated hub.
>>
>>Signed-off-by: Jens Glathe <[email protected]>
>>---
>> drivers/usb/host/xhci-pci.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>>diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
>>index dce6c0ec8d34..d1b8e7148dd1 100644
>>--- a/drivers/usb/host/xhci-pci.c
>>+++ b/drivers/usb/host/xhci-pci.c
>>@@ -306,8 +306,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
>> }
>> if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
>>- pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
>>+ pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
>>+ /* try to tame the ASMedia 1042 controller which is 0.96 */
>>+ if (xhci->hci_version == 0x96)
>
>Do we need this 0x96 check? It's anyway set for 1.0 and newer controllers
>
>>+ xhci->quirks |= XHCI_SPURIOUS_SUCCESS;
>
>This reminds me that I should get rid of this quirk.
>
>If we get a short transfers event for a TRB mid TD, then xhci hosts version 1.0 and later
>should send a second event for the last TRB in the TD
>
>so this is default behavior for modern xHCI, not a spurious event.
>
>But your patch is anyways needed for stable kernels.
>
>Thanks
>-Mathias

2022-09-26 17:17:53

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH] fix: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller

On Mon, Sep 26, 2022 at 02:31:42PM +0300, Mathias Nyman wrote:
> Hi
>
> Thanks for the patch, some small changes still needed:
>
> Include subsystem in subject line, something like
> usb: xhci: Add XHCI_SPURIOUS...

And don't forget to include a revision number inside the []'s on the
Subject line for all revised submissions.

> On 25.9.2022 20.22, Jens Glathe wrote:
> > only if it reports as a V0.96 XHCI controller. Appears to fix the errors

It would be nice if the first sentence (not to mention the later ones)
of the patch description actually was a complete sentence. I realize
that lots of commits don't bother to do this, but IMNSHO they ought to.

> > "xhci_hcd <address>; ERROR Transfer event TRB DMA ptr not part of
> > current TD ep_index 2 comp_code 13" that appear spuriously (or pretty
> > often) when using a r8152 USB3 ethernet adapter with integrated hub.
> >
> > Signed-off-by: Jens Glathe <[email protected]>
> > ---

Likewise, for resubmissions don't forget to include a quick description
here (just below the "---" line) of how the resubmission differs from
the earlier versions.

Alan Stern