Bug 210681

Summary: kernel: Bluetooth: hci0: don't support firmware rome 0x31010000
Product: Drivers Reporter: Antonio (antdev66)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: RESOLVED CODE_FIX    
Severity: high CC: aivaraslaimikis, andreas.kohn, brad, brandomrobor, BxOxSxS, carnil, cth451, erikdemitzhelin, erwan, exocarnivore, gobinda.joy, hallbw, igorognev, jan.steffens, janetesalesdeoliveira, joev.8450, jwrdegoede, liquidzoo, luccapellegrini, marcelo, marcofaga, matthias, nandi68, nicoadamo, nizzi, nkudriavtsev, nowa, rbereny, sergeyfd, souravdas142, steeve.mccauley, thesourcehim, victorx, vitkuz573, wariwpl, yushijinhun
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 5.10 Subsystem:
Regression: No Bisected commit-id:
Attachments: reverse this commit before compile solve the problem
fix hci0: don't support firmware rome error
fix hci0: warn only if high rome

Description Antonio 2020-12-14 08:50:05 UTC
after upgrade kernel to version 5.10:

kernel: Bluetooth: hci0: don't support firmware rome 0x31010000

previous kernel 5.9.13 was ok.
Comment 1 Antonio 2020-12-14 12:17:35 UTC
For test: if I replace the entire drivers/bluetooth subdir with that of kernel 5.9.14 and recompile, then it works again.

This means that it depends on some modification introduced.
Comment 2 Antonio 2020-12-14 14:39:51 UTC
Seems to be enough keep only the previous drivers/bluetooth/btusb.c file
Comment 3 Antonio 2020-12-14 20:07:42 UTC
The problem seems to be this commit:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/btusb.c?h=v5.10&id=b40f58b973865ee98ead884d2bdc7880b896ddb8

"Bluetooth: btusb: Add Qualcomm Bluetooth SoC WCN6855 support"

Removing this commit solves the problem (for me).

---

My notebook is:
- Notebook X555LN (i7-4510U)
- Qualcomm Atheros QCA9565/AR9565 Wireless Network Adapter (rev 01)

Thanks
Comment 4 Lorenzo N 2020-12-24 11:07:09 UTC
Same here.

With 5.9.16 it works fine

I have an atheros ar3012 (bluetooth chipset) with kernel 5.10.2

sudo dmesg | grep hci0                                                   
[    9.739696] Bluetooth: hci0: don't support firmware rome 0x1020200

 >>> lsusb                                                                    
