usb: xhci: Add XHCI_TRUST_TX_LENGTH for Renesas uPD720201

Message ID 20171212164738.31463-1-daniel.thompson@linaro.org
State Accepted
Commit da99706689481717998d1d48edd389f339eea979
Headers show
Series
  • usb: xhci: Add XHCI_TRUST_TX_LENGTH for Renesas uPD720201
Related show

Commit Message

Daniel Thompson Dec. 12, 2017, 4:47 p.m.
When plugging in a USB webcam I see the following message:
xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs
XHCI_TRUST_TX_LENGTH quirk?
handle_tx_event: 913 callbacks suppressed

All is quiet again with this patch (and I've done a fair but of soak
testing with the camera since).

Cc: <stable@vger.kernel.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>

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

--
2.14.2

Comments

Ard Biesheuvel Dec. 12, 2017, 4:54 p.m. | #1
On 12 December 2017 at 16:47, Daniel Thompson
<daniel.thompson@linaro.org> wrote:
> When plugging in a USB webcam I see the following message:

> xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs

> XHCI_TRUST_TX_LENGTH quirk?

> handle_tx_event: 913 callbacks suppressed

>

> All is quiet again with this patch (and I've done a fair but of soak

> testing with the camera since).

>

> Cc: <stable@vger.kernel.org>

> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>


I have been setting this quirk manually for ages on my kernel command
line, for the same reason (MS HD Webcam), and with the same positive
result, so

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


> ---

>  drivers/usb/host/xhci-pci.c | 3 +++

>  1 file changed, 3 insertions(+)

>

> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c

> index 7ef1274ef7f7..1aad89b8aba0 100644

> --- a/drivers/usb/host/xhci-pci.c

> +++ b/drivers/usb/host/xhci-pci.c

> @@ -177,6 +177,9 @@ 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_RENESAS &&

> +                       pdev->device == 0x0014)

> +               xhci->quirks |= XHCI_TRUST_TX_LENGTH;

>         if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&

>                         pdev->device == 0x0015)

>                 xhci->quirks |= XHCI_RESET_ON_RESUME;

> --

> 2.14.2

>
Mathias Nyman Dec. 13, 2017, 11:07 a.m. | #2
On 12.12.2017 18:54, Ard Biesheuvel wrote:
> On 12 December 2017 at 16:47, Daniel Thompson

> <daniel.thompson@linaro.org> wrote:

>> When plugging in a USB webcam I see the following message:

>> xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs

>> XHCI_TRUST_TX_LENGTH quirk?

>> handle_tx_event: 913 callbacks suppressed

>>

>> All is quiet again with this patch (and I've done a fair but of soak

>> testing with the camera since).

>>

>> Cc: <stable@vger.kernel.org>

>> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>

> 

> I have been setting this quirk manually for ages on my kernel command

> line, for the same reason (MS HD Webcam), and with the same positive

> result, so

> 

> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


Thanks, adding

-Mathias

Patch

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 7ef1274ef7f7..1aad89b8aba0 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -177,6 +177,9 @@  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_RENESAS &&
+			pdev->device == 0x0014)
+		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
 	if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
 			pdev->device == 0x0015)
 		xhci->quirks |= XHCI_RESET_ON_RESUME;