Bluetooth: btintel: Combine setting up MSFT extension
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>
This commit is contained in:
parent
c86c7285bb
commit
1804fdf6e4
1 changed files with 29 additions and 12 deletions
|
@ -1951,18 +1951,6 @@ static int btintel_bootloader_setup(struct hci_dev *hdev,
|
||||||
btintel_version_info(hdev, &new_ver);
|
btintel_version_info(hdev, &new_ver);
|
||||||
|
|
||||||
finish:
|
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
|
/* Set the event mask for Intel specific vendor events. This enables
|
||||||
* a few extra events that are useful during general operation. It
|
* a few extra events that are useful during general operation. It
|
||||||
* does not enable any debugging related events.
|
* does not enable any debugging related events.
|
||||||
|
@ -2166,6 +2154,28 @@ finish:
|
||||||
return 0;
|
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)
|
static int btintel_setup_combined(struct hci_dev *hdev)
|
||||||
{
|
{
|
||||||
const u8 param[1] = { 0xFF };
|
const u8 param[1] = { 0xFF };
|
||||||
|
@ -2279,6 +2289,9 @@ static int btintel_setup_combined(struct hci_dev *hdev)
|
||||||
set_bit(HCI_QUIRK_VALID_LE_STATES,
|
set_bit(HCI_QUIRK_VALID_LE_STATES,
|
||||||
&hdev->quirks);
|
&hdev->quirks);
|
||||||
|
|
||||||
|
/* Setup MSFT Extension support */
|
||||||
|
btintel_set_msft_opcode(hdev, ver.hw_variant);
|
||||||
|
|
||||||
err = btintel_bootloader_setup(hdev, &ver);
|
err = btintel_bootloader_setup(hdev, &ver);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -2349,6 +2362,10 @@ static int btintel_setup_combined(struct hci_dev *hdev)
|
||||||
if (INTEL_HW_VARIANT(ver_tlv.cnvi_bt) == 0x18)
|
if (INTEL_HW_VARIANT(ver_tlv.cnvi_bt) == 0x18)
|
||||||
set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
|
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);
|
err = btintel_bootloader_setup_tlv(hdev, &ver_tlv);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Add table
Reference in a new issue