Bus 001 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
Bus 001 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 005: ID 0bda:0139 Realtek Semiconductor Corp. RTS5139 Card Reader Controller
Bus 002 Device 004: ID 04f2:b3d8 Chicony Electronics Co., Ltd USB2.0 HD UVC WebCam
Bus 002 Device 006: ID 13d3:3402 IMC Networks Bluetooth USB Host Controller
Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Comment 5 Lorenzo N 2020-12-24 13:36:51 UTC
(In reply to anthony from comment #2)
> Seems to be enough keep only the previous drivers/bluetooth/btusb.c file

Yep, from what I have understood that's the file that needs to be edited.
Comment 6 Antonio 2020-12-24 13:56:39 UTC
Created attachment 294329 [details]
reverse this commit before compile solve the problem

before compile:

patch -R -p1 < commit-b560a208cd.contropatch
Comment 7 Antonio 2020-12-24 14:00:19 UTC
(In reply to Lorenzo N from comment #5)
> (In reply to anthony from comment #2)
> > Seems to be enough keep only the previous drivers/bluetooth/btusb.c file
> 
> Yep, from what I have understood that's the file that needs to be edited.

before compiling try to revert the commit (see above), for me it worked on 5.10.x kernels
Comment 8 Lorenzo N 2020-12-24 17:00:55 UTC
(In reply to anthony from comment #7)
> (In reply to Lorenzo N from comment #5)
> > (In reply to anthony from comment #2)
> > > Seems to be enough keep only the previous drivers/bluetooth/btusb.c file
> > 
> > Yep, from what I have understood that's the file that needs to be edited.
> 
> before compiling try to revert the commit (see above), for me it worked on
> 5.10.x kernels

Glad it did. I'll see if this fix will be implemented. Otherwise I'll stick with 5.9 till I'll be forced to update :)
Comment 9 souravdas 2020-12-28 13:32:16 UTC
same problem with 5.10.2 and 5.10.3. I will stick to 5.9(arch-linux) until its fixed.
Comment 10 Bradley Jarvis 2020-12-29 10:50:10 UTC
Created attachment 294393 [details]
fix hci0: don't support firmware rome error

Avoid returning error code when bluetooth version match is not made from qca_devices_table and version high is set.

This reverts an error check that was removed to support WCN6855 which does have the high version set. The fix is to move the check after the table is scanned and no version match is made.

This fix will still produce the error message for example (for ATK3K 13d3:3402 IMC Networks Bluetooth USB Host Controller)

Bluetooth: hci0: don't support firmware rome 0x1020200

But the bluetooth hardware still works as it used to
Comment 11 Antonio 2020-12-30 09:15:40 UTC
(In reply to Bradley Jarvis from comment #10)
> Created attachment 294393 [details]
> fix hci0: don't support firmware rome error
> 
> Avoid returning error code when bluetooth version match is not made from
> qca_devices_table and version high is set.
> 
> This reverts an error check that was removed to support WCN6855 which does
> have the high version set. The fix is to move the check after the table is
> scanned and no version match is made.
> 
> This fix will still produce the error message for example (for ATK3K
> 13d3:3402 IMC Networks Bluetooth USB Host Controller)
> 
> Bluetooth: hci0: don't support firmware rome 0x1020200
> 
> But the bluetooth hardware still works as it used to


I have tried it (kernel 5.10.3), I confirm that it works.
Comment 12 Tianhao Chai 2021-01-04 03:32:45 UTC
*** Bug 211013 has been marked as a duplicate of this bug. ***
Comment 13 elbreton 2021-01-16 16:52:47 UTC
I have the same issue with the Kernel 5.10.6/7 on my laptop with the 5.9.16 it's work
Comment 14 Rob 2021-01-19 04:34:46 UTC
I have the same issue also. 

Fedora 33, kernel 5.10.6 & 5.10.7
Qualcomm Atheros AR9462 Wireless Network / Bluetooth Adapter

Rolling back to 5.9.16 resolved the issue.
Comment 15 Drew Simmonds 2021-01-19 23:57:23 UTC
Can confirm on Debian Buster as well.  Upgrading to 5.10.4 on Testing causes Bluetooth to fail to enable, reverting to 5.9.15 on Backports solves the issue.

It would be very nice if there was a way to fix this not involving recompiling the kernel.
Comment 16 jefferson 2021-01-20 15:17:29 UTC
Install the kernel https://mirror.netzspielplatz.de/manjaro/packages/pool/overlay/linux419-4.19.169-1-x86_64.pkg.tar.zst $ sudo pacman -U linux419-4.19.169-1-x86_64 .pkg.tar.zst and reconfigure grub.cfg $ sudo grub-mkconfig -o /boot/grub/grub.cfg. This kernel works well.
Comment 17 BxOxSxS 2021-01-21 08:56:57 UTC
(In reply to jefferson from comment #16)
> Install the kernel
> https://mirror.netzspielplatz.de/manjaro/packages/pool/overlay/linux419-4.19.
> 169-1-x86_64.pkg.tar.zst $ sudo pacman -U linux419-4.19.169-1-x86_64
> .pkg.tar.zst and reconfigure grub.cfg $ sudo grub-mkconfig -o
> /boot/grub/grub.cfg. This kernel works well.

All kernel below 5.10 works well. You dont need to use 419, you can use eg 5.9. Also if you are using manjaro you can just use MHWD or pacman -S to manage kernels
Comment 18 Steeve McCauley 2021-01-22 11:28:02 UTC
(In reply to Bradley Jarvis from comment #10)
> Created attachment 294393 [details]
> fix hci0: don't support firmware rome error
> 
> Avoid returning error code when bluetooth version match is not made from


Can confirm that this issue exists on fedora 33 5.10.x kernel for atheros usb bluetooth.  Installing a kernel.org kernel with Bradley's fix solves the problem.
The adaptor shows up as Lite-On Technologoy Corp: Bus 001 Device 004: ID 04ca:3006 Lite-On Technology Corp.
Comment 19 Steeve McCauley 2021-01-22 12:11:07 UTC
This is the firmware rome for the lite-on adaptor Bluetooth: hci0: don't support firmware rome 0x11020000
Comment 20 Hans de Goede 2021-01-22 13:50:18 UTC
Has anyone send a (direct) email to Rocky Liao, the author of the troublesome "Bluetooth: btusb: Add Qualcomm Bluetooth SoC WCN6855 support" commit about this?

That is likely the fastest way to get this resolved.
Comment 21 BxOxSxS 2021-01-26 10:29:14 UTC
(In reply to Hans de Goede from comment #20)
> Has anyone send a (direct) email to Rocky Liao, the author of the
> troublesome "Bluetooth: btusb: Add Qualcomm Bluetooth SoC WCN6855 support"
> commit about this?
> 
> That is likely the fastest way to get this resolved.

It's in the commit author:
rjliao@codeaurora.org
Comment 22 Moreno G 2021-01-26 16:52:13 UTC
Created attachment 294865 [details]
fix hci0: warn only if high rome

(In reply to Bradley Jarvis from comment #10)
> Created attachment 294393 [details]
> fix hci0: don't support firmware rome error
> 
> Avoid returning error code when bluetooth version match is not made from
> qca_devices_table and version high is set.
> 
> This reverts an error check that was removed to support WCN6855 which does
> have the high version set. The fix is to move the check after the table is
> scanned and no version match is made.
> 
> This fix will still produce the error message for example (for ATK3K
> 13d3:3402 IMC Networks Bluetooth USB Host Controller)
> 
> Bluetooth: hci0: don't support firmware rome 0x1020200
> 
> But the bluetooth hardware still works as it used to

Like Bradley Jarvis' fix, but it won't produce an error message but a warning message for a possible incompatibility. Reverted the "don't care" comments for other high ROM versions. Just my 2 cents
Comment 23 igorog 2021-01-31 02:11:23 UTC
Bluetooth: hci0: don't support firmware rome 0x1020200
>--------------------------------------------------------
Arch Linux 5.10.11-arch1-1
>03:00.0 Network controller: Qualcomm Atheros AR9485 Wireless Network Adapter
>(rev 01)
Comment 24 igorog 2021-01-31 02:20:32 UTC
 "fix hci0: don't support firmware rome error" - This patch fixes the problem. But I would not like to rebuild the bluetooth module with every kernel updatе.  
>Is a fix for this bug planned?
Comment 25 Hans de Goede 2021-01-31 13:36:06 UTC
> Is a fix for this bug planned?

As I've mentioned before someone needs to report this to the upstream bluetooth developers. Please send an email to:

Rocky Liao <rjliao@codeaurora.org>

Who is the author of the troublesome "Bluetooth: btusb: Add Qualcomm Bluetooth SoC WCN6855 support" commit and add:

linux-bluetooth@vger.kernel.org

To the Cc of this email.
Comment 26 Steeve McCauley 2021-01-31 14:18:47 UTC
I'm composing something now.
Comment 27 igorog 2021-02-01 01:21:30 UTC
linux-bluetooth@vger.kernel.org - not available
Comment 28 Drew Simmonds 2021-02-12 14:36:21 UTC
Can confirm this is still an issue in 5.10.15.
Comment 29 igorog 2021-02-13 01:08:47 UTC
I do not understand! This bug is already two months old. Before everything worked fine, but someone broke, and is not going to fix it. What's the matter?
Comment 30 Salvatore Bonaccorso 2021-02-13 07:04:21 UTC
The fix is pending in bluetooth-next three according to https://lore.kernel.org/linux-bluetooth/CA2C8796-11CA-4E6F-A603-AE764516C850@holtmann.org/
Comment 31 Salvatore Bonaccorso 2021-02-13 07:08:34 UTC
Hi 

On Tue, Dec 29, 2020 at 10:50:10AM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=210681
> 
> Bradley Jarvis (brad@pocketinnovations.com.au) changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |brad@pocketinnovations.com.
>                    |                            |au
> 
> --- Comment #10 from Bradley Jarvis (brad@pocketinnovations.com.au) ---
> Created attachment 294393 [details]
>   --> https://bugzilla.kernel.org/attachment.cgi?id=294393&action=edit
> fix hci0: don't support firmware rome error
> 
> Avoid returning error code when bluetooth version match is not made from
> qca_devices_table and version high is set.
> 
> This reverts an error check that was removed to support WCN6855 which does
> have
> the high version set. The fix is to move the check after the table is scanned
> and no version match is made.
> 
> This fix will still produce the error message for example (for ATK3K
> 13d3:3402
> IMC Networks Bluetooth USB Host Controller)
> 
> Bluetooth: hci0: don't support firmware rome 0x1020200
> 
> But the bluetooth hardware still works as it used to

Several people have reported that since b40f58b97386 ("Bluetooth:
btusb: Add Qualcomm Bluetooth SoC WCN6855 support") they have issues
with their Bluetooth adapter stopping working. It was reported at
bugzilla[1].

Bradley Jarvis posted/attached a patch which seems to resolve the
issue, Moreno has added an alternative patch.

 [1] https://bugzilla.kernel.org/show_bug.cgi?id=210681

But there is another report at

 [2] https://bugzilla.kernel.org/show_bug.cgi?id=211571

and that last one was applied to bluetooth-next tree according to
https://lore.kernel.org/linux-bluetooth/CA2C8796-11CA-4E6F-A603-AE764516C850@holtmann.org/

Regards,
Salvatore
Comment 32 karamba 2021-02-14 11:02:00 UTC
This issue also occurs in kernel 5.10.16-arch1-1.

usbcore: registered new interface driver btusb
Bluetooth: hci0: don't support firmware rome 0x11020000
Comment 33 igorog 2021-02-15 00:14:51 UTC
(In reply to karamba from comment #32)
> This issue also occurs in kernel 5.10.16-arch1-1.
> 
> usbcore: registered new interface driver btusb
> Bluetooth: hci0: don't support firmware rome 0x11020000

I confirm
Comment 34 Vitaly K 2021-02-15 04:00:11 UTC
Confirming the problem. Qualcomm Atheros QCA9565 / AR9565 adapter.

Error: hci0: don't support firmware rome 0x31010000
Comment 35 Kirill Raevskiy 2021-02-16 03:57:12 UTC
The problem still exists even in 5.11 kernel:

root@srv /home/krik # uname -a
Linux srv 5.11.0-zen1-1-zen #1 ZEN SMP PREEMPT Mon, 15 Feb 2021 23:08:28 +0000 x86_64 GNU/Linu
root@srv /home/krik # dmesg | grep hci0   
[    5.641967] Bluetooth: hci0: don't support firmware rome 0x11020000
Comment 36 sergeyfd 2021-02-17 21:32:30 UTC
Same on Fedora 33:
Linux boss 5.10.15-200.fc33.x86_64 #1 SMP Wed Feb 10 17:46:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@boss lib]# dmesg | grep hci0
[    4.227106] Bluetooth: hci0: don't support firmware rome 0x11020000
Comment 37 Drew Simmonds 2021-02-17 21:54:59 UTC
Arch has now moved their linux-lts kernel to 5.10.16, which means this problem exists in the main linux and now the -LTS kernel as well.

I wish we had a timeline on the fix coming into the main tree.
Comment 38 Hans de Goede 2021-02-18 13:53:42 UTC
Unfortunately it is taking quite a long time to get the fix for this into Linus' tree and the stable rules say that only fixes which are in Linus' tree can be cherry-picked into the stable series.

For Fedora users I've added the upstream patch:
https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=234f414efd1164786269849b4fbb533d6c9cdbbf

Fixing this as a downstream patch for the Fedora kernels. So this should be fixed in the next F32 and F33 kernel builds, which will likely be the 5.10.18 builds.
Comment 39 Gobinda Joy 2021-02-19 12:18:00 UTC
Same on Fedora 33:
Linux daemon.home.bd 5.10.16-200.fc33.x86_64 #1 SMP Sun Feb 14 03:02:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
gj86@daemon:~$ dmesg | grep hci0
[    4.974879] Bluetooth: hci0: don't support firmware rome 0x11020000
Comment 40 Nando 2021-02-22 00:22:29 UTC
Notebook Asus N76V
lspci
03:00.0 Network controller: Qualcomm Atheros AR9485 Wireless Network Adapter (rev 01)
Bus 001 Device 009: ID 13d3:3362 IMC Networks Atheros AR3012 Bluetooth 4.0 Adapter
   12.120238] Bluetooth: hci0: don't support firmware rome 0x1020200
uname -r
5.10.0-14-generic

At the installation all runs well, after the last update the bluetooth bugs
Comment 41 karamba 2021-02-24 08:07:29 UTC
This bug is fixed in kernel 5.11.1-arch1-1 


$ bluetoothctl list
Controller XX:XX:XX:XX:XX:XX lenovo [default]
Comment 42 jefferson 2021-02-24 12:37:34 UTC
(In reply to karamba from comment #41)
> This bug is fixed in kernel 5.11.1-arch1-1 
> 
> 
> $ bluetoothctl list
> Controller XX:XX:XX:XX:XX:XX lenovo [default]

Confirmed, fixed...
Comment 43 Antonio 2021-02-24 14:44:26 UTC
kernel 5.11.1: problem still exists, need to patch.
Comment 44 Drew Simmonds 2021-02-24 15:09:47 UTC
(In reply to karamba from comment #41)
> This bug is fixed in kernel 5.11.1-arch1-1 
> 
> 
> $ bluetoothctl list
> Controller XX:XX:XX:XX:XX:XX lenovo [default]

This is also fixed for me using this kernel
Comment 45 Steeve McCauley 2021-02-24 19:31:33 UTC
Not fixed for me using kernel.org 5.11.1


$ sudo journalctl -b | grep "firmware rome"
Feb 24 14:20:05 toast kernel: Bluetooth: hci0: don't support firmware rome 0x11020000
Comment 46 igorog 2021-02-25 02:02:54 UTC
Good news. This bug is fixed in kernel 5.11.1-arch1-1 for me.
Comment 47 Drew Simmonds 2021-02-25 02:08:26 UTC
(In reply to igorog from comment #46)
> Good news. This bug is fixed in kernel 5.11.1-arch1-1 for me.

Looks like the Arch maintainers pulled this fix into their first 5.11.1 build.

https://git.archlinux.org/linux.git/log/?h=v5.11.1-arch1
Comment 48 igorog 2021-02-25 02:32:38 UTC
But, at the same time, the lts-kernel (5.10.18-1-lts), of course, was not fixed.
Comment 49 Max Fedotov 2021-02-25 08:49:27 UTC
Fedora 33 5.10.18-200 fixed.
Comment 50 Antonio 2021-02-26 14:35:13 UTC
kernel 5.11.2: the problem has been fixed.

Thanks.
Comment 51 Steeve McCauley 2021-02-27 13:17:59 UTC
(In reply to Antonio from comment #50)
> kernel 5.11.2: the problem has been fixed.
> 
> Thanks.

Definitely fixed in 5.11.2.
Comment 52 Gobinda Joy 2021-03-02 18:40:37 UTC
(In reply to Max Fedotov from comment #49)
> Fedora 33 5.10.18-200 fixed.

Confirmed.

Fixed in Fedora Kernel 5.10.18-200.fc33.x86_64