@@ -1951,18 +1951,6 @@ static int btintel_bootloader_setup(struct hci_dev *hdev,
1951
1951
btintel_version_info (hdev , & new_ver );
1952
1952
1953
1953
finish :
1954
- /* All Intel controllers that support the Microsoft vendor
1955
- * extension are using 0xFC1E for VsMsftOpCode.
1956
- */
1957
- switch (ver -> hw_variant ) {
1958
- case 0x11 : /* JfP */
1959
- case 0x12 : /* ThP */
1960
- case 0x13 : /* HrP */
1961
- case 0x14 : /* CcP */
1962
- hci_set_msft_opcode (hdev , 0xFC1E );
1963
- break ;
1964
- }
1965
-
1966
1954
/* Set the event mask for Intel specific vendor events. This enables
1967
1955
* a few extra events that are useful during general operation. It
1968
1956
* does not enable any debugging related events.
@@ -2166,6 +2154,28 @@ static int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
2166
2154
return 0 ;
2167
2155
}
2168
2156
2157
+ static void btintel_set_msft_opcode (struct hci_dev * hdev , u8 hw_variant )
2158
+ {
2159
+ switch (hw_variant ) {
2160
+ /* Legacy bootloader devices that supports MSFT Extension */
2161
+ case 0x11 : /* JfP */
2162
+ case 0x12 : /* ThP */
2163
+ case 0x13 : /* HrP */
2164
+ case 0x14 : /* CcP */
2165
+ /* All Intel new genration controllers support the Microsoft vendor
2166
+ * extension are using 0xFC1E for VsMsftOpCode.
2167
+ */
2168
+ case 0x17 :
2169
+ case 0x18 :
2170
+ case 0x19 :
2171
+ hci_set_msft_opcode (hdev , 0xFC1E );
2172
+ break ;
2173
+ default :
2174
+ /* Not supported */
2175
+ break ;
2176
+ }
2177
+ }
2178
+
2169
2179
static int btintel_setup_combined (struct hci_dev * hdev )
2170
2180
{
2171
2181
const u8 param [1 ] = { 0xFF };
@@ -2279,6 +2289,9 @@ static int btintel_setup_combined(struct hci_dev *hdev)
2279
2289
set_bit (HCI_QUIRK_VALID_LE_STATES ,
2280
2290
& hdev -> quirks );
2281
2291
2292
+ /* Setup MSFT Extension support */
2293
+ btintel_set_msft_opcode (hdev , ver .hw_variant );
2294
+
2282
2295
err = btintel_bootloader_setup (hdev , & ver );
2283
2296
break ;
2284
2297
default :
@@ -2349,6 +2362,10 @@ static int btintel_setup_combined(struct hci_dev *hdev)
2349
2362
if (INTEL_HW_VARIANT (ver_tlv .cnvi_bt ) == 0x18 )
2350
2363
set_bit (HCI_QUIRK_VALID_LE_STATES , & hdev -> quirks );
2351
2364
2365
+ /* Setup MSFT Extension support */
2366
+ btintel_set_msft_opcode (hdev ,
2367
+ INTEL_HW_VARIANT (ver_tlv .cnvi_bt ));
2368
+
2352
2369
err = btintel_bootloader_setup_tlv (hdev , & ver_tlv );
2353
2370
break ;
2354
2371
default :
0 commit comments