mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Bluetooth: btmtk: add status check in mt79xx firmware setup
To prevent abnormal controller states, it is necessary to check status in another part of the mt79xx firmware setup. During this process, receiving the 'BTMTK_WMT_PATCH_PROGRESS' status is unexpected. If this occurs, it should be treated as an error, and driver must be prevented from continuing execution. Signed-off-by: Chris Lu <chris.lu@mediatek.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
committed by
Luiz Augusto von Dentz
parent
54f1f020e9
commit
b27a306e9f
@@ -213,7 +213,6 @@ int btmtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwname,
|
||||
|
||||
fw_ptr += section_offset;
|
||||
wmt_params.op = BTMTK_WMT_PATCH_DWNLD;
|
||||
wmt_params.status = NULL;
|
||||
|
||||
while (dl_size > 0) {
|
||||
dlen = min_t(int, 250, dl_size);
|
||||
@@ -231,7 +230,14 @@ int btmtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwname,
|
||||
wmt_params.data = fw_ptr;
|
||||
|
||||
err = wmt_cmd_sync(hdev, &wmt_params);
|
||||
if (err < 0) {
|
||||
/* Status BTMTK_WMT_PATCH_PROGRESS indicates firmware is
|
||||
* in process of being downloaded, which is not expected to
|
||||
* occur here.
|
||||
*/
|
||||
if (status == BTMTK_WMT_PATCH_PROGRESS) {
|
||||
err = -EIO;
|
||||
goto err_release_fw;
|
||||
} else if (err < 0) {
|
||||
bt_dev_err(hdev, "Failed to send wmt patch dwnld (%d)",
|
||||
err);
|
||||
goto err_release_fw;
|
||||
|
||||
Reference in New Issue
Block a user