Bug 214287

Summary: Bluetooth firmware rtl8671bu_fw.bin fails to load
Product: Drivers Reporter: Tadej Obrstar (tadej.obrstar)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: RESOLVED ANSWERED    
Severity: blocking    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.14 Subsystem:
Regression: No Bisected commit-id:

Description Tadej Obrstar 2021-09-02 13:56:14 UTC
After upgrading to newest kernel, firmware for the usb bluetooth fails to load.

dmesg:
[    3.457128] usb 1-5.4: Product: Bluetooth Radio
[    3.467018] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
[    3.467995] Bluetooth: hci0: RTL: rom_version status=0 version=1
[    3.467997] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_fw.bin
[    3.468355] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761bu_fw.bin failed with error -2
[    3.468356] Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8761bu_fw.bin not found

lsusb:
Bus 001 Device 009: ID 0bda:2550 Realtek Semiconductor Corp. Bluetooth Radio.

The firmware is built into the kernel (with a few others). It loaded successfuly in kernel 5.13. The other firmware files (intel microcode, amd poalris) still loads fine. Config file and firmware path hasn't changed from previous version.
Comment 1 Tadej Obrstar 2021-09-24 10:26:59 UTC
I finaly got some time to look into this more. After bisecting the kernel I learned that after tripple checking the spelling I should quadruple check it too.

I tracked the problem down to this commit:
9fd2e2949b43dea869f7fce0f8f51df44f635d59 is the first bad commit
commit 9fd2e2949b43dea869f7fce0f8f51df44f635d59
Author: Joakim Tjernlund <Joakim.Tjernlund@infinera.com>
Date:   Fri May 28 17:26:44 2021 +0200

    Bluetooth: btrtl: rename USB fw for RTL8761

    According Realteks own BT drivers firmware RTL8761B is for UART
    and RTL8761BU is for USB.

    Change existing 8761B to UART and add an 8761BU entry for USB

    Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@infinera.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

So after changing the name of the firmware blob to be built into the kernel from rtl8761b_fw.bin to rtl8761bu_fw.bin everything works again as expected.