Bluetooth: btintel: Mark Intel controller to support LE_STATES quirk
authorKiran K <kiran.k@intel.com>
Wed, 7 Sep 2022 07:19:45 +0000 (12:49 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Oct 2022 10:35:35 +0000 (12:35 +0200)
[ 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

index d122cc9..de3d851 100644 (file)
@@ -2274,15 +2274,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
@@ -2290,11 +2295,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);
 
@@ -2361,9 +2361,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);