| From 4e3383871787bc1d96974a0522afb97cec5250d9 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 7 Sep 2022 12:49:45 +0530 |
| Subject: Bluetooth: btintel: Mark Intel controller to support LE_STATES quirk |
| |
| From: Kiran K <kiran.k@intel.com> |
| |
| [ Upstream commit dd0a1794f4334ddbf9b7c5e7d642aaffff38c69b ] |
| |
| HarrrisonPeak, CyclonePeak, SnowFieldPeak and SandyPeak controllers |
| are marked to support HCI_QUIRK_LE_STATES. |
| |
| Signed-off-by: Kiran K <kiran.k@intel.com> |
| Signed-off-by: Chethan T N <chethan.tumkur.narayan@intel.com> |
| Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/bluetooth/btintel.c | 17 ++++++++--------- |
| 1 file changed, 8 insertions(+), 9 deletions(-) |
| |
| diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c |
| index 818681c89db8..d44a96667517 100644 |
| --- a/drivers/bluetooth/btintel.c |
| +++ b/drivers/bluetooth/btintel.c |
| @@ -2439,15 +2439,20 @@ static int btintel_setup_combined(struct hci_dev *hdev) |
| INTEL_ROM_LEGACY_NO_WBS_SUPPORT)) |
| set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, |
| &hdev->quirks); |
| + if (ver.hw_variant == 0x08 && ver.fw_variant == 0x22) |
| + set_bit(HCI_QUIRK_VALID_LE_STATES, |
| + &hdev->quirks); |
| |
| err = btintel_legacy_rom_setup(hdev, &ver); |
| break; |
| case 0x0b: /* SfP */ |
| - case 0x0c: /* WsP */ |
| case 0x11: /* JfP */ |
| case 0x12: /* ThP */ |
| case 0x13: /* HrP */ |
| case 0x14: /* CcP */ |
| + set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); |
| + fallthrough; |
| + case 0x0c: /* WsP */ |
| /* Apply the device specific HCI quirks |
| * |
| * All Legacy bootloader devices support WBS |
| @@ -2455,11 +2460,6 @@ static int btintel_setup_combined(struct hci_dev *hdev) |
| 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); |
| |
| @@ -2530,9 +2530,8 @@ static int btintel_setup_combined(struct hci_dev *hdev) |
| */ |
| 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); |
| + /* Set Valid LE States quirk */ |
| + set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); |
| |
| /* Setup MSFT Extension support */ |
| btintel_set_msft_opcode(hdev, ver.hw_variant); |
| -- |
| 2.35.1 |
| |