Re: [PATCH] Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tedd,

On Tue, Dec 14, 2021 at 3:14 AM Tedd Ho-Jeong An <hj.tedd.an@xxxxxxxxx> wrote:
>
> From: Tedd Ho-Jeong An <tedd.an@xxxxxxxxx>
>
> 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@xxxxxxxxx>
> ---
>  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 8f9109b40961..e1f96df847b8 100644
> --- a/drivers/bluetooth/btintel.c
> +++ b/drivers/bluetooth/btintel.c
> @@ -2498,10 +2498,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.
> @@ -2513,6 +2517,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.25.1

Applied, thanks.

-- 
Luiz Augusto von Dentz



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux