RE: [PATCH] usb: host: xhci-rcar: Add XHCI_TRUST_TX_LENGTH quirk

From: Yoshihiro Shimoda
Date: Tue Feb 26 2019 - 03:47:48 EST


Hi,

> From: Spyridon Papageorgiou, Sent: Monday, February 18, 2019 7:27 PM
> To: mathias.nyman@xxxxxxxxx
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; yasano@xxxxxxxxxxxxxx; REE erosca@xxxxxxxxxxxxxx <erosca@xxxxxxxxxxxxxx>;
> linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH] usb: host: xhci-rcar: Add XHCI_TRUST_TX_LENGTH quirk
>
> From: Yasushi Asano <yasano@xxxxxxxxxxxxxx>
>
> When plugging BUFFALO LUA4-U3-AGT USB3.0 to Gigabit Ethernet LAN
> Adapter, warning messages filled up dmesg.
>
> [ 101.098287] xhci-hcd ee000000.usb: WARN Successful completion on short TX for slot 1 ep 4: needs XHCI_TRUST_TX_LENGTH
> quirk?
> [ 101.117463] xhci-hcd ee000000.usb: WARN Successful completion on short TX for slot 1 ep 4: needs XHCI_TRUST_TX_LENGTH
> quirk?
> [ 101.136513] xhci-hcd ee000000.usb: WARN Successful completion on short TX for slot 1 ep 4: needs XHCI_TRUST_TX_LENGTH
> quirk?
>
> Adding the XHCI_TRUST_TX_LENGTH quirk resolves the issue.
>
> Signed-off-by: Yasushi Asano <yasano@xxxxxxxxxxxxxx>
> Signed-off-by: Spyridon Papageorgiou <spapageorgiou@xxxxxxxxxxxxxx>

Thank you for the patch!

I don't know why R-Car xHCI needs this quirk though...
However, other xHCI controllers [1] also seem unclear why this quirk needs.
So,

Acked-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>

Best regards,
Yoshihiro Shimoda

[1]
---
commit da99706689481717998d1d48edd389f339eea979
Author: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
Date: Thu Dec 21 15:06:15 2017 +0200

usb: xhci: Add XHCI_TRUST_TX_LENGTH for Renesas uPD720201
---
commit d2f48f05cd2a2a0a708fbfa45f1a00a87660d937
Author: Corentin Labbe <clabbe.montjoie@xxxxxxxxx>
Date: Fri Jun 9 14:48:41 2017 +0300

usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
---
commit 2597fe99bb0259387111d0431691f5daac84f5a5
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Tue Aug 19 15:17:57 2014 +0300

usb: xhci: amd chipset also needs short TX quirk
---

> ---
> drivers/usb/host/xhci-rcar.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c
> index a6e463715779..671bce18782c 100644
> --- a/drivers/usb/host/xhci-rcar.c
> +++ b/drivers/usb/host/xhci-rcar.c
> @@ -246,6 +246,7 @@ int xhci_rcar_init_quirk(struct usb_hcd *hcd)
> if (!xhci_rcar_wait_for_pll_active(hcd))
> return -ETIMEDOUT;
>
> + xhci->quirks |= XHCI_TRUST_TX_LENGTH;
> return xhci_rcar_download_firmware(hcd);
> }
>
> --
> 2.20.1