Hi, I notice a bug report on Bugzilla [1]. Quoting from it: > Hi, > > I'm running Linux on a ThinkPad T14s AMD Gen 1 and I'm having problems > with its Bluetooth adapter. > > The adapter is a Foxconn / Hon Hai, USB ID 0489:e0cd, and it uses the > Mediatek MT7921 driver. Sometimes it just works but often if I suspend > the laptop and come back it stops working. This also happens when I > use the RF kill switch. The kernel errors vary a bit depending on the > moment but it's usually a combination of these: > > kernel: Bluetooth: hci0: Failed to get device id (-108) > kernel: Bluetooth: hci0: Failed to get fw version (-108) > kernel: bluetooth hci0: firmware: direct-loading firmware mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin > kernel: Bluetooth: hci0: Execution of wmt command timed out > kernel: Bluetooth: hci0: Failed to send wmt patch dwnld (-110) > kernel: Bluetooth: hci0: Failed to set up firmware (-110) > kernel: Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported. > > Interestingly I noticed that if I try to use it on a Linux VM (using > USB passthrough) it generally works better, even when it's not working > on the host and the guest and the host are running the same OS and > kernel version. Still it fails sometimes, although the error messages > tend to be a bit different: > > kernel: usbcore: registered new interface driver btusb > kernel: Bluetooth: hci0: Device setup in 153593 usecs > kernel: Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported. > kernel: Bluetooth: hci0: Opcode 0x c03 failed: -110 > kernel: Bluetooth: hci0: Failed to read MSFT supported features (-110) > kernel: Bluetooth: hci0: AOSP get vendor capabilities (-110) > > (I also tried the adapter with a Windows VM, again using USB > passthrough, but here it works perfectly fine) > > Back to the host I found out that resetting the adapter using > "usb_modeswitch -R -v 0489 -p e0cd" sometimes is enough to bring the > adapter back to life and make it work. But this doesn't always > succeed, and at some point I end up in a situation like this: > > kernel: xhci_hcd 0000:06:00.4: xHCI host not responding to stop endpoint command > kernel: xhci_hcd 0000:06:00.4: xHCI host controller not responding, assume dead > kernel: xhci_hcd 0000:06:00.4: HC died; cleaning up > > Sometimes I can get out of it with this: > > $ echo 0000:06:00.4 > /sys/bus/pci/drivers/xhci_hcd/unbind > $ echo 0000:06:00.4 > /sys/bus/pci/drivers/xhci_hcd/bind > > All this has been happening since I got the laptop, but I'm testing it > now with Linux 6.3.3 and the problem is still there. > > The end result is that I basically cannot rely on the USB adapter so I > have it almost always disabled. > > A bit more information about the system: > > $ lspci -nn | grep USB > 02:00.4 USB controller [0c03]: Realtek Semiconductor Co., Ltd. RTL811x EHCI host controller [10ec:816d] (rev 0e) > 05:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015] (rev 02) > 06:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 [1022:1639] > 06:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 [1022:1639] > > $ lsusb > Bus 007 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub > Bus 006 Device 003: ID 0489:e0cd Foxconn / Hon Hai Wireless_Device > Bus 006 Device 002: ID 06cb:00bd Synaptics, Inc. Prometheus MIS Touch Fingerprint Reader > Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub > Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub > Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub > Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub > Bus 002 Device 002: ID 04f2:b6cb Chicony Electronics Co., Ltd Integrated Camera > Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub > Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub > See bugzilla for the full thread. The reporter said that the bluetooth adapter works well on Windows VM via device passthrough, but not on Linux host. Thanks. [1]: https://bugzilla.kernel.org/show_bug.cgi?id=217475 -- An old man doll... just what I always wanted! - Clara