Commit 3547a008 authored by Tedd Ho-Jeong An's avatar Tedd Ho-Jeong An Committed by Marcel Holtmann

Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader

This patch add missing HCI quirks and MSFT extension for legacy
bootloader when it is running in the operational firmware.
Signed-off-by: default avatarTedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent d2666be5
...@@ -2498,10 +2498,14 @@ static int btintel_setup_combined(struct hci_dev *hdev) ...@@ -2498,10 +2498,14 @@ static int btintel_setup_combined(struct hci_dev *hdev)
case 0x12: /* ThP */ case 0x12: /* ThP */
case 0x13: /* HrP */ case 0x13: /* HrP */
case 0x14: /* CcP */ case 0x14: /* CcP */
/* Some legacy bootloader devices from JfP supports both old /* Some legacy bootloader devices starting from JfP,
* and TLV based HCI_Intel_Read_Version command. But we don't * the operational firmware supports both old and TLV based
* want to use the TLV based setup routines for those legacy * HCI_Intel_Read_Version command based on the command
* bootloader device. * parameter.
*
* For upgrading firmware case, the TLV based version cannot
* be used because the firmware filename for legacy bootloader
* is based on the old format.
* *
* Also, it is not easy to convert TLV based version from the * Also, it is not easy to convert TLV based version from the
* legacy version format. * legacy version format.
...@@ -2513,6 +2517,20 @@ static int btintel_setup_combined(struct hci_dev *hdev) ...@@ -2513,6 +2517,20 @@ static int btintel_setup_combined(struct hci_dev *hdev)
err = btintel_read_version(hdev, &ver); err = btintel_read_version(hdev, &ver);
if (err) if (err)
return err; return err;
/* Apply the device specific HCI quirks
*
* All Legacy bootloader devices support WBS
*/
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
/* Valid LE States quirk for JfP/ThP familiy */
if (ver.hw_variant == 0x11 || ver.hw_variant == 0x12)
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); err = btintel_bootloader_setup(hdev, &ver);
break; break;
case 0x17: case 0x17:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment