lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0690/1039] Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
    Date
    From: Tedd Ho-Jeong An <tedd.an@intel.com>

    [ Upstream commit 3547a008c8962df2175db1e78b80f27e027ec549 ]

    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>
    ---
    drivers/bluetooth/btintel.c | 26 ++++++++++++++++++++++----
    1 file changed, 22 insertions(+), 4 deletions(-)

    diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
    index b11567b0fd9ab..851a0c9b8fae5 100644
    --- a/drivers/bluetooth/btintel.c
    +++ b/drivers/bluetooth/btintel.c
    @@ -2493,10 +2493,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.
    @@ -2508,6 +2512,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:
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 01:05    [W:4.046 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site