From 2bb8fb26599302c9cbc69a5aff329a8559c91e48 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 8 Aug 2024 15:17:24 +0100 Subject: [PATCH 1/3] rename rtl8723bs_config-OBDA8723.bin -> rtl_bt/rtl8723bs_config.bin The setting works for numerous rtl8723 series of devices so let's use the default naming so it works by default everywhere and link the device specific names to the generic config. Signed-off-by: Peter Robinson --- WHENCE | 5 +++-- ...3bs_config-OBDA8723.bin => rtl8723bs_config.bin} | Bin 2 files changed, 3 insertions(+), 2 deletions(-) rename rtl_bt/{rtl8723bs_config-OBDA8723.bin => rtl8723bs_config.bin} (100%) diff --git a/WHENCE b/WHENCE index a7c1f880..7a015a31 100644 --- a/WHENCE +++ b/WHENCE @@ -4061,8 +4061,9 @@ File: rtl_bt/rtl8192eu_fw.bin File: rtl_bt/rtl8723a_fw.bin File: rtl_bt/rtl8723b_fw.bin File: rtl_bt/rtl8723bs_fw.bin -File: rtl_bt/rtl8723bs_config-OBDA8723.bin -Link: rtl_bt/rtl8723bs_config-OBDA0623.bin -> rtl8723bs_config-OBDA8723.bin +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/rtl8761a_fw.bin File: rtl_bt/rtl8761b_fw.bin File: rtl_bt/rtl8761b_config.bin diff --git a/rtl_bt/rtl8723bs_config-OBDA8723.bin b/rtl_bt/rtl8723bs_config.bin similarity index 100% rename from rtl_bt/rtl8723bs_config-OBDA8723.bin rename to rtl_bt/rtl8723bs_config.bin From 5a017996c6de64ebd7f7c60e1233a45ba04086ca Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 8 Aug 2024 16:03:16 +0100 Subject: [PATCH 2/3] rtl_bt: de-dupe identical config.bin files A number of the rtl_bt files are identical according to sha256sum so let's de-dupe them, and also remove a couple of entries in the WHENCE file that are duplicates while we're at it. Signed-off-by: Peter Robinson --- WHENCE | 20 ++++++++------------ rtl_bt/rtl8723d_config.bin | Bin 10 -> 0 bytes rtl_bt/rtl8821cs_config.bin | Bin 25 -> 0 bytes rtl_bt/rtl8822cu_config.bin | Bin 6 -> 0 bytes rtl_bt/rtl8851bu_config.bin | Bin 6 -> 0 bytes rtl_bt/rtl8852au_config.bin | Bin 6 -> 0 bytes rtl_bt/rtl8852btu_config.bin | Bin 6 -> 0 bytes rtl_bt/rtl8852bu_config.bin | Bin 6 -> 0 bytes rtl_bt/rtl8852cu_config.bin | Bin 6 -> 0 bytes 9 files changed, 8 insertions(+), 12 deletions(-) delete mode 100644 rtl_bt/rtl8723d_config.bin delete mode 100644 rtl_bt/rtl8821cs_config.bin delete mode 100644 rtl_bt/rtl8822cu_config.bin delete mode 100644 rtl_bt/rtl8851bu_config.bin delete mode 100644 rtl_bt/rtl8852au_config.bin delete mode 100644 rtl_bt/rtl8852btu_config.bin delete mode 100644 rtl_bt/rtl8852bu_config.bin delete mode 100644 rtl_bt/rtl8852cu_config.bin diff --git a/WHENCE b/WHENCE index 7a015a31..eb199006 100644 --- a/WHENCE +++ b/WHENCE @@ -4075,26 +4075,26 @@ Link: rtl_bt/rtl8821a_config.bin -> rtl8821c_config.bin File: rtl_bt/rtl8822b_fw.bin File: rtl_bt/rtl8822b_config.bin File: rtl_bt/rtl8723d_fw.bin -File: rtl_bt/rtl8723d_config.bin +Link: rtl_bt/rtl8723d_config.bin -> rtl8821c_config.bin File: rtl_bt/rtl8821c_fw.bin File: rtl_bt/rtl8821c_config.bin File: rtl_bt/rtl8821cs_fw.bin -File: rtl_bt/rtl8821cs_config.bin +Link: rtl_bt/rtl8821cs_config.bin -> rtl8761b_config.bin File: rtl_bt/rtl8822cu_fw.bin -File: rtl_bt/rtl8822cu_config.bin +Link: rtl_bt/rtl8822cu_config.bin -> rtl8761bu_config.bin File: rtl_bt/rtl8822cs_fw.bin File: rtl_bt/rtl8822cs_config.bin File: rtl_bt/rtl8852au_fw.bin -File: rtl_bt/rtl8852au_config.bin +Link: rtl_bt/rtl8852au_config.bin -> rtl8761bu_config.bin File: rtl_bt/rtl8852bu_fw.bin -File: rtl_bt/rtl8852bu_config.bin +Link: rtl_bt/rtl8852bu_config.bin -> rtl8761bu_config.bin File: rtl_bt/rtl8852cu_fw.bin File: rtl_bt/rtl8852cu_fw_v2.bin -File: rtl_bt/rtl8852cu_config.bin +Link: rtl_bt/rtl8852cu_config.bin -> rtl8761bu_config.bin File: rtl_bt/rtl8851bu_fw.bin -File: rtl_bt/rtl8851bu_config.bin +Link: rtl_bt/rtl8851bu_config.bin -> rtl8761bu_config.bin File: rtl_bt/rtl8852btu_fw.bin -File: rtl_bt/rtl8852btu_config.bin +Link: rtl_bt/rtl8852btu_config.bin -> rtl8761bu_config.bin Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details. @@ -4103,10 +4103,6 @@ From https://github.com/troy-tan/driver_store Files rtl_bt/rtl8822b_* came directly from Realtek. These files are updated on April 14, 2017. -Found in vendor driver, 20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202.zip -File rtl_bt/rtl8761b_config.bin -File rtl_bt/rtl8761bu_config.bin - -------------------------------------------------------------------------- Driver: btmtk_usb - Bluetooth USB driver diff --git a/rtl_bt/rtl8723d_config.bin b/rtl_bt/rtl8723d_config.bin deleted file mode 100644 index bb15fcd4312379eb7d2ebc26ad2240dc87031faf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10 RcmWGtt=!JSaFc@x0+;{* diff --git a/rtl_bt/rtl8821cs_config.bin b/rtl_bt/rtl8821cs_config.bin deleted file mode 100644 index 99475ee3bad9502dca3dd92c38b47a229aecd36b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 hcmWGtt=ulmz{4QG)G&!9;OHyKhthx7$1^VB1^{HN2*CgV diff --git a/rtl_bt/rtl8822cu_config.bin b/rtl_bt/rtl8822cu_config.bin deleted file mode 100644 index 91d3f4402289e7b0efd395c7fcc8b4789465aba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmWGtt=!JQ000Mk0jmH2 diff --git a/rtl_bt/rtl8851bu_config.bin b/rtl_bt/rtl8851bu_config.bin deleted file mode 100644 index 91d3f4402289e7b0efd395c7fcc8b4789465aba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmWGtt=!JQ000Mk0jmH2 diff --git a/rtl_bt/rtl8852au_config.bin b/rtl_bt/rtl8852au_config.bin deleted file mode 100644 index 91d3f4402289e7b0efd395c7fcc8b4789465aba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmWGtt=!JQ000Mk0jmH2 diff --git a/rtl_bt/rtl8852btu_config.bin b/rtl_bt/rtl8852btu_config.bin deleted file mode 100644 index 91d3f4402289e7b0efd395c7fcc8b4789465aba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmWGtt=!JQ000Mk0jmH2 diff --git a/rtl_bt/rtl8852bu_config.bin b/rtl_bt/rtl8852bu_config.bin deleted file mode 100644 index 91d3f4402289e7b0efd395c7fcc8b4789465aba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmWGtt=!JQ000Mk0jmH2 diff --git a/rtl_bt/rtl8852cu_config.bin b/rtl_bt/rtl8852cu_config.bin deleted file mode 100644 index 91d3f4402289e7b0efd395c7fcc8b4789465aba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmWGtt=!JQ000Mk0jmH2 From ed9c1349f8ebae720f3572ad3e74af59bfe345d7 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 8 Aug 2024 16:08:24 +0100 Subject: [PATCH 3/3] rtl_bt: Add firmware file for the the RTL8723CS Bluetooth part These files come from the RealtekBluetoothUartPackage_2.17.119.0525 file which can be downloaded from realtek.com. The download is marked as version 1.0.245.3 / 05/08/2017 on the download page The added rtl_bt/rtl8723cs_xx_fw.bin file is called rtl8723c_mp_bt40_fw_asic_rom_patch.bin in the download. The configuration file for the RTL8723BS part also works for the CS variant so we add the appropriate link to use that. Cc: Ping-Ke Shih Signed-off-by: Peter Robinson --- WHENCE | 2 ++ rtl_bt/rtl8723cs_xx_fw.bin | Bin 0 -> 19732 bytes 2 files changed, 2 insertions(+) create mode 100644 rtl_bt/rtl8723cs_xx_fw.bin diff --git a/WHENCE b/WHENCE index eb199006..2a2c902e 100644 --- a/WHENCE +++ b/WHENCE @@ -4064,6 +4064,8 @@ File: rtl_bt/rtl8723bs_fw.bin 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/rtl8761a_fw.bin File: rtl_bt/rtl8761b_fw.bin File: rtl_bt/rtl8761b_config.bin diff --git a/rtl_bt/rtl8723cs_xx_fw.bin b/rtl_bt/rtl8723cs_xx_fw.bin new file mode 100644 index 0000000000000000000000000000000000000000..972087ad1710d340bb37c9b93d4b6d5837fccae3 GIT binary patch literal 19732 zcmcJ1dwf%6n*V!}lS|XIJt+kO7MiAjP>MoZ&{2`l7UYs5UeJmnCzNnXa!!GwEaQkC z(HV6t4i^u_<}0$v!Mts=7_Ng=&ZT-TZWzVFGcI5WHd z?6#lxoaemv^S;mhc~9
  • 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
    q@9k`B4WgU4w_<+RPi{8 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 TRO?C>rEhT^L+)e${15*hBp6*1 literal 0 HcmV?d00001