* [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers @ 2016-10-21 22:25 Babu Moger 2016-10-24 9:57 ` Mathias Nyman 0 siblings, 1 reply; 6+ messages in thread From: Babu Moger @ 2016-10-21 22:25 UTC (permalink / raw) To: mathias.nyman, gregkh; +Cc: linux-usb, linux-kernel, babu.moger Never seen XHCI auto handoff working on TI and RENESAS cards. Eventually, we force handoff. This code forces the handoff unconditionally. It saves 5 seconds boot time for each card. Signed-off-by: Babu Moger <babu.moger@oracle.com> --- v2: Made changes per comments from Greg KH. Extra space removal in assignment Added both vendor and device id checks. Resending the patch. Original discussion here. https://marc.info/?t=145221162000007&r=1&w=4 drivers/usb/host/pci-quirks.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c index 35af362..31c9502 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -996,6 +996,14 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev) } val = readl(base + ext_cap_offset); + /* Auto handoff never worked for these devices. Force it and continue */ + if ((pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241) || + (pdev->vendor == PCI_VENDOR_ID_RENESAS + && pdev->device == 0x0014)) { + val = (val | XHCI_HC_OS_OWNED) & ~XHCI_HC_BIOS_OWNED; + writel(val, base + ext_cap_offset); + } + /* If the BIOS owns the HC, signal that the OS wants it, and wait */ if (val & XHCI_HC_BIOS_OWNED) { writel(val | XHCI_HC_OS_OWNED, base + ext_cap_offset); -- 1.7.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers 2016-10-21 22:25 [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers Babu Moger @ 2016-10-24 9:57 ` Mathias Nyman 2016-10-24 10:54 ` Yoshihiro Shimoda 0 siblings, 1 reply; 6+ messages in thread From: Mathias Nyman @ 2016-10-24 9:57 UTC (permalink / raw) To: Babu Moger, mathias.nyman, gregkh Cc: linux-usb, linux-kernel, Yoshihiro Shimoda On 22.10.2016 01:25, Babu Moger wrote: > Never seen XHCI auto handoff working on TI and RENESAS cards. > Eventually, we force handoff. This code forces the handoff > unconditionally. It saves 5 seconds boot time for each card. > > Signed-off-by: Babu Moger <babu.moger@oracle.com> Do the Renesas and TI controllers still advertise the extended capability for the handoff? (XHCI_EXT_CAPS_LEGACY) Is this some known issue with these vendors controllers? Is there some documentation about this, errata or anything? Adding Yoshihiro Shimoda, he might know about the Renesas controller. -Mathias ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers 2016-10-24 9:57 ` Mathias Nyman @ 2016-10-24 10:54 ` Yoshihiro Shimoda 2016-10-24 14:52 ` Babu Moger 0 siblings, 1 reply; 6+ messages in thread From: Yoshihiro Shimoda @ 2016-10-24 10:54 UTC (permalink / raw) To: Mathias Nyman, Babu Moger, mathias.nyman@intel.com, gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Hi, > From: Mathias Nyman > Sent: Monday, October 24, 2016 6:58 PM > > On 22.10.2016 01:25, Babu Moger wrote: > > Never seen XHCI auto handoff working on TI and RENESAS cards. > > Eventually, we force handoff. This code forces the handoff > > unconditionally. It saves 5 seconds boot time for each card. > > > > Signed-off-by: Babu Moger <babu.moger@oracle.com> > > Do the Renesas and TI controllers still advertise the extended capability > for the handoff? (XHCI_EXT_CAPS_LEGACY) > > Is this some known issue with these vendors controllers? Is there some documentation > about this, errata or anything? > > Adding Yoshihiro Shimoda, he might know about the Renesas controller. Thank you for adding me on this email. However, unfortunately I don't know the detail about Renesas PCIe xHCI controllers. (I know the xHCI controller of R-Car SoCs for now.) Best regards, Yoshihiro Shimoda ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers 2016-10-24 10:54 ` Yoshihiro Shimoda @ 2016-10-24 14:52 ` Babu Moger 2016-10-25 6:51 ` Mathias Nyman 0 siblings, 1 reply; 6+ messages in thread From: Babu Moger @ 2016-10-24 14:52 UTC (permalink / raw) To: Yoshihiro Shimoda, Mathias Nyman, mathias.nyman@intel.com, gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org On 10/24/2016 5:54 AM, Yoshihiro Shimoda wrote: > Hi, > >> From: Mathias Nyman >> Sent: Monday, October 24, 2016 6:58 PM >> >> On 22.10.2016 01:25, Babu Moger wrote: >>> Never seen XHCI auto handoff working on TI and RENESAS cards. >>> Eventually, we force handoff. This code forces the handoff >>> unconditionally. It saves 5 seconds boot time for each card. >>> >>> Signed-off-by: Babu Moger <babu.moger@oracle.com> >> Do the Renesas and TI controllers still advertise the extended capability >> for the handoff? (XHCI_EXT_CAPS_LEGACY) I don't see this capability. Here is lspci output. # lspci -s 0009:01:00.0 -vvv 0009:01:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02) (prog-if 30 [XHCI]) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 0000000e Region 0: Memory at 100000000 (64-bit, non-prefetchable) [size=64K] Region 2: Memory at 100010000 (64-bit, non-prefetchable) [size=8K] Region 4: [virtual] Memory at fffdfdc000000000 (32-bit, non-prefetchable) Region 5: [virtual] Memory at fffdfdc000000000 (32-bit, non-prefetchable) [virtual] Expansion ROM at fffdfdc000000000 [disabled] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [48] MSI: Enable- Count=1/8 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [70] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <64us ClockPM+ Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [c0] MSI-X: Enable+ Count=8 Masked- Vector table: BAR=2 offset=00000000 PBA: BAR=2 offset=00001000 Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [150 v1] Device Serial Number 08-00-28-00-00-20-00-00 Kernel driver in use: xhci_hcd >> >> Is this some known issue with these vendors controllers? Is there some documentation >> about this, errata or anything? >> >> Adding Yoshihiro Shimoda, he might know about the Renesas controller. > Thank you for adding me on this email. > However, unfortunately I don't know the detail about Renesas PCIe xHCI controllers. > (I know the xHCI controller of R-Car SoCs for now.) > > Best regards, > Yoshihiro Shimoda > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers 2016-10-24 14:52 ` Babu Moger @ 2016-10-25 6:51 ` Mathias Nyman 2016-10-25 13:10 ` Babu Moger 0 siblings, 1 reply; 6+ messages in thread From: Mathias Nyman @ 2016-10-25 6:51 UTC (permalink / raw) To: Babu Moger, Mathias Nyman, gregkh@linuxfoundation.org Cc: Yoshihiro Shimoda, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org On 24.10.2016 17:52, Babu Moger wrote: > > On 10/24/2016 5:54 AM, Yoshihiro Shimoda wrote: >> Hi, >> >>> From: Mathias Nyman >>> Sent: Monday, October 24, 2016 6:58 PM >>> >>> On 22.10.2016 01:25, Babu Moger wrote: >>>> Never seen XHCI auto handoff working on TI and RENESAS cards. >>>> Eventually, we force handoff. This code forces the handoff >>>> unconditionally. It saves 5 seconds boot time for each card. >>>> >>>> Signed-off-by: Babu Moger <babu.moger@oracle.com> >>> Do the Renesas and TI controllers still advertise the extended capability >>> for the handoff? (XHCI_EXT_CAPS_LEGACY) > I don't see this capability. Here is lspci output. > It's not a PCI capability, it's a xhci Extended Capability. If the capability is supported, and handoff fail, then quirk_usb_handoff_xhci() will print "xHCI BIOS handoff failed (BIOS bug ?)" Further on in the same function we wait for the "controller not ready" bit in the status register to clear. If that times it prints out: "xHCI HW not ready after 5 sec (HC bug?) status" Do you see any of these two messages in the log? -Mathias ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers 2016-10-25 6:51 ` Mathias Nyman @ 2016-10-25 13:10 ` Babu Moger 0 siblings, 0 replies; 6+ messages in thread From: Babu Moger @ 2016-10-25 13:10 UTC (permalink / raw) To: Mathias Nyman, Mathias Nyman, gregkh@linuxfoundation.org Cc: Yoshihiro Shimoda, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org On 10/25/2016 1:51 AM, Mathias Nyman wrote: > On 24.10.2016 17:52, Babu Moger wrote: >> >> On 10/24/2016 5:54 AM, Yoshihiro Shimoda wrote: >>> Hi, >>> >>>> From: Mathias Nyman >>>> Sent: Monday, October 24, 2016 6:58 PM >>>> >>>> On 22.10.2016 01:25, Babu Moger wrote: >>>>> Never seen XHCI auto handoff working on TI and RENESAS cards. >>>>> Eventually, we force handoff. This code forces the handoff >>>>> unconditionally. It saves 5 seconds boot time for each card. >>>>> >>>>> Signed-off-by: Babu Moger <babu.moger@oracle.com> >>>> Do the Renesas and TI controllers still advertise the extended >>>> capability >>>> for the handoff? (XHCI_EXT_CAPS_LEGACY) >> I don't see this capability. Here is lspci output. >> > > It's not a PCI capability, it's a xhci Extended Capability. > > If the capability is supported, and handoff fail, then > quirk_usb_handoff_xhci() will print > "xHCI BIOS handoff failed (BIOS bug ?)" > Yes. I see these messages. After this patch I don't see these messages. > Further on in the same function we wait for the "controller not ready" > bit in the status > register to clear. If that times it prints out: > > "xHCI HW not ready after 5 sec (HC bug?) status" No. I didn't see this messages. > > Do you see any of these two messages in the log? > > -Mathias ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-10-25 13:10 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-10-21 22:25 [PATCH v2 RESEND] drivers/usb: Skip auto handoff for TI and RENESAS usb controllers Babu Moger 2016-10-24 9:57 ` Mathias Nyman 2016-10-24 10:54 ` Yoshihiro Shimoda 2016-10-24 14:52 ` Babu Moger 2016-10-25 6:51 ` Mathias Nyman 2016-10-25 13:10 ` Babu Moger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).