mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
[ Upstream commit 3547a008c8 ]
This patch add missing HCI quirks and MSFT extension for legacy
bootloader when it is running in the operational firmware.
Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0863e7e0ce
commit
e6e03a16eb
@@ -2330,10 +2330,14 @@ static int btintel_setup_combined(struct hci_dev *hdev)
|
||||
case 0x12: /* ThP */
|
||||
case 0x13: /* HrP */
|
||||
case 0x14: /* CcP */
|
||||
/* Some legacy bootloader devices from JfP supports both old
|
||||
* and TLV based HCI_Intel_Read_Version command. But we don't
|
||||
* want to use the TLV based setup routines for those legacy
|
||||
* bootloader device.
|
||||
/* Some legacy bootloader devices starting from JfP,
|
||||
* the operational firmware supports both old and TLV based
|
||||
* HCI_Intel_Read_Version command based on the command
|
||||
* 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
|
||||
* legacy version format.
|
||||
@@ -2345,6 +2349,20 @@ static int btintel_setup_combined(struct hci_dev *hdev)
|
||||
err = btintel_read_version(hdev, &ver);
|
||||
if (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);
|
||||
break;
|
||||
case 0x17:
|
||||
|
||||
Reference in New Issue
Block a user