29
29
#define RTL_ROM_LMP_8761A 0x8761
30
30
#define RTL_ROM_LMP_8822B 0x8822
31
31
#define RTL_ROM_LMP_8852A 0x8852
32
+ #define RTL_ROM_LMP_8851B 0x8851
32
33
#define RTL_CONFIG_MAGIC 0x8723ab55
33
34
34
35
#define IC_MATCH_FL_LMPSUBV (1 << 0)
@@ -65,6 +66,7 @@ enum btrtl_chip_id {
65
66
CHIP_ID_8852A = 18 ,
66
67
CHIP_ID_8852B = 20 ,
67
68
CHIP_ID_8852C = 25 ,
69
+ CHIP_ID_8851B = 36 ,
68
70
};
69
71
70
72
struct id_table {
@@ -271,6 +273,14 @@ static const struct id_table ic_id_table[] = {
271
273
.has_msft_ext = true,
272
274
.fw_name = "rtl_bt/rtl8852cu_fw.bin" ,
273
275
.cfg_name = "rtl_bt/rtl8852cu_config" },
276
+
277
+ /* 8851B */
278
+ { IC_INFO (RTL_ROM_LMP_8851B , 0xb , 0xc , HCI_USB ),
279
+ .config_needed = false,
280
+ .has_rom_version = true,
281
+ .has_msft_ext = false,
282
+ .fw_name = "rtl_bt/rtl8851bu_fw.bin" ,
283
+ .cfg_name = "rtl_bt/rtl8851bu_config" },
274
284
};
275
285
276
286
static const struct id_table * btrtl_match_ic (u16 lmp_subver , u16 hci_rev ,
@@ -607,6 +617,7 @@ static int rtlbt_parse_firmware(struct hci_dev *hdev,
607
617
{ RTL_ROM_LMP_8852A , 18 }, /* 8852A */
608
618
{ RTL_ROM_LMP_8852A , 20 }, /* 8852B */
609
619
{ RTL_ROM_LMP_8852A , 25 }, /* 8852C */
620
+ { RTL_ROM_LMP_8851B , 36 }, /* 8851B */
610
621
};
611
622
612
623
if (btrtl_dev -> fw_len <= 8 )
@@ -1134,6 +1145,7 @@ int btrtl_download_firmware(struct hci_dev *hdev,
1134
1145
case RTL_ROM_LMP_8822B :
1135
1146
case RTL_ROM_LMP_8852A :
1136
1147
case RTL_ROM_LMP_8703B :
1148
+ case RTL_ROM_LMP_8851B :
1137
1149
return btrtl_setup_rtl8723b (hdev , btrtl_dev );
1138
1150
default :
1139
1151
rtl_dev_info (hdev , "assuming no firmware upload needed" );
@@ -1158,6 +1170,7 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev)
1158
1170
case CHIP_ID_8852A :
1159
1171
case CHIP_ID_8852B :
1160
1172
case CHIP_ID_8852C :
1173
+ case CHIP_ID_8851B :
1161
1174
set_bit (HCI_QUIRK_VALID_LE_STATES , & hdev -> quirks );
1162
1175
set_bit (HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED , & hdev -> quirks );
1163
1176
@@ -1370,3 +1383,5 @@ MODULE_FIRMWARE("rtl_bt/rtl8852bu_fw.bin");
1370
1383
MODULE_FIRMWARE ("rtl_bt/rtl8852bu_config.bin" );
1371
1384
MODULE_FIRMWARE ("rtl_bt/rtl8852cu_fw.bin" );
1372
1385
MODULE_FIRMWARE ("rtl_bt/rtl8852cu_config.bin" );
1386
+ MODULE_FIRMWARE ("rtl_bt/rtl8851bu_fw.bin" );
1387
+ MODULE_FIRMWARE ("rtl_bt/rtl8851bu_config.bin" );
0 commit comments