Re: [PATCH v1] Bluetooth: btintel: Fix boot address
From: Marcel Holtmann <marcel@holtmann.org>
Date: 2021-08-30 15:08:00
Hi Kiran,
quoted hunk ↗ jump to hunk
Cache Boot address present in firmware file which is later used Intel_Soft_Reset command to bring controller from boot mode to operational mode. Signed-off-by: Kiran K <redacted> --- drivers/bluetooth/btintel.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-)diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c index f1705b46fc88..80d6dd7ae51a 100644 --- a/drivers/bluetooth/btintel.c +++ b/drivers/bluetooth/btintel.c@@ -1037,8 +1037,9 @@ static bool btintel_firmware_version(struct hci_dev *hdev,params = (void *)(fw_ptr + sizeof(*cmd)); - bt_dev_info(hdev, "Boot Address: 0x%x", - le32_to_cpu(params->boot_addr)); + *boot_addr = le32_to_cpu(params->boot_addr); + + bt_dev_info(hdev, "Boot Address: 0x%x", *boot_addr);
so this hunk looks good and is described in the commit message.
quoted hunk ↗ jump to hunk
bt_dev_info(hdev, "Firmware Version: %u-%u.%u", params->fw_build_num, params->fw_build_ww,@@ -1071,9 +1072,6 @@ int btintel_download_firmware(struct hci_dev *hdev,/* Skip version checking */ break; default: - /* Skip reading firmware file version in bootloader mode */ - if (ver->fw_variant == 0x06) - break; /* Skip download if firmware has the same version */ if (btintel_firmware_version(hdev, ver->fw_build_num,@@ -1114,19 +1112,16 @@ static int btintel_download_fw_tlv(struct hci_dev *hdev,int err; u32 css_header_ver; - /* Skip reading firmware file version in bootloader mode */ - if (ver->img_type != 0x01) { - /* Skip download if firmware has the same version */ - if (btintel_firmware_version(hdev, ver->min_fw_build_nn, - ver->min_fw_build_cw, - ver->min_fw_build_yy, - fw, boot_param)) { - bt_dev_info(hdev, "Firmware already loaded"); - /* Return -EALREADY to indicate that firmware has - * already been loaded. - */ - return -EALREADY; - } + /* Skip download if firmware has the same version */ + if (btintel_firmware_version(hdev, ver->min_fw_build_nn, + ver->min_fw_build_cw, + ver->min_fw_build_yy, + fw, boot_param)) { + bt_dev_info(hdev, "Firmware already loaded"); + /* Return -EALREADY to indicate that firmware has + * already been loaded. + */ + return -EALREADY; }
This part however isn’t. Regards Marcel