Skip to content

Commit

Permalink
Bluetooth: btintel: Combine setting up MSFT extension
Browse files Browse the repository at this point in the history
This patch combines the setting up MSFT extension for the legacy and TLV
based bootloader into the common function based on hw_variant.

Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
tedd-an authored and holtmann committed Aug 5, 2021
1 parent c86c728 commit 1804fdf
Showing 1 changed file with 29 additions and 12 deletions.
41 changes: 29 additions & 12 deletions drivers/bluetooth/btintel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1951,18 +1951,6 @@ static int btintel_bootloader_setup(struct hci_dev *hdev,
btintel_version_info(hdev, &new_ver);

finish:
/* All Intel controllers that support the Microsoft vendor
* extension are using 0xFC1E for VsMsftOpCode.
*/
switch (ver->hw_variant) {
case 0x11: /* JfP */
case 0x12: /* ThP */
case 0x13: /* HrP */
case 0x14: /* CcP */
hci_set_msft_opcode(hdev, 0xFC1E);
break;
}

/* Set the event mask for Intel specific vendor events. This enables
* a few extra events that are useful during general operation. It
* does not enable any debugging related events.
Expand Down Expand Up @@ -2166,6 +2154,28 @@ static int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
return 0;
}

static void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
{
switch (hw_variant) {
/* Legacy bootloader devices that supports MSFT Extension */
case 0x11: /* JfP */
case 0x12: /* ThP */
case 0x13: /* HrP */
case 0x14: /* CcP */
/* All Intel new genration controllers support the Microsoft vendor
* extension are using 0xFC1E for VsMsftOpCode.
*/
case 0x17:
case 0x18:
case 0x19:
hci_set_msft_opcode(hdev, 0xFC1E);
break;
default:
/* Not supported */
break;
}
}

static int btintel_setup_combined(struct hci_dev *hdev)
{
const u8 param[1] = { 0xFF };
Expand Down Expand Up @@ -2279,6 +2289,9 @@ static int btintel_setup_combined(struct hci_dev *hdev)
set_bit(HCI_QUIRK_VALID_LE_STATES,
&hdev->quirks);

/* Setup MSFT Extension support */
btintel_set_msft_opcode(hdev, ver.hw_variant);

err = btintel_bootloader_setup(hdev, &ver);
break;
default:
Expand Down Expand Up @@ -2349,6 +2362,10 @@ static int btintel_setup_combined(struct hci_dev *hdev)
if (INTEL_HW_VARIANT(ver_tlv.cnvi_bt) == 0x18)
set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);

/* Setup MSFT Extension support */
btintel_set_msft_opcode(hdev,
INTEL_HW_VARIANT(ver_tlv.cnvi_bt));

err = btintel_bootloader_setup_tlv(hdev, &ver_tlv);
break;
default:
Expand Down

0 comments on commit 1804fdf

Please sign in to comment.