]> git.ipfire.org Git - thirdparty/linux-firmware.git/commitdiff
rtl_bt: Add separate config for RLT8723CS Bluetooth part
authorVasily Khoruzhick <anarsoul@gmail.com>
Mon, 6 Jan 2025 06:44:53 +0000 (22:44 -0800)
committerMario Limonciello <superm1@gmail.com>
Mon, 6 Jan 2025 22:08:02 +0000 (22:08 +0000)
While RTL8723CS is able to start with RTL8723BS config, it doesn't
actually work. Powering on device with "power on" in bluetoothctl
and enabling scan via "scan on" doesn't find a single device.

Unfortunately, RealtekBluetoothUartPackage_2.17.119.0525 doesn't have
a config for RTL8723CS, so we have to resort to a known-working config
from armbian firmware repository [1]. Their commit history doesn't mention
its origin.

Closer inspection of the config reveals that indeed 8723CS uses different
entry offsets, e.g. 8723BT:

55ab 2387 # Magic
3a00 # Total len
2b00 06 0000 00aa bbcc # Offset = 0x002b, len = 0x06
f400 03 0100 00 # Offset = 0x00f4, len = 0x03
f800 02 8500 # Offset = 0x00f8, len = 0x02
2700 01 67 # Offset = 0x0027, len = 0x01
0c00 10 0280 9204 50c5 ea19 e11b f1af 5f01 a40b # Offset = 0x000c, len = 0x10
df01 01 01 # Offset = 0x01df, len = 0x01
fe00 01 01 # Offset = 0x00fe, len = 0x01
e301 01 00 # Offset = 0x01e3, len = 0x01
0000 00 # Offset = 0x0000, len = 0x00

8723CS:

55ab 2387 # Magic
3900 # Total len
f400 01 01 # Offset = 0x00f4, len = 0x01
f600 02 8100 # Offset = 0x00f6, len = 0x02
fa00 02 1280 # Offset = 0x00fa, len = 0x02
0c00 10 0280 9204 50c5 ea19 e11b fdaf 5f01 a40b # Offset = 0x000c, len = 0x10
2700 01 63 # Offset = 0x0027, len = 0x1
0001 01 01 # Offset = 0x0100, len = 01
5b01 04 0b0b0b0a # Offset = 0x015b, len = 0x04
4200 02 4150 # Offset = 0x0042, len = 0x02
e000 01 42 # Offset = 0x00e0, len = 0x01

The only known devices with mainline Linux support that use 8723CS are
Pine64's PineTab, PinePhone and Pinebook, all of them work with this config.

[1] https://github.com/armbian/firmware

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
WHENCE
rtl_bt/rtl8723cs_xx_config.bin [new file with mode: 0644]

diff --git a/WHENCE b/WHENCE
index 72771022b25978ce9869b9a4e81880be2bcee086..e0c5a0d7369f545104c6097673079bc1897d2ab0 100644 (file)
--- a/WHENCE
+++ b/WHENCE
@@ -4212,7 +4212,7 @@ File: rtl_bt/rtl8723bs_config.bin
 Link: rtl_bt/rtl8723bs_config-OBDA8723.bin -> rtl8723bs_config.bin
 Link: rtl_bt/rtl8723bs_config-OBDA0623.bin -> rtl8723bs_config.bin
 File: rtl_bt/rtl8723cs_xx_fw.bin
-Link: rtl_bt/rtl8723cs_xx_config.bin -> rtl8723bs_config.bin
+File: rtl_bt/rtl8723cs_xx_config.bin
 File: rtl_bt/rtl8761a_fw.bin
 File: rtl_bt/rtl8761b_fw.bin
 File: rtl_bt/rtl8761b_config.bin
diff --git a/rtl_bt/rtl8723cs_xx_config.bin b/rtl_bt/rtl8723cs_xx_config.bin
new file mode 100644 (file)
index 0000000..0f507ed
Binary files /dev/null and b/rtl_bt/rtl8723cs_xx_config.bin differ