Bug 214287 - Bluetooth firmware rtl8671bu_fw.bin fails to load
Summary: Bluetooth firmware rtl8671bu_fw.bin fails to load
Status: RESOLVED ANSWERED
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P1 blocking
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-02 13:56 UTC by Tadej Obrstar
Modified: 2021-09-24 10:26 UTC (History)
0 users

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


Attachments

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.

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