diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2021-03-23 19:58:56 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2021-03-25 16:09:35 +0100 |
commit | ac0565462e330a2b762ca5849a4140b29d725786 (patch) | |
tree | a7f3c514f75622253d110ccb08db3467d419dd12 /drivers/bluetooth/hci_intel.c | |
parent | Bluetooth: Remove trailing semicolon in macros (diff) | |
download | linux-ac0565462e330a2b762ca5849a4140b29d725786.tar.xz linux-ac0565462e330a2b762ca5849a4140b29d725786.zip |
Bluetooth: btintel: Check firmware version before download
This checks the firmware build number, week and year against the
repective loaded version. If details are a match, skip the download
process.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tested-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/hci_intel.c')
-rw-r--r-- | drivers/bluetooth/hci_intel.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c index b20a40fab83e..7249b91d9b91 100644 --- a/drivers/bluetooth/hci_intel.c +++ b/drivers/bluetooth/hci_intel.c @@ -735,7 +735,7 @@ static int intel_setup(struct hci_uart *hu) set_bit(STATE_DOWNLOADING, &intel->flags); /* Start firmware downloading and get boot parameter */ - err = btintel_download_firmware(hdev, fw, &boot_param); + err = btintel_download_firmware(hdev, &ver, fw, &boot_param); if (err < 0) goto done; @@ -784,7 +784,10 @@ static int intel_setup(struct hci_uart *hu) done: release_firmware(fw); - if (err < 0) + /* Check if there was an error and if is not -EALREADY which means the + * firmware has already been loaded. + */ + if (err < 0 && err != -EALREADY) return err; /* We need to restore the default speed before Intel reset */ |