[PATCH] Bluetooth: btrtl: Set VsMsftOpCode based on device table
From: Marcel Holtmann <marcel@holtmann.org>
Date: 2021-09-28 18:10:55
Subsystem:
bluetooth drivers, the rest · Maintainers:
Marcel Holtmann, Luiz Augusto von Dentz, Linus Torvalds
The device table already has the option to hold device specific details and thus include the support for Microsoft extensions there as well. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> --- drivers/bluetooth/btrtl.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
index 5a1090b7c69a..22b84405c257 100644
--- a/drivers/bluetooth/btrtl.c
+++ b/drivers/bluetooth/btrtl.c@@ -59,6 +59,7 @@ struct id_table { __u8 hci_bus; bool config_needed; bool has_rom_version; + bool has_msft_ext; char *fw_name; char *cfg_name; };
@@ -135,6 +136,7 @@ static const struct id_table ic_id_table[] = { { IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_UART), .config_needed = false, .has_rom_version = true, + .has_msft_ext = true, .fw_name = "rtl_bt/rtl8761b_fw.bin", .cfg_name = "rtl_bt/rtl8761b_config" },
@@ -149,6 +151,7 @@ static const struct id_table ic_id_table[] = { { IC_INFO(RTL_ROM_LMP_8822B, 0xc, 0xa, HCI_UART), .config_needed = true, .has_rom_version = true, + .has_msft_ext = true, .fw_name = "rtl_bt/rtl8822cs_fw.bin", .cfg_name = "rtl_bt/rtl8822cs_config" },
@@ -156,6 +159,7 @@ static const struct id_table ic_id_table[] = { { IC_INFO(RTL_ROM_LMP_8822B, 0xc, 0xa, HCI_USB), .config_needed = false, .has_rom_version = true, + .has_msft_ext = true, .fw_name = "rtl_bt/rtl8822cu_fw.bin", .cfg_name = "rtl_bt/rtl8822cu_config" },
@@ -163,6 +167,7 @@ static const struct id_table ic_id_table[] = { { IC_INFO(RTL_ROM_LMP_8822B, 0xb, 0x7, HCI_USB), .config_needed = true, .has_rom_version = true, + .has_msft_ext = true, .fw_name = "rtl_bt/rtl8822b_fw.bin", .cfg_name = "rtl_bt/rtl8822b_config" },
@@ -170,6 +175,7 @@ static const struct id_table ic_id_table[] = { { IC_INFO(RTL_ROM_LMP_8852A, 0xa, 0xb, HCI_USB), .config_needed = false, .has_rom_version = true, + .has_msft_ext = true, .fw_name = "rtl_bt/rtl8852au_fw.bin", .cfg_name = "rtl_bt/rtl8852au_config" }, };
@@ -684,12 +690,8 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev, /* The following chips supports the Microsoft vendor extension, * therefore set the corresponding VsMsftOpCode. */ - switch (lmp_subver) { - case RTL_ROM_LMP_8822B: - case RTL_ROM_LMP_8852A: + if (btrtl_dev->ic_info->has_msft_ext) hci_set_msft_opcode(hdev, 0xFCF0); - break; - } return btrtl_dev;
--
2.31.1