Bug 217805 - Qualcomm NFA725A on T14s AMD Gen3: Bluetooth: hci0: Failed to send headers (or body or access otp area)
Summary: Qualcomm NFA725A on T14s AMD Gen3: Bluetooth: hci0: Failed to send headers (o...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-18 08:21 UTC by François Armand
Modified: 2023-12-08 08:23 UTC (History)
0 users

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments
lsmod (7.87 KB, text/plain)
2023-08-28 07:17 UTC, François Armand
Details

Description François Armand 2023-08-18 08:21:51 UTC
Hello,

(Sorry by advance if it's not the correct place to discuss that, but I tried other place like my distro kernel forum (https://bbs.archlinux.org/viewtopic.php?id=286929), interactive chat, etc and nobody was able to help).

[1] == Short summary ==

I have a lenovo T14S AMD Gen 3 with a *Qualcomm NFA725A* Wi-Fi card (which is actually reported by lspci as QCNFA765) and bluetooth never worked on it, failing to load the rampatch with "failed to send header" or "failed to send body" or "Failed to access otp area (-71)".

Other people reports bluetooth as working (https://wiki.archlinux.org/title/Lenovo_ThinkPad_T14s_(AMD)_Gen_3) and a work friend has a T16 AMD gen1 which seems to have exactly the same chipset and work flowlessly. So perhaps it's an hardware issue, but I don't know how to qualify it if so.

=> How can this be further qualified/debuged/workarounded?

Any help, even RTFM pointing to corresponding manuals would be very much appreciated.


[2] == logs and more details ==

I have that laptop since october 2022 and use archlinux with the standard kernels. None made bluetooth wroked since then. First install was around linux 6.0.10 and current kernel: 6.4.10-arch1-10.

There is nothing obvious in bios setting that could lead to that (bluetooth is enabled).

# LSPCI

lspci -k -s 01:00.0 
01:00.0 Network controller: Qualcomm Technologies, Inc QCNFA765 Wireless Network Adapter (rev 01) 
Subsystem: Lenovo QCNFA765 Wireless Network Adapter 
Kernel driver in use: ath11k_pci 
Kernel modules: ath11k_pci


# kernel boot log: "Failed to send headers (-71)"

kernel: thinkpad_acpi: radio switch found; radios are enabled 
kernel: thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver 
kernel: thinkpad_acpi: Disabling thinkpad-acpi brightness events by default
... 
kernel: thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked 
... 
rfkill[6774]: unblock set for type bluetooth sudo[6773]: pam_unix(sudo:session): session closed for user root 
kernel: usb 1-3.1: new full-speed USB device number 3 using xhci_hcd 
kernel: usb 1-3.1: New USB device found, idVendor=10ab, idProduct=9309, bcdDevice= 0.01 kernel: usb 1-3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 boltd[935]: probing: started [1000] 
kernel: Bluetooth: Core ver 2.22 kernel: NET: Registered PF_BLUETOOTH protocol family kernel: Bluetooth: HCI device and connection manager initialized 
kernel: Bluetooth: HCI socket layer initialized kernel: Bluetooth: L2CAP socket layer initialized 
kernel: Bluetooth: SCO socket layer initialized kernel: usbcore: registered new interface driver btusb 
systemd[1328]: Reached target Bluetooth. 
kernel: Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00130201.bin 
kernel: Bluetooth: hci0: QCA: patch rome 0x130201 build 0x5073, firmware rome 0x130201 build 0x38e6 
kernel: Bluetooth: hci0: Failed to send headers (-71) 
systemd[1]: Starting Bluetooth service... 
bluetoothd[6866]: Bluetooth daemon 5.66 
systemd[1]: Started Bluetooth service. 
systemd[1]: Reached target Bluetooth Support. 
bluetoothd[6866]: Starting SDP server bluetoothd[6866]: profiles/audio/vcp.c:vcp_init() D-Bus experimental not enabled

# rfkill status

sudo rfkill 
ID TYPE DEVICE SOFT HARD 
0 bluetooth tpacpi_bluetooth_sw blocked unblocked 
1 wlan phy0 unblocked unblocked 

# when trying to unlock: "failed to send body at 40 of 142192 (-71)"

rfkill[105640]: unblock set for type bluetooth 
sudo[105639]: pam_unix(sudo:session): session closed for user root 
kernel: usb 1-3.1: new full-speed USB device number 4 using xhci_hcd 
kernel: usb 1-3.1: New USB device found, idVendor=10ab, idProduct=9309, bcdDevice= 0.01 
kernel: usb 1-3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 
kernel: Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00130201.bin 
kernel: Bluetooth: hci0: QCA: patch rome 0x130201 build 0x5073, firmware rome 0x130201 build 0x38e6 
kernel: Bluetooth: hci0: Failed to send body at 40 of 142192 (-71) 
kernel: usb 1-3.1: USB disconnect, device number 4 
boltd[935]: probing: started [1000] 
systemd[1328]: Reached target Bluetooth. 
systemd[1328]: Stopped target Bluetooth. 
systemd[1]: Reached target Bluetooth Support. 
systemd[1]: Stopped target Bluetooth Support. 

# unloading and loading back kernel related modules (`bluetooth`, `btusb`, etc) and modprobe them back, and I get the same kind of logs after `rfkill unblock bluetoot`:

rfkill[106483]: unblock set for type bluetooth 
sudo[106482]: pam_unix(sudo:session): session closed for user root 
kernel: usb 1-3.1: new full-speed USB device number 5 using xhci_hcd 
kernel: usb 1-3.1: New USB device found, idVendor=10ab, idProduct=9309, bcdDevice= 0.01 
kernel: usb 1-3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 
kernel: usb 1-3.1: Failed to access otp area (-71) 
kernel: usb 1-3.1: USB disconnect, device number 5 
boltd[935]: probing: started [1000] 
systemd[1328]: Reached target Bluetooth. 
systemd[1]: Reached target Bluetooth Support. 
systemd[1328]: Stopped target Bluetooth. 
systemd[1]: Stopped target Bluetooth Support. 
boltd[935]: probing: timeout, done: [3001068] (2000000)

Have a nice day
Comment 1 François Armand 2023-08-28 07:17:31 UTC
Created attachment 304965 [details]
lsmod

I failed to attach lsmod, so here we go.
Comment 2 François Armand 2023-08-31 13:26:08 UTC
For info, I find that subject: https://superuser.com/a/1451102

So I tried to disable bluetooth in bios, boot, re-enable bluetooth in bios.

With that, I was able to "unblock" the bluetooth adaptater in rfkill. 


But I still didn't have any controler listed in `bluethoothctl list`. 


I then tried to disable laptot battery ("power > servicing" option in bios) to see if a full cold restart does something. 
It does: I've came back to the initial state, where the controler can't be enabled at all. 
I tried the disable-then-enable-bluetooth-in-bios trick, but that time it doesn't do anything. 

I also notice than early in boot, I have that message:

---
kernel: usb usb1-port3: connect-debounce failed
---

Which seems to be link to the bluetooth controler (I don't have the message when bluetooth is disabled in bios).

So it looks like an hardware problem right?
Comment 3 François Armand 2023-12-08 08:23:22 UTC
More information on that subject: 

- the bluetooth antenna was physically disconnect from the chipset, I reconnected it. 

- now, I'm able to have bluetooth from an old ubuntu 22.04 live usb key, 
- I still don't have it from a modern linux 6.6.4 arch kernel

The main difference I noticed happened when the firmware is loaded: 

- on ubuntu, where it works: 

Dec 08 07:00:36 ubuntu kernel: usb 1-3: new high-speed USB device number 2 using xhci_hcd
...
Decrep 08 07:00:36 ubuntu kernel: usb 1-3.1: new full-speed USB device number 3 using xhci_hcd
Dec 08 07:00:36 ubuntu kernel: usb 1-3.1: New USB device found, idVendor=10ab, idProduct=9309, bcdDevice= 0.01
Dec 08 07:00:36 ubuntu kernel: usb 1-3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
...
Dec 08 07:00:37 ubuntu kernel: thinkpad_acpi: radio switch found; radios are enabled
...
Dec 08 07:00:37 ubuntu kernel: thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
....


- on the newer kernel:
Dec 08 08:54:42 lalande21185 kernel: thinkpad_acpi: radio switch found; radios are enabled
...

Dec 08 08:54:42 lalande21185 kernel: thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked

Dec 08 07:00:3Dec 08 08:56:14 lalande21185 kernel: usb 1-3.1: new full-speed USB device number 5 using xhci_hcd
Dec 08 08:56:14 lalande21185 kernel: usb 1-3.1: New USB device found, idVendor=10ab, idProduct=9309, bcdDevice= 0.01
Dec 08 08:56:14 lalande21185 kernel: usb 1-3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Dec 08 08:56:15 lalande21185 kernel: Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00130201.bin
Dec 08 08:56:15 lalande21185 kernel: Bluetooth: hci0: QCA: patch rome 0x130201 build 0x65e2, firmware rome 0x130201 build 0x38e6
Dec 08 08:56:15 lalande21185 kernel: Bluetooth: hci0: Failed to send headers (-71)
Dec 08 08:56:15 lalande21185 kernel: usb 1-3.1: USB disconnect, device number 5
8 ubuntu kernel: Bluetooth: hci0: using NVM file: qca/nvm_usb_00130201_gf.bin



Could it have something to do with the `thinkpad_acpi` module? The exact rome build is not the same too, which is expected I think for a newer kernel

Note You need to log in before you can comment on or make changes to this bug.