2022-03-11 05:54:01

by tangmeng

[permalink] [raw]
Subject: [PATCH] Bluetooth: btrtl: btmrvl: Fix firmware filename for rtl chipset

Firmware for rtl chipset is as part of the linux-firmware repository
in dir linux-firmware/rtl_bt. Today, the rtl8761a_config,
rtl8821a_config, rtl8723b_config and rtl8723bs_config files are used
in btrtl, but it doesn't actually exist, which causes errors like:

bluetooth: Direct firmware load for rtl_bt/rtl8821a_config.bin
failed with error -2

According to the files in the rtl_bt directory in the Linux firmware,
fixes the driver to load correct firmware file for rtl.

Signed-off-by: Meng Tang <[email protected]>
---
drivers/bluetooth/btrtl.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
index c2030f7e25b4..e3cfe0dff07d 100644
--- a/drivers/bluetooth/btrtl.c
+++ b/drivers/bluetooth/btrtl.c
@@ -88,14 +88,14 @@ static const struct id_table ic_id_table[] = {
.config_needed = true,
.has_rom_version = true,
.fw_name = "rtl_bt/rtl8723bs_fw.bin",
- .cfg_name = "rtl_bt/rtl8723bs_config" },
+ .cfg_name = "rtl_bt/rtl8723bs_config-OBDA8723" },

/* 8723B */
{ IC_INFO(RTL_ROM_LMP_8723B, 0xb, 0x6, HCI_USB),
.config_needed = false,
.has_rom_version = true,
.fw_name = "rtl_bt/rtl8723b_fw.bin",
- .cfg_name = "rtl_bt/rtl8723b_config" },
+ .cfg_name = NULL },

/* 8723D */
{ IC_INFO(RTL_ROM_LMP_8723B, 0xd, 0x8, HCI_USB),
@@ -116,7 +116,7 @@ static const struct id_table ic_id_table[] = {
.config_needed = false,
.has_rom_version = true,
.fw_name = "rtl_bt/rtl8821a_fw.bin",
- .cfg_name = "rtl_bt/rtl8821a_config" },
+ .cfg_name = NULL },

/* 8821C */
{ IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_USB),
@@ -131,7 +131,7 @@ static const struct id_table ic_id_table[] = {
.config_needed = false,
.has_rom_version = true,
.fw_name = "rtl_bt/rtl8761a_fw.bin",
- .cfg_name = "rtl_bt/rtl8761a_config" },
+ .cfg_name = NULL },

/* 8761B */
{ IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_UART),
@@ -921,15 +921,12 @@ MODULE_VERSION(VERSION);
MODULE_LICENSE("GPL");
MODULE_FIRMWARE("rtl_bt/rtl8723a_fw.bin");
MODULE_FIRMWARE("rtl_bt/rtl8723b_fw.bin");
-MODULE_FIRMWARE("rtl_bt/rtl8723b_config.bin");
MODULE_FIRMWARE("rtl_bt/rtl8723bs_fw.bin");
-MODULE_FIRMWARE("rtl_bt/rtl8723bs_config.bin");
+MODULE_FIRMWARE("rtl_bt/rtl8723bs_config-OBDA8723.bin");
MODULE_FIRMWARE("rtl_bt/rtl8723ds_fw.bin");
MODULE_FIRMWARE("rtl_bt/rtl8723ds_config.bin");
MODULE_FIRMWARE("rtl_bt/rtl8761a_fw.bin");
-MODULE_FIRMWARE("rtl_bt/rtl8761a_config.bin");
MODULE_FIRMWARE("rtl_bt/rtl8821a_fw.bin");
-MODULE_FIRMWARE("rtl_bt/rtl8821a_config.bin");
MODULE_FIRMWARE("rtl_bt/rtl8822b_fw.bin");
MODULE_FIRMWARE("rtl_bt/rtl8822b_config.bin");
MODULE_FIRMWARE("rtl_bt/rtl8852au_fw.bin");
--
2.20.1




2022-03-11 21:35:24

by bluez.test.bot

[permalink] [raw]
Subject: RE: Bluetooth: btrtl: btmrvl: Fix firmware filename for rtl chipset

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=622476

---Test result---

Test Summary:
CheckPatch PASS 1.65 seconds
GitLint PASS 1.02 seconds
SubjectPrefix PASS 0.85 seconds
BuildKernel PASS 30.72 seconds
BuildKernel32 PASS 27.17 seconds
Incremental Build with patchesPASS 36.75 seconds
TestRunner: Setup PASS 472.62 seconds
TestRunner: l2cap-tester PASS 15.49 seconds
TestRunner: bnep-tester PASS 6.11 seconds
TestRunner: mgmt-tester PASS 98.84 seconds
TestRunner: rfcomm-tester PASS 7.81 seconds
TestRunner: sco-tester PASS 7.49 seconds
TestRunner: smp-tester PASS 7.23 seconds
TestRunner: userchan-tester PASS 5.82 seconds



---
Regards,
Linux Bluetooth

2022-03-14 21:14:58

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: btrtl: btmrvl: Fix firmware filename for rtl chipset

Hi Meng,

> Firmware for rtl chipset is as part of the linux-firmware repository
> in dir linux-firmware/rtl_bt. Today, the rtl8761a_config,
> rtl8821a_config, rtl8723b_config and rtl8723bs_config files are used
> in btrtl, but it doesn't actually exist, which causes errors like:
>
> bluetooth: Direct firmware load for rtl_bt/rtl8821a_config.bin
> failed with error -2
>
> According to the files in the rtl_bt directory in the Linux firmware,
> fixes the driver to load correct firmware file for rtl.
>
> Signed-off-by: Meng Tang <[email protected]>
> ---
> drivers/bluetooth/btrtl.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
> index c2030f7e25b4..e3cfe0dff07d 100644
> --- a/drivers/bluetooth/btrtl.c
> +++ b/drivers/bluetooth/btrtl.c
> @@ -88,14 +88,14 @@ static const struct id_table ic_id_table[] = {
> .config_needed = true,
> .has_rom_version = true,
> .fw_name = "rtl_bt/rtl8723bs_fw.bin",
> - .cfg_name = "rtl_bt/rtl8723bs_config" },
> + .cfg_name = "rtl_bt/rtl8723bs_config-OBDA8723" },

this change is not explained.

>
> /* 8723B */
> { IC_INFO(RTL_ROM_LMP_8723B, 0xb, 0x6, HCI_USB),
> .config_needed = false,
> .has_rom_version = true,
> .fw_name = "rtl_bt/rtl8723b_fw.bin",
> - .cfg_name = "rtl_bt/rtl8723b_config" },
> + .cfg_name = NULL },

.config_needed is set to false. Then we better use a request_firmware version where the existence of the file is optional.

And even if we wanted to remove it (which would make the .config_needed obsolute), we are not doing a NULL assignment, we just remove the line.

>
> /* 8723D */
> { IC_INFO(RTL_ROM_LMP_8723B, 0xd, 0x8, HCI_USB),
> @@ -116,7 +116,7 @@ static const struct id_table ic_id_table[] = {
> .config_needed = false,
> .has_rom_version = true,
> .fw_name = "rtl_bt/rtl8821a_fw.bin",
> - .cfg_name = "rtl_bt/rtl8821a_config" },
> + .cfg_name = NULL },
>
> /* 8821C */
> { IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_USB),
> @@ -131,7 +131,7 @@ static const struct id_table ic_id_table[] = {
> .config_needed = false,
> .has_rom_version = true,
> .fw_name = "rtl_bt/rtl8761a_fw.bin",
> - .cfg_name = "rtl_bt/rtl8761a_config" },
> + .cfg_name = NULL },
>
> /* 8761B */
> { IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_UART),
> @@ -921,15 +921,12 @@ MODULE_VERSION(VERSION);
> MODULE_LICENSE("GPL");
> MODULE_FIRMWARE("rtl_bt/rtl8723a_fw.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8723b_fw.bin");
> -MODULE_FIRMWARE("rtl_bt/rtl8723b_config.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8723bs_fw.bin");
> -MODULE_FIRMWARE("rtl_bt/rtl8723bs_config.bin");
> +MODULE_FIRMWARE("rtl_bt/rtl8723bs_config-OBDA8723.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8723ds_fw.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8723ds_config.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8761a_fw.bin");
> -MODULE_FIRMWARE("rtl_bt/rtl8761a_config.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8821a_fw.bin");
> -MODULE_FIRMWARE("rtl_bt/rtl8821a_config.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8822b_fw.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8822b_config.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8852au_fw.bin");

Regards

Marcel