Bug 215167

Summary: Bluetooth: hci0: command 0xfc05 tx timeout
Product: Drivers Reporter: Harri Miettinen (harmie)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: RESOLVED OBSOLETE    
Severity: normal CC: a, auxsvr, ben.adler.hh, bram, brice, chaimeliyah, cyril.jaquier, DEEJAY.JPM+kernel, dront78, erik, ht990332, illia.bobyr, jf, jmennius, kernel, kernel, kvaster, linux, matoro_bugzilla_kernel, misha.mail, msalle, nickolas, nozzy123nozzy, oleksandr, patrick.blesi, phill-bugzilla, pieroavola, pmenzel+bugzilla.kernel.org, priit, sixwingedkilleik, stanley.king, tech, tedd.an, tiwai, tr.ml, usual.water5920, vincent, xepher, yahoo, youling257
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 5.16.0-rc3-1.ge8ae228-default Subsystem:
Regression: No Bisected commit-id:
Attachments: bluetooth card details
dmesg with 5.15.5 kernel
dmesg on kernel 5.14.14 bluetooth works
dmesg on kernel 5.15.3 bluetooth fails
hwinfo on kernel 5.14.14 bluetooth works
hwinfo on kernel 5.15.3 bluetooth fails
btusb module load with working kernel
btusb module load with non working kernel

Description Harri Miettinen 2021-11-29 17:55:28 UTC
Created attachment 299769 [details]
bluetooth card details

Since kernel 5.14 bluetooth has not worked in my pc.
I have tested this with 5.15.3, 5.15.5 and 5.16.0-rc3-1 all have same issue.


This is what happens if I try to reload the kernel module
# modprobe -r btusb
# modprobe btusb

Nov 29 18:15:35 lenovo kernel: Bluetooth: hci0: Reading Intel version command failed (-110)
Nov 29 18:15:35 lenovo kernel: Bluetooth: hci0: command 0xfc05 tx timeout

This bug has been invastigated in opensuse bugzilla where they asked to raise it here.
https://bugzilla.opensuse.org/show_bug.cgi?id=1193124

I can provide more logs if needed.
Comment 1 Harri Miettinen 2021-11-29 18:07:29 UTC
Created attachment 299771 [details]
dmesg with 5.15.5 kernel
Comment 2 George Olson 2021-11-29 21:50:59 UTC
On my ASUS laptop also no bluetooth after 5.14.14 kernel. 

Here is my journalctl after startup on 5.15.3 kernel where bluetooth failed to work:
> journalctl -b | egrep -i bluetooth
Nov 29 15:37:29 asustribetrek NetworkManager[780]: <info>  [1638221849.3430] Loaded device plugin: NMBluezManager (/usr/lib64/NetworkManager/1.32.12/libnm-device-plugin-bluetooth.so)
Nov 29 15:37:34 asustribetrek systemd[1]: Condition check resulted in Bluetooth service being skipped.
Nov 29 15:37:36 asustribetrek kded5[1774]: bluedevil: Bluetooth operational changed false
Nov 29 15:38:49 asustribetrek sudo[3567]:   george : TTY=pts/1 ; PWD=/home/george/Documents/Tech/bluetoothFail ; USER=root ; COMMAND=/usr/sbin/hwinfo
Nov 29 15:46:51 asustribetrek systemd[1]: Condition check resulted in Bluetooth service being skipped.
Comment 3 George Olson 2021-11-29 21:51:38 UTC
Created attachment 299781 [details]
dmesg on kernel 5.14.14 bluetooth works
Comment 4 George Olson 2021-11-29 21:52:39 UTC
bluetooth card information - only read by system with 5.14.14 kernel
> lsusb | grep -i bluetooth
Bus 003 Device 004: ID 8087:0026 Intel Corp. AX201 Bluetooth
Comment 5 George Olson 2021-11-29 21:54:09 UTC
Created attachment 299783 [details]
dmesg on kernel 5.15.3 bluetooth fails
Comment 6 George Olson 2021-11-29 21:54:32 UTC
Created attachment 299785 [details]
hwinfo on kernel 5.14.14 bluetooth works
Comment 7 George Olson 2021-11-29 21:54:54 UTC
Created attachment 299787 [details]
hwinfo on kernel 5.15.3 bluetooth fails
Comment 8 George Olson 2021-11-29 21:58:44 UTC
when I boot with 5.15.3 kernel, btusb is not loaded onto the kernel.

Results after modprobe btusb:
> lsmod | grep bt
btusb                  65536  0
btrtl                  28672  1 btusb
btbcm                  20480  1 btusb
btintel                45056  1 btusb
bluetooth             729088  4 btrtl,btintel,btbcm,btusb
usbcore               372736  6 xhci_hcd,usbhid,typec,uvcvideo,btusb,xhci_pci

> journalctl -b | egrep -i hci
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: new USB bus registered, assigned bus number 1
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: hcc params 0x20007fc1 hci version 0x120 quirks 0x0000000200009810
Nov 29 15:37:25 asustribetrek kernel: usb usb1: Product: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: usb usb1: Manufacturer: Linux 5.15.3-1-default xhci-hcd
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: new USB bus registered, assigned bus number 2
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: Host supports USB 3.1 Enhanced SuperSpeed
Nov 29 15:37:25 asustribetrek kernel: usb usb2: Product: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: usb usb2: Manufacturer: Linux 5.15.3-1-default xhci-hcd
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: hcc params 0x20007fc1 hci version 0x120 quirks 0x0000000000009810
Nov 29 15:37:25 asustribetrek kernel: usb usb3: Product: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: usb usb3: Manufacturer: Linux 5.15.3-1-default xhci-hcd
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: Host supports USB 3.1 Enhanced SuperSpeed
Nov 29 15:37:25 asustribetrek kernel: usb usb4: Product: xHCI Host Controller
Nov 29 15:37:25 asustribetrek kernel: usb usb4: Manufacturer: Linux 5.15.3-1-default xhci-hcd
Nov 29 15:37:26 asustribetrek kernel: usb 3-1: new full-speed USB device number 2 using xhci_hcd
Nov 29 15:37:26 asustribetrek kernel: usb 3-5: new high-speed USB device number 3 using xhci_hcd
Nov 29 15:37:34 asustribetrek sddm-helper[1600]: Adding cookie to "/run/user/1000/xauth_HCineT"
Nov 29 15:56:37 asustribetrek kernel: Bluetooth: HCI device and connection manager initialized
Nov 29 15:56:37 asustribetrek kernel: Bluetooth: HCI socket layer initialized
Comment 9 Takashi Iwai 2021-12-01 14:57:22 UTC
It was confirmed that reverting all btintel.c changes from 5.15.x makes the device working again.  So it's a regression in btintel.c change between 5.14 and 5.15.
Comment 10 Harri Miettinen 2021-12-04 10:28:56 UTC
Created attachment 299861 [details]
btusb module load with working kernel
Comment 11 Harri Miettinen 2021-12-04 10:29:27 UTC
Created attachment 299863 [details]
btusb module load with non working kernel
Comment 12 Takahide Nojima 2021-12-05 07:05:35 UTC
 For reference purposes only, I will report here about the experience of 
