Thread (33 messages) 33 messages, 11 authors, 2023-12-15

Re: Regression: Inoperative bluetooth, Intel chipset, mainline kernel 6.6.2+

From: Oleksandr Natalenko <hidden>
Date: 2023-12-03 19:52:41
Also in: linux-usb, regressions, stable

Hello.

On neděle 3. prosince 2023 17:24:28 CET Basavaraj Natikar wrote:
On 12/3/2023 9:46 PM, Basavaraj Natikar wrote:
quoted
On 12/3/2023 2:08 PM, Greg KH wrote:
quoted
On Sun, Dec 03, 2023 at 03:32:52AM -0500, Kris Karas (Bug Reporting) wrote:
quoted
Greg KH wrote:
quoted
Thanks for testing, any chance you can try 6.6.4-rc1?  Or wait a few
hours for me to release 6.6.4 if you don't want to mess with a -rc
release.
As I mentioned to Greg off-list (to save wasting other peoples' bandwidth),
I couldn't find 6.6.4-rc1.  Looking in wrong git tree?  But 6.6.4 is now
out, which I have tested and am running at the moment, albeit with the
problem commit from 6.6.2 backed out.

There is no change with respect to this bug.  The problematic patch
introduced in 6.6.2 was neither reverted nor amended.  The "opcode 0x0c03
failed" lines to the kernel log continue to be present.
quoted
Also, is this showing up in 6.7-rc3?  If so, that would be a big help in
tracking this down.
The bug shows up in 6.7-rc3 as well, exactly as it does here in 6.6.2+ and
in 6.1.63+.  The problematic patch bisected earlier appears identically (and
seems to have been introduced simultaneously) in these recent releases.
Ok, in a way, this is good as that means I haven't missed a fix, but bad
in that this does affect everyone more.

So let's start over, you found the offending commit, and nothing has
fixed it, so what do we do?  xhci/amd developers, any ideas?
Can we enable RPM on specific controllers for AMD xHC 1.1
instead to cover all AMD xHC 1.1? 

Please find below the proposed changes and let me know if it is OK?
 
Author: Basavaraj Natikar [off-list ref]
Date:   Sun Dec 3 18:28:27 2023 +0530

    xhci: Remove RPM as default policy to cover AMD xHC 1.1

    xHC 1.1 runtime PM as default policy causes issues on few AMD controllers.
    Hence remove RPM as default policy to cover AMD xHC 1.1 and add only
    AMD USB host controller (1022:43f7) which has RPM support. 

    Fixes: 4baf12181509 ("xhci: Loosen RPM as default policy to cover for AMD xHC 1.1")
    Link: https://lore.kernel.org/all/2023120329-length-strum-9ee1@gregkh (local)
    Signed-off-by: Basavaraj Natikar [off-list ref]
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 95ed9404f6f8..7ffd6b8227cc 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -535,7 +535,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
        /* xHC spec requires PCI devices to support D3hot and D3cold */
        if (xhci->hci_version >= 0x120)
                xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
-       else if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version >= 0x110)
+       else if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->vendor == 0x43f7)
sorry its 
pdev->device == 0x43f7

Incorrect ---> else if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->vendor == 0x43f7)
correct line --> else if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->device == 0x43f7)
quoted
                xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;

        if (xhci->quirks & XHCI_RESET_ON_RESUME)
Given the following hardware:

[~]> lspci -nn | grep -i usb
06:00.4 USB controller [0c03]: Realtek Semiconductor Co., Ltd. RTL811x EHCI host controller [10ec:816d] (rev 1a)
07:00.1 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
07:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
0f:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]

and v6.6.4 kernel, without this patch:

[~]> LC_TIME=C jctl -kb -1 --grep 'hci version'
Dec 03 13:22:03 archlinux kernel: xhci_hcd 0000:07:00.1: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000200000410
Dec 03 13:22:03 archlinux kernel: xhci_hcd 0000:07:00.3: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000200000410
Dec 03 13:22:03 archlinux kernel: xhci_hcd 0000:0f:00.3: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000200000410

With the patch applied:

[~]> LC_TIME=C jctl -kb --grep 'hci version'
Dec 03 20:46:59 archlinux kernel: xhci_hcd 0000:07:00.1: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000000000410
Dec 03 20:46:59 archlinux kernel: xhci_hcd 0000:07:00.3: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000000000410
Dec 03 20:46:59 archlinux kernel: xhci_hcd 0000:0f:00.3: hcc params 0x0278ffe5 hci version 0x110 quirks 0x0000000000000410

(note the difference in `quirks` as expected)

Hence, feel free to add:

Tested-by: Oleksandr Natalenko <redacted>
Link: https://lore.kernel.org/lkml/5993222.lOV4Wx5bFT@natalenko.name/ (local)

Thank you.
quoted
Thanks,
--
Basavaraj
quoted
thanks,

greg k-h

-- 
Oleksandr Natalenko (post-factum)

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help