Path: csiph.com!news.redatomik.org!aioe.org!bofh.it!news.nic.it!robomod From: Felipe Balbi Newsgroups: linux.kernel Subject: Re: [PATCH] usb: xhci: Renesas uPD720202 needs short TX quirk Date: Fri, 18 Aug 2017 10:20:02 +0200 Message-ID: References: X-Extloop1: 1 X-Ironport-Av: E=Sophos;i="5.41,391,1498546800"; d="scan'208";a="1163904358" MIME-Version: 1.0 Content-Type: text/plain Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 62 Organization: linux.* mail to news gateway X-Original-Cc: mathias.nyman@intel.com, gregkh@linuxfoundation.org, USB list , LKML X-Original-Date: Fri, 18 Aug 2017 11:10:06 +0300 X-Original-Message-ID: <87fucpqotd.fsf@linux.intel.com> X-Original-References: <20170818042050.1728-1-kai.heng.feng@canonical.com> <87lgmhqr0e.fsf@linux.intel.com> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1714667 Hi, Kai-Heng Feng writes: >>> When plugging Logitech C920 webcam, warning messages filled up dmesg: >>> [77117.655018] xhci_hcd 0000:0c:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk? >>> [77117.659018] xhci_hcd 0000:0c:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk? >> >> have you confirmed this is needed for this controller? > I just found commit d2f48f05cd2a2 ("usb: xhci: ASMedia ASM1042A > chipset need shorts TX quirk") and did the same thing for this > controller. > >> Anybody from Renesas has confirmed it? > No, it's a user reported problem, please check the bug report in the link. > >> Do you have an errata document to refer to? > No. Probably need Renesas guy to provide it. or confirm it. Yoshihiro, do you know if this is needed? >>> [77122.622952] handle_tx_event: 541 callbacks suppressed >>> >>> No more warning messages with XHCI_TRUST_TX_LENGTH applied. >>> >>> BugLink: https://bugs.launchpad.net/bugs/1710548 >>> Signed-off-by: Kai-Heng Feng >>> --- >>> drivers/usb/host/xhci-pci.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c >>> index 8071c8fdd15e..8566b43e19ba 100644 >>> --- a/drivers/usb/host/xhci-pci.c >>> +++ b/drivers/usb/host/xhci-pci.c >>> @@ -202,8 +202,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) >>> xhci->quirks |= XHCI_BROKEN_STREAMS; >>> } >>> if (pdev->vendor == PCI_VENDOR_ID_RENESAS && >>> - pdev->device == 0x0015) >>> + pdev->device == 0x0015) { >> >> unnecessary >> >>> xhci->quirks |= XHCI_RESET_ON_RESUME; >>> + xhci->quirks |= XHCI_TRUST_TX_LENGTH; >> >> xhci->quirks |= XHCI_RESET_ON_RESUME | >> XHCI_TRUST_TX_LENGTH; >> >>> + } >> >> unnecessary > > Do you mean that this quirk just hide the warning, it doesn't fix the > root cause? no, I meant that you need to add {} if you make a single statement out of the quirks. -- balbi