similar problem with my laptop. My laptop  also has the intel AX201 and 
the dimidecode command shows  as below, 
---------------here------------
Handle 0x0011, DMI type 1, 27 bytes
System Information
        Manufacturer: HP
        Product Name: HP EliteBook 830 G7 Notebook PC
        Version:  
        Serial Number: XXXXXX
        UUID: xxx-xxx-xxx-xxx
        Wake-up Type: Power Switch
        SKU Number: 20L69PA#ABJ
        Family: 103C_5336AN HP EliteBook
---------------here-----------

 I checked some kernel versions whether AX201 Bluetooth works or not.

As a result, my situation was a little different,
  1. The AX201 works fine in Linux-5.14.16,Linux-5.15.5,Linux-5.16-rc2 
   and Linux-5.16-rc3.
  2. It doesn't work in Linux-5.15.3 and Linux-5.16-rc1.

 The Debian bug tracker reported a similar problem,
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1000403.
According to it, a  commit between 5.15.3 and 5.15.4 can improve 
this problem.

 I'm not sure, but I guess the intel AX201 hardware has some versions, 
and it causes whether the 5.15.5 and 5.16-rc3 works or not, for example.
Comment 13 Takashi Iwai 2021-12-05 08:08:26 UTC
FWIW, a potential fix patch is found in
  https://lore.kernel.org/all/20211202162256.31837-1-tiwai@suse.de/
and being discussed in the thread.

It might be that the entry 8087:0026 in the patch is superfluous, and we need to check more.  But at least it cures the problem with 8087:0a2a.

Check whether you have the timeout error as mentioned in this bug description.  If not, it's something else.  (e.g. the problem with 8087:0026 might be an issue of USB side instead.)
Comment 14 linux 2021-12-08 13:30:51 UTC
I'm having what as far as I can tell is the same problem with 8087:0aa7 (Intel Corp. Wireless-AC 3168 Bluetooth).

Not working on 5.15.6, working on 5.14.14
Comment 15 Erik Rigtorp 2021-12-09 18:10:25 UTC
(In reply to linux from comment #14)
> I'm having what as far as I can tell is the same problem with 8087:0aa7
> (Intel Corp. Wireless-AC 3168 Bluetooth).
> 
> Not working on 5.15.6, working on 5.14.14

I think I have the same problem with 8087:0aa7:
Bus 003 Device 003: ID 8087:0aa7 Intel Corp. Wireless-AC 3168 Bluetooth

What's strange is that at first after reverting to 5.14.18-300.fc35.x86_64 it didn't work. Not sure what made it work, either a cold boot or doing modprobe -r btusb && modprobe btusb a few times.
Comment 16 Takashi Iwai 2021-12-10 09:26:16 UTC
When you add the BTUSB_INTEL_BROKEN_INITIAL_NCMD flag for your device (8087:0aa7) in the blacklist_table[] in btusb.c as in comment 13, does it fix the problem?
Comment 17 Erik Rigtorp 2021-12-11 12:39:15 UTC
(In reply to Takashi Iwai from comment #16)
> When you add the BTUSB_INTEL_BROKEN_INITIAL_NCMD flag for your device
> (8087:0aa7) in the blacklist_table[] in btusb.c as in comment 13, does it
> fix the problem?

Yes, running 5.15.16 tag from linux stable repo with this patch on top fixes the issue:
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 79d0db542da3..0ed04061823b 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -368,7 +368,8 @@ static const struct usb_device_id blacklist_table[] = {
                                                     BTUSB_INTEL_BROKEN_INITIAL_NCMD },
        { USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL_COMBINED },
        { USB_DEVICE(0x8087, 0x0a2b), .driver_info = BTUSB_INTEL_COMBINED },
-       { USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL_COMBINED },
+       { USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL_COMBINED |
+                                                    BTUSB_INTEL_BROKEN_INITIAL_NCMD},
        { USB_DEVICE(0x8087, 0x0aaa), .driver_info = BTUSB_INTEL_COMBINED },
 
        /* Other Intel Bluetooth devices */
Comment 18 Tedd An 2021-12-13 04:26:27 UTC
(In reply to George Olson from comment #8)
> when I boot with 5.15.3 kernel, btusb is not loaded onto the kernel.
> 
> Results after modprobe btusb:
> > lsmod | grep bt
> btusb                  65536  0
> btrtl                  28672  1 btusb
> btbcm                  20480  1 btusb
> btintel                45056  1 btusb
> bluetooth             729088  4 btrtl,btintel,btbcm,btusb
> usbcore               372736  6 xhci_hcd,usbhid,typec,uvcvideo,btusb,xhci_pci
> 
> > journalctl -b | egrep -i hci
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: new USB bus
> registered, assigned bus number 1
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: hcc params
> 0x20007fc1 hci version 0x120 quirks 0x0000000200009810
> Nov 29 15:37:25 asustribetrek kernel: usb usb1: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb1: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: new USB bus
> registered, assigned bus number 2
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: Host supports
> USB 3.1 Enhanced SuperSpeed
> Nov 29 15:37:25 asustribetrek kernel: usb usb2: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb2: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: new USB bus
> registered, assigned bus number 3
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: hcc params
> 0x20007fc1 hci version 0x120 quirks 0x0000000000009810
> Nov 29 15:37:25 asustribetrek kernel: usb usb3: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb3: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: new USB bus
> registered, assigned bus number 4
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: Host supports
> USB 3.1 Enhanced SuperSpeed
> Nov 29 15:37:25 asustribetrek kernel: usb usb4: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb4: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:26 asustribetrek kernel: usb 3-1: new full-speed USB device
> number 2 using xhci_hcd
> Nov 29 15:37:26 asustribetrek kernel: usb 3-5: new high-speed USB device
> number 3 using xhci_hcd
> Nov 29 15:37:34 asustribetrek sddm-helper[1600]: Adding cookie to
> "/run/user/1000/xauth_HCineT"
> Nov 29 15:56:37 asustribetrek kernel: Bluetooth: HCI device and connection
> manager initialized
> Nov 29 15:56:37 asustribetrek kernel: Bluetooth: HCI socket layer initialized

Hi, George, 
When you have a chance, could you try with 5.16-rc1 kernel? Yours seems different from the above issue (like 8087: 0a2a). Just in case make sure to cold boot after upgrading the kernel.
Comment 19 Tedd An 2021-12-13 04:26:27 UTC
(In reply to George Olson from comment #8)
> when I boot with 5.15.3 kernel, btusb is not loaded onto the kernel.
> 
> Results after modprobe btusb:
> > lsmod | grep bt
> btusb                  65536  0
> btrtl                  28672  1 btusb
> btbcm                  20480  1 btusb
> btintel                45056  1 btusb
> bluetooth             729088  4 btrtl,btintel,btbcm,btusb
> usbcore               372736  6 xhci_hcd,usbhid,typec,uvcvideo,btusb,xhci_pci
> 
> > journalctl -b | egrep -i hci
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: new USB bus
> registered, assigned bus number 1
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: hcc params
> 0x20007fc1 hci version 0x120 quirks 0x0000000200009810
> Nov 29 15:37:25 asustribetrek kernel: usb usb1: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb1: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: new USB bus
> registered, assigned bus number 2
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:0d.0: Host supports
> USB 3.1 Enhanced SuperSpeed
> Nov 29 15:37:25 asustribetrek kernel: usb usb2: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb2: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: new USB bus
> registered, assigned bus number 3
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: hcc params
> 0x20007fc1 hci version 0x120 quirks 0x0000000000009810
> Nov 29 15:37:25 asustribetrek kernel: usb usb3: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb3: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: xHCI Host
> Controller
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: new USB bus
> registered, assigned bus number 4
> Nov 29 15:37:25 asustribetrek kernel: xhci_hcd 0000:00:14.0: Host supports
> USB 3.1 Enhanced SuperSpeed
> Nov 29 15:37:25 asustribetrek kernel: usb usb4: Product: xHCI Host Controller
> Nov 29 15:37:25 asustribetrek kernel: usb usb4: Manufacturer: Linux
> 5.15.3-1-default xhci-hcd
> Nov 29 15:37:26 asustribetrek kernel: usb 3-1: new full-speed USB device
> number 2 using xhci_hcd
> Nov 29 15:37:26 asustribetrek kernel: usb 3-5: new high-speed USB device
> number 3 using xhci_hcd
> Nov 29 15:37:34 asustribetrek sddm-helper[1600]: Adding cookie to
> "/run/user/1000/xauth_HCineT"
> Nov 29 15:56:37 asustribetrek kernel: Bluetooth: HCI device and connection
> manager initialized
> Nov 29 15:56:37 asustribetrek kernel: Bluetooth: HCI socket layer initialized

Hi, George, 
When you have a chance, could you try with 5.16-rc1 kernel? Yours seems different from the above issue (like 8087: 0a2a). Just in case make sure to cold boot after upgrading the kernel.
Comment 20 Takashi Iwai 2021-12-13 08:35:18 UTC
As mentioned in comment 13, the entry with 8087:0026 looks superfluous, might be rather harmless, and should be dropped.  The issue with 8087:0026 is likely a different problem.
Comment 21 Xepher 2022-01-07 03:46:16 UTC
Want to confirm that adding BTUSB_INTEL_BROKEN_INITIAL_NCMD to the table for 8087:0aa7 fixes this issue on kernel 5.15.13 for my system as well.
Comment 22 mns 2022-01-12 07:21:46 UTC
Can confirm that 5.16 at github fixes the isuue in the first post for intel 0x0a2a.

noticed change in btusb.c

- { USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL_COMBINED },

+ { USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL_COMBINED |
	 				       BTUSB_INTEL_BROKEN_SHUTDOWN_LED },
Comment 23 Ivan 2022-01-14 08:05:50 UTC
same problem with MSI MS-16J4 laptop

Linux 5.16.0-arch1-1 #1 SMP PREEMPT Mon, 10 Jan 2022 20:11:47 +0000 x86_64 GNU/Linux
8087:0a2a Intel Corp. Bluetooth wireless interface

bluetooth is working from cold start until the first reboot or hibernation and failing with hci0: command 0xfc05 tx timeout after.
Comment 24 Serafim 2022-01-14 16:27:32 UTC
Same problem on Dell Vostro 5370, kernel 5.16.0-arch1-1
Intel Corporation Wireless 3165 [8086:3165] (rev 79)

command 0xfc05 tx timeout
Reading Intel version command failed (-110)
Comment 25 youling257 2022-01-21 17:00:38 UTC
suspend to disk after resume,
Bluetooth: hci0: command 0xfc05 tx timeout
Bluetooth: hci0: Reading Intel version command failed (-110)
Comment 26 Viktor Kuzmin 2022-02-09 08:48:47 UTC
My hardware: Dell XPS 7590

Device ID 8087:0029 Intel Corp. AX200 Bluetooth

With linux kernel 5.16.7. By default sometimes bluetooth works and sometimes after reboot or after suspend/resume I have:

Bluetooth: hci0: command 0xfc05 tx timeout

File: drivers/bluetooth/btusb.c
Function: btusb_qca_cmd_timeout

If I disable 'reset_gpio' or change 'msleep(200)' to 'msleep(500)' then bluetooth is working and I have:

[   10.195266] Bluetooth: Core ver 2.22
[   10.197208] Bluetooth: HCI device and connection manager initialized
[   10.197211] Bluetooth: HCI socket layer initialized
[   10.197213] Bluetooth: L2CAP socket layer initialized
[   10.197216] Bluetooth: SCO socket layer initialized
[   10.309387] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[   10.309454] Bluetooth: hci0: Boot Address: 0x24800
[   10.309457] Bluetooth: hci0: Firmware Version: 125-46.21
[   10.309459] Bluetooth: hci0: Firmware already loaded
[   10.364049] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   10.364053] Bluetooth: BNEP filters: protocol multicast
[   10.364057] Bluetooth: BNEP socket layer initialized
[   10.370006] Bluetooth: hci0: Failed to read codec capabilities (-56)
[   10.371010] Bluetooth: hci0: Failed to read codec capabilities (-56)
[   10.372073] Bluetooth: hci0: Failed to read codec capabilities (-56)
[   10.373040] Bluetooth: hci0: Failed to read codec capabilities (-56)
[   10.374004] Bluetooth: hci0: Failed to read codec capabilities (-56)
[   10.375026] Bluetooth: hci0: Failed to read codec capabilities (-56)
[   10.376009] Bluetooth: hci0: Failed to read codec capabilities (-56)
Comment 27 Priit O. 2022-02-27 13:55:22 UTC
Same problem with MS-7C84/MAG X570 TOMAHAWK WIFI (MS-7C84) and Manjaro:
[    5.048112] Bluetooth: hci0: command 0xfc05 tx timeout
[    5.048112] Bluetooth: hci0: Reading Intel version command failed (-110)
Comment 28 Ievgen Popovych 2022-03-14 11:14:36 UTC
Same issue here on Dell XPS 7590 with Intel AX200 (8087:0029) on kernel 5.16.12 (Fedora kernel 5.16.12-200.fc35.x86_64). 

After boot or suspend I observe:
> kernel: Bluetooth: hci0: command 0xfc05 tx timeout
> kernel: Bluetooth: hci0: Reading Intel version command failed (-110)

and BT doesn't work at all.

When it works there are also these messages
> Bluetooth: hci0: Failed to read codec capabilities (-56)

and that
> kernel: Bluetooth: hci0: Timed out waiting for suspend events
> kernel: Bluetooth: hci0: Suspend timeout bit: 6
> kernel: Bluetooth: hci0: Suspend notifier action (3) failed: -110


This was happening on older kernels as well (oldest I see in the logs I still have is 5.14.14).
Comment 29 Paul Menzel 2022-03-14 12:18:38 UTC
@Ievgen, thank you for the report. Is the non-working Bluetooth a regression too or just the messages? There were some Bluetooth regressions in Linux 5.16 cycle, some them only fixed in Linux 5.17-rc7. Could you please test with that first?

If not, please create a new issue, and reference it here. For the new issue, please do `sudo modprobe -r btusb` and `sudo btmon -w /dev/shm/trace.log` and attach the logs.
Comment 30 Piero Avola 2022-03-15 13:54:55 UTC
The problem still persists in 5.17-rc8. Bluetooth not working after boot and the same errors as in the original report:

# dmesg | grep -i bluetooth
> [    4.588660] Bluetooth: hci0: command 0xfc05 tx timeout
> [    4.588666] Bluetooth: hci0: Reading Intel version command failed (-110)

$ uname -r
> 5.17.0-rc8-1-mainline

$ lsusb | grep -i bluetooth
> Bus 001 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth

However modprobe -r btusb && modprobe btusb seems to make bluetooth working again.
Comment 31 Piero Avola 2022-03-16 15:07:36 UTC
(In reply to Piero Avola from comment #30)
> However modprobe -r btusb && modprobe btusb seems to make bluetooth working
> again.

I have to take this back. After rebooting I repeatedly see the errors when trying this:
> Bluetooth: hci0: Reading Intel version command failed (-110)
> Bluetooth: hci0: command tx timeout
Comment 32 Brice Waegeneire 2022-04-06 07:18:54 UTC
I have the same problem with Linux 5.17 and an Intel AX210:


# dmesg | tail -n5
> [132429.090891] Bluetooth: hci0: command 0xfc05 tx timeout
> [136438.549331] usbcore: deregistering interface driver btusb
> [136442.981006] usbcore: registered new interface driver btusb
> [136444.998477] Bluetooth: hci0: command 0xfc05 tx timeout
> [136444.998480] Bluetooth: hci0: Reading Intel version command failed (-110)


$ uname -a
> Linux safou 5.17.1 #1 SMP PREEMPT 1 x86_64 GNU/Linux


$ lsusb | grep -i bluetooth
> Bus 001 Device 008: ID 8087:0032 Intel Corp. AX210 Bluetooth


If you need more information I'm at your disposal.
Comment 33 Bram van den Heuvel 2022-04-08 21:40:03 UTC
Another occurance on 5.17.1 with Intel AX200:

> Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: Core ver 2.22
> Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: HCI device and connection
> manager initialized
>Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: HCI socket layer initialized
>Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: L2CAP socket layer
>initialized
>Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: SCO socket layer initialized
>Apr 08 23:19:05 ArchFrameWork systemd[1]: Starting Bluetooth service...
>Apr 08 23:19:05 ArchFrameWork bluetoothd[1198]: Bluetooth daemon 5.64
>Apr 08 23:19:05 ArchFrameWork systemd[1]: Started Bluetooth service.
>Apr 08 23:19:05 ArchFrameWork systemd[1]: Reached target Bluetooth Support.
>Apr 08 23:19:05 ArchFrameWork bluetoothd[1198]: Bluetooth management interface
>1.21 initialized
>Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: BNEP (Ethernet Emulation) ver
>1.3
>Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: BNEP filters: protocol
>multicast
>Apr 08 23:19:05 ArchFrameWork kernel: Bluetooth: BNEP socket layer initialized
>Apr 08 23:19:07 ArchFrameWork kernel: Bluetooth: hci0: command 0xfc05 tx
>timeout
>Apr 08 23:19:07 ArchFrameWork kernel: Bluetooth: hci0: Reading Intel version
>command failed (-110)
>Apr 08 23:21:35 ArchFrameWork systemd[1]: Stopped target Bluetooth Support.
>Apr 08 23:21:38 ArchFrameWork systemd[1575]: Reached target Bluetooth.
>Apr 08 23:21:38 ArchFrameWork systemd[1]: Reached target Bluetooth Support.
>Apr 08 23:21:40 ArchFrameWork kernel: Bluetooth: hci0: command 0xfc05 tx
>timeout
>Apr 08 23:21:40 ArchFrameWork kernel: Bluetooth: hci0: Reading Intel version
>command failed (-110)

uname:
> Linux X 5.17.1-arch1-1 #1 SMP PREEMPT Mon, 28 Mar 2022 20:55:33 +0000 x86_64
> GNU/Linux

lsusb:
> Bus 003 Device 004: ID 8087:0029 Intel Corp. AX200 Bluetooth
Comment 34 Sergio Torres 2022-04-09 22:06:31 UTC
I believe I might be experiencing the same issue with my GIGABYTE B450 AORUS PRO WIFI under Manajaro:

uname -r
>5.16.14-1-MANJARO

lsusb | grep -i bluetooth
>Bus 001 Device 002: ID 8087:0aa7 Intel Corp. Wireless-AC 3168 Bluetooth

sudo lsmod | grep bt
>btusb                  65536  0
>btrtl                  28672  1 btusb
>btbcm                  24576  1 btusb
>btintel                45056  1 btusb
>bluetooth             770048  43 btrtl,btintel,btbcm,bnep,btusb,rfcomm

sudo dmesg | grep -i bluetooth                                                                    >[    4.296518] Bluetooth: Core ver 2.22
>[    4.296529] NET: Registered PF_BLUETOOTH protocol family
>[    4.296530] Bluetooth: HCI device and connection manager initialized
>[    4.296532] Bluetooth: HCI socket layer initialized
>[    4.296533] Bluetooth: L2CAP socket layer initialized
>[    4.296535] Bluetooth: SCO socket layer initialized
>[    4.334693] Bluetooth: hci0: Legacy ROM 2.x revision 5.0 build 25 week 20
>2015
>[    4.334695] Bluetooth: hci0: Intel device is already patched. patch num: 3c
>[    4.405834] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
>[    4.405835] Bluetooth: BNEP filters: protocol multicast
>[    4.405837] Bluetooth: BNEP socket layer initialized
>[   16.384308] Bluetooth: RFCOMM TTY layer initialized
>[   16.384314] Bluetooth: RFCOMM socket layer initialized
>[   16.384317] Bluetooth: RFCOMM ver 1.11
>[   18.557782] Bluetooth: hci0: command 0x0c24 tx timeout
>[   20.691116] Bluetooth: hci0: command 0x0c52 tx timeout

Using rmmod btusb and modprobe btusb solves the issue for the rest of the session.
Comment 35 Ievgen Popovych 2022-05-25 13:16:12 UTC
@Paul
I am not exactly sure what you were referring to in your question (regression or not) so I'll answer broadly.

The last occurrence of `kernel: Bluetooth: hci0: Failed to read codec capabilities (-56)` was on 5.16.12. So that one seems to be fixed (did not see it since 5.16.14).

The last occurrence of `command 0xfc05 tx timeout` was on 5.17.8 (i.e. now for me).

Most common commands that suffer from timeouts or errors are 0xfc05, 0x0c01, 0x0c1a, 0x0408.

I will try to collect logs as you've suggested.
Comment 36 Ievgen Popovych 2022-05-25 13:44:32 UTC
I was just looping suspend (mem_sleep deep) trying to reproduce with btmon trace - no luck (13 times).

I've noticed that
> kernel: Bluetooth: hci0: command 0x0c01 tx timeout
> kernel: Bluetooth: hci0: Opcode 0x c01 failed: -110
and
> kernel: Bluetooth: hci0: command 0x0c1a tx timeout
> kernel: Bluetooth: hci0: Opcode 0x c1a failed: -110
occur when exiting suspend and BT is working fine.
Comment 37 Ievgen Popovych 2022-06-15 10:12:44 UTC
So I was trying to reproduce, kept the trace running for a few days or more, but then it never happened and I've stopped tracing.
Now it happened again, on Fedora kernel 5.17.11, when waking up from suspend.
As I am looking though the logs there were total of 4 occurrences of "Reading Intel version command failed", but I think only today I've noticed BT not working and having to do the rmmod dance (few times to fix it).

> Jun 15 10:19:54 ievgen-xps kernel: Bluetooth: hci0: Opcode 0x c01 failed:
> -110
> Jun 15 10:19:54 ievgen-xps kernel: Bluetooth: hci0: command 0x0c01 tx timeout
> Jun 15 10:19:56 ievgen-xps systemd-sleep[311042]: System returned from sleep
> state.
> Jun 15 10:19:56 ievgen-xps bluetoothd[876]: Controller resume with wake event
> 0x0
> Jun 15 10:19:56 ievgen-xps kernel: Bluetooth: hci0: command 0x0c1a tx timeout
> Jun 15 10:19:56 ievgen-xps kernel: Bluetooth: hci0: Opcode 0x c1a failed:
> -110
> Jun 15 10:19:56 ievgen-xps kernel: PM: suspend exit
> Jun 15 10:19:56 ievgen-xps systemd[1]: Starting systemd-rfkill.service -
> Load/Save RF Kill Switch Status...
> Jun 15 10:19:56 ievgen-xps systemd[1]: Stopped target bluetooth.target -
> Bluetooth Support.
> Jun 15 10:19:56 ievgen-xps systemd[1665]: Stopped target bluetooth.target -
> Bluetooth.
> Jun 15 10:19:56 ievgen-xps systemd[1]: Started systemd-rfkill.service -
> Load/Save RF Kill Switch Status.
> Jun 15 10:19:56 ievgen-xps kernel: usb 1-4: new full-speed USB device number
> 39 using xhci_hcd
> Jun 15 10:19:56 ievgen-xps kernel: usb 1-4: New USB device found,
> idVendor=8087, idProduct=0029, bcdDevice= 0.01
> Jun 15 10:19:56 ievgen-xps kernel: usb 1-4: New USB device strings: Mfr=0,
> Product=0, SerialNumber=0
> Jun 15 10:19:56 ievgen-xps upowerd[902]: treating change event as add on
> /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4
> Jun 15 10:19:56 ievgen-xps systemd[1]: Reached target bluetooth.target -
> Bluetooth Support.
> Jun 15 10:19:56 ievgen-xps systemd[1665]: Reached target bluetooth.target -
> Bluetooth.
...
> Jun 15 10:19:58 ievgen-xps kernel: Bluetooth: hci0: command 0xfc05 tx timeout
> Jun 15 10:19:58 ievgen-xps kernel: Bluetooth: hci0: Reading Intel version
> command failed (-110)
Comment 38 Viktor Kuzmin 2022-06-15 11:17:55 UTC
Following patch fixes problem for me:

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index ea72afb..b94a6da 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -714,7 +714,7 @@ static void btusb_qca_cmd_timeout(struct hci_dev *hdev)
                }

                gpiod_set_value_cansleep(reset_gpio, 0);
-               msleep(200);
+               msleep(500);
                gpiod_set_value_cansleep(reset_gpio, 1);

                return;
Comment 39 Piero Avola 2022-06-30 14:16:39 UTC
The problem still occurs for me:

$ uname -r
> 5.18.7-arch1-1

$ lsusb | grep -i bluetooth
> Bus 001 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth

# dmesg | grep -i bluetooth
> [    6.640015] Bluetooth: hci0: command 0xfc05 tx timeout
> [    6.640018] Bluetooth: hci0: Reading Intel version command failed (-110)

Sometimes reloading btusb via modprobe fixes the issue, on my current boot the two lines from dmesg just repeat.

Bluetooth hasn't worked reliably since 5.14 with this device, it's a huge inconvenience.

I'm gonna try out the fix posted in the message before. If there's anything I can do to help, please let me know.
Comment 40 Piero Avola 2022-08-18 15:03:16 UTC
The problem persists in 5.19

# dmesg | grep -i bluetooth
> [    2.433304] Bluetooth: Core ver 2.22
> [    2.433317] NET: Registered PF_BLUETOOTH protocol family
> [    2.433318] Bluetooth: HCI device and connection manager initialized
> [    2.433322] Bluetooth: HCI socket layer initialized
> [    2.433324] Bluetooth: L2CAP socket layer initialized
> [    2.433326] Bluetooth: SCO socket layer initialized
> [    3.625145] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
> [    3.625147] Bluetooth: BNEP filters: protocol multicast
> [    3.625149] Bluetooth: BNEP socket layer initialized
> [    4.720010] Bluetooth: hci0: Reading Intel version command failed (-110)
> [    4.720011] Bluetooth: hci0: command 0xfc05 tx timeout
Comment 41 Patrick Blesi 2022-09-27 02:53:15 UTC
I am experiencing the same problem with 5.15.67 for USB Device USB_DEVICE(0x8087, 0x0aaa).

~ $ uname -a
Linux a0d7b954-ssh 5.15.67 #1 SMP Tue Sep 13 13:54:38 UTC 2022 x86_64 Linux

~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 003: ID 1043:8012
Bus 002 Device 001: ID 1d6b:0003
Bus 001 Device 002: ID 8087:0aaa

~ $ dmesg | grep -i bluetooth
[    0.454719] Bluetooth: Core ver 2.22
[    0.454904] NET: Registered PF_BLUETOOTH protocol family
[    0.455504] Bluetooth: HCI device and connection manager initialized
[    0.455896] Bluetooth: HCI socket layer initialized
[    0.456392] Bluetooth: L2CAP socket layer initialized
[    0.456894] Bluetooth: SCO socket layer initialized
[    4.452912] Bluetooth: hci0: Reading Intel version command failed (-110)
[    4.452955] Bluetooth: hci0: command 0xfc05 tx timeout
[    4.498402] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.498405] Bluetooth: BNEP filters: protocol multicast
[    4.498409] Bluetooth: BNEP socket layer initialized
Comment 42 Patrick Blesi 2022-09-29 00:49:35 UTC
(In reply to Patrick Blesi from comment #41)
> I am experiencing the same problem with 5.15.67 for USB Device
> USB_DEVICE(0x8087, 0x0aaa).
> 
> ~ $ uname -a
> Linux a0d7b954-ssh 5.15.67 #1 SMP Tue Sep 13 13:54:38 UTC 2022 x86_64 Linux
> 
> ~ $ lsusb
> Bus 001 Device 001: ID 1d6b:0002
> Bus 001 Device 003: ID 1043:8012
> Bus 002 Device 001: ID 1d6b:0003
> Bus 001 Device 002: ID 8087:0aaa
> 
> ~ $ dmesg | grep -i bluetooth
> [    0.454719] Bluetooth: Core ver 2.22
> [    0.454904] NET: Registered PF_BLUETOOTH protocol family
> [    0.455504] Bluetooth: HCI device and connection manager initialized
> [    0.455896] Bluetooth: HCI socket layer initialized
> [    0.456392] Bluetooth: L2CAP socket layer initialized
> [    0.456894] Bluetooth: SCO socket layer initialized
> [    4.452912] Bluetooth: hci0: Reading Intel version command failed (-110)
> [    4.452955] Bluetooth: hci0: command 0xfc05 tx timeout
> [    4.498402] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
> [    4.498405] Bluetooth: BNEP filters: protocol multicast
> [    4.498409] Bluetooth: BNEP socket layer initialized

This was actually a red herring. The issue was manifested by not connecting my Bluetooth PCI devices as a passthrough to my lxd virtual machine. To resolve I removed the Bluetooth USB device (0x8087, 0x0aaa) and added the PCI controller and shared RAM PCI controller in the same iommu group.

00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30) 
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
Comment 43 RockT 2022-12-05 11:36:19 UTC
I see this problem with the switch of kernel 6.0 (all versions work) to 6.1.0rc7.
Bluetooth has stopped working. :(

$ dmesg |grep -i bluetooth
[    0.890611] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    9.373051] Bluetooth: Core ver 2.22
[    9.373087] NET: Registered PF_BLUETOOTH protocol family
[    9.373088] Bluetooth: HCI device and connection manager initialized
[    9.373093] Bluetooth: HCI socket layer initialized
[    9.373096] Bluetooth: L2CAP socket layer initialized
[    9.373102] Bluetooth: SCO socket layer initialized
[    9.667105] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    9.667109] Bluetooth: BNEP filters: protocol multicast
[    9.667114] Bluetooth: BNEP socket layer initialized
[   11.669721] Bluetooth: hci0: Reading Intel version command failed (-110)
[   11.669725] Bluetooth: hci0: command 0xfc05 tx timeout

Sys: Lenovo Thinkpad T14s Gen2
lspci:
$ lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.5 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.7 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7
01:00.0 Non-Volatile memory controller: Shenzhen Unionmemory Information System Ltd. Device 6304 (rev 03)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0e)
03:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
04:00.0 Unassigned class [ff00]: Quectel Wireless Solutions Co., Ltd. EM120R-GL LTE Modem
05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev d1)
06:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller
06:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor
06:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
06:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
06:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor (rev 01)
06:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller

Any further info to provide?
Comment 44 matoro 2022-12-28 15:18:21 UTC
I am also observing this with an AX200.  I keep several old stable kernels, so for bisecting purposes I have found that:

6.0.12 is good
6.0.15 is bad
6.1.1 is bad

Hardware:
07:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
Comment 45 Oleksandr Natalenko 2023-02-25 20:57:48 UTC
I can confirm this behaviour on v6.2 and AX200. The BT is unusable because the FW doesn't get loaded. Reloading `btusb` module several times makes it working.
Comment 46 Chaim Eliyah 2023-02-26 23:14:02 UTC
+1 AX200 

```
07:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX200NGW [8086:0084]
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi
```

```
[   25.711840] Bluetooth: Core ver 2.22
[   25.711860] NET: Registered PF_BLUETOOTH protocol family
[   25.711861] Bluetooth: HCI device and connection manager initialized
[   25.711864] Bluetooth: HCI socket layer initialized
[   25.711866] Bluetooth: L2CAP socket layer initialized
[   25.711869] Bluetooth: SCO socket layer initialized
[   25.788390] iwlwifi 0000:07:00.0: loaded firmware version 66.f1c864e0.0 cc-a0-66.ucode op_mode iwlmvm
[   27.783372] Bluetooth: hci0: command 0xfc05 tx timeout
[   27.783378] Bluetooth: hci0: Reading Intel version command failed (-110)
[   28.785728] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   28.785731] Bluetooth: BNEP filters: protocol multicast
[   28.785733] Bluetooth: BNEP socket layer initialized
```

```
celiyah@darkunicorn:~$ sudo systemctl status bluetooth
● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-02-26 16:43:43 CST; 12min ago
       Docs: man:bluetoothd(8)
   Main PID: 28973 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 76959)
     Memory: 668.0K
        CPU: 38ms
     CGroup: /system.slice/bluetooth.service
             └─28973 /usr/lib/bluetooth/bluetoothd

```

```
celiyah@darkunicorn:~$ bluetoothctl 
Agent registered
[bluetooth]# scan on
No default controller available
quitetooth]# 
```

It's popping up in Ubuntu forums e.g. 
https://askubuntu.com/questions/1448731/bluetooth-not-working-no-controller-available

| Reloading `btusb` module several times makes it working.

Any specific steps for this? I have not been able to get it to work. Issue persists despite reboots incl. hard power off/on. This happened suddenly.

```
celiyah@darkunicorn:~$ uname -a
Linux darkunicorn 5.15.0-56-lowlatency #62-Ubuntu SMP PREEMPT Wed Nov 23 09:50:07 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
celiyah@darkunicorn:~$ lsmod | grep bt
btusb                  61440  0
btrtl                  24576  1 btusb
btbcm                  24576  1 btusb
btintel                40960  1 btusb
bluetooth             708608  12 btrtl,btintel,btbcm,bnep,btusb
```

(I believe the bleeding cutting edge 23.04.1 is the only available bunty release with a 6 kernel line. Could be wrong.)
Comment 47 Chaim Eliyah 2023-02-26 23:15:06 UTC
Sorry, after patching.* Happened suddenly after patching.
Comment 48 Oleksandr Natalenko 2023-02-26 23:59:28 UTC
(In reply to Chaim Eliyah from comment #46)
> | Reloading `btusb` module several times makes it working.
> 
> Any specific steps for this? I have not been able to get it to work. Issue
> persists despite reboots incl. hard power off/on. This happened suddenly.

No specific steps, just `modprobe -r btusb && modprobe btusb`.

I'm not facing the issue regularly, for me it happened only once recently after I powered off the system completely for a couple of days. The issue does not occur across reboots or suspends/resumes. It also doesn't occur after each power off (at least, so far).

I've adopted the patch from c#38 like below just to be on the safe side:

```
commit 2875e3ab82d1777a06a356167c52a745827b2ad1
Author: Oleksandr Natalenko <oleksandr@natalenko.name>
Date:   Sun Feb 26 00:17:09 2023 +0100

    Bluetooth: btusb: work around command 0xfc05 tx timeout
    
    Instead of realoding `btusb` module to tackle this:
    
    ```
    Bluetooth: hci0: command 0xfc05 tx timeout
    Bluetooth: hci0: Reading Intel version command failed (-110)
    ```
    
    increase `btusb_qca_cmd_timeout()` sleep duration while hoping
    for the best.
    
    This looks like an ugly hack.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=215167
    Signed-off-by: Oleksandr Natalenko <oleksandr@natalenko.name>

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 2ad4efdd9e40..7aff6c468c0d 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -901,7 +901,7 @@ static void btusb_qca_cmd_timeout(struct hci_dev *hdev)
 		}
 
 		gpiod_set_value_cansleep(reset_gpio, 0);
-		msleep(200);
+		usleep_range(USEC_PER_SEC / 2, USEC_PER_SEC);
 		gpiod_set_value_cansleep(reset_gpio, 1);
 
 		return;
```

Let me know if you are able to test it.
Comment 49 Piero Avola 2023-04-21 07:31:14 UTC
I'm still encountering this problem with Kernel 6.2.11 (USB ID 8087:0029).

However I recently noticed that Bluetooth is almost always available when I wait out the 5 seconds on the GRUB screen during boot. However when I "prematurely" hit enter the bug is almost always there.

In general once Bluetooth is working and I only do a reboot rather than disconnecting power for a while, it always stays available no matter how I boot.
Comment 50 Dan 2023-04-29 07:37:16 UTC
There is a workaround found by hmmsjan.

su -c "modprobe -r btusb;sleep 2;modprobe btusb"

Once bluetooth is working it will stay working even after reboots.

The following is a link to the discussion leading to this workaround.
https://forums.fedoraforum.org/showthread.php?330365-F38-blueberry-is-missing
Comment 51 Piero Avola 2023-05-01 09:02:23 UTC
(In reply to Dan from comment #50)
> There is a workaround found by hmmsjan.
> 
> su -c "modprobe -r btusb;sleep 2;modprobe btusb"

Unfortunately that workaround does not work 100% of the time. Usually re-running it after 10-15 does the job, but also that does not always work for me.

In either case that doesn't solve the problem. Bluetooth should work after every boot without intervention.

I'll see if I get around testing the patch from comment #48.
Comment 52 Hussam Al-Tayeb 2023-07-09 06:18:02 UTC
For me, only a horrible modprobe -r xhci_pci && modprobe xhci_pci seems to make it work against without a reboot.
Comment 53 Hussam Al-Tayeb 2023-07-09 06:23:45 UTC
Another note. This also breaks after resuming from hibernate and not only a shutdown.
Comment 54 Arjan Veenstra 2023-09-08 11:59:58 UTC
(In reply to matoro from comment #44)
> 6.0.12 is good
> 6.0.15 is bad
> 6.1.1 is bad
> 
> Hardware:
> 07:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
>       Subsystem: Intel Corporation Wi-Fi 6 AX200NGW

I have the same controller on an Asus B550M-A (Wi-Fi):
09:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

And I got the same error on kernel 6.5:
[   10.644458] Bluetooth: hci0: command 0xfc05 tx timeout
[   10.644685] Bluetooth: hci0: Reading Intel version command failed (-110)

6.4.14 is good
6.5.0 is bad
6.5.1 is bad

However, I checked back and for me kernel 6.0.14 and 6.0.15 both work, which 
made me suspect a firmware difference. So I grabbed to latest version from 
linux-firmware.git and tried again. Now 6.5.1 works again. So it seems the issue
is specific to certain firmware / kernel combinations.

My previous firmware:
[    8.528961] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    8.528974] Bluetooth: hci0: Boot Address: 0x24800
[    8.528976] Bluetooth: hci0: Firmware Version: 126-5.22
...
[   14.992585] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-20-1-3.ddc
[   15.001435] Bluetooth: hci0: Applying Intel DDC parameters completed
[   15.006447] Bluetooth: hci0: Firmware revision 0.3 build 126 week 5 2022

The new firmware:
[    9.707218] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    9.707231] Bluetooth: hci0: Boot Address: 0x24800
[    9.707233] Bluetooth: hci0: Firmware Version: 255-255.255
...
[   16.179006] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-20-1-3.ddc
[   16.187931] Bluetooth: hci0: Applying Intel DDC parameters completed
[   16.192850] Bluetooth: hci0: Firmware revision 0.3 build 249 week 27 2023
Comment 55 Ben Adler 2024-01-16 17:57:33 UTC
My AX200 based blueooth hasn't worked on my arch linux for a while (with the same errors), but cannot say at which kernel version change exactly it broke. Just updated my arch linux to kernel

6.7.0-arch3-1 #1 SMP PREEMPT_DYNAMIC Sat, 13 Jan 2024 14:37:14 +0000 x86_64 GNU/Linux

and it's still broken. Inspired by Arjans answer, I downloaded linux-firmware-20230323.gitbcdcfbcf from some ubuntu package, and did a

mv -i ibt-20-1-3.sfi ibt-20-0-3.sfi /lib/firmware/intel/

and it works again!

Here's the broken arch firmwares:
f22358f118acb67b26cb8cac8443e09a  ibt-20-0-3.sfi.zst
f22358f118acb67b26cb8cac8443e09a  ibt-20-1-3.sfi.zst

Here are the working ubuntu gitbcdcfbcf firmwares:
# md5sum ibt-20-1-3.sfi ibt-20-0-3.sfi
dda190be754f26625955b73f05fc2ba2  ibt-20-1-3.sfi
217eaf48a8a825b2f95fd49c241188f5  ibt-20-0-3.sfi

Hope this may help somebody.
Comment 56 Ivan 2024-01-17 10:38:47 UTC
last one sounds like zstd support is missing in the kernel
Comment 57 Artem S. Tashkinov 2024-01-22 10:19:03 UTC
This bug report has become unintelligible. 

Please file a new one if you're still affected.

Make sure you have verified kernel 6.6.13 or 6.7.1 with the latest firmware.
Comment 58 Paul Menzel 2024-05-25 05:11:25 UTC
@Harri, @George, reading the openSUSE report it sounds like *your* issue – not others commented here – should be fixed in 5.16.1. Can you please comment here on the current state for some conclusion.
Comment 59 Harri Miettinen 2024-05-26 19:14:43 UTC
Yes the original issue was fixed long time ago. I have changed my computer since so I can't verify if problem has appeared again.