Bluetooth: btmtk: Replace magic numbers with WMT packet flag enum

The flag field of a BTMTK_WMT_PATCH_DWNLD packet tells the device where
the packet sits in the download sequence, but both download loops write
the bare values 1, 2 and 3, so the reader has to infer the meaning from
the surrounding conditionals.

Add enum btmtk_wmt_pkt_flag and use it in btmtk_setup_firmware_79xx()
and btmtk_setup_firmware(). No functional change.

The other bare flag values in this driver belong to different WMT
opcodes (BTMTK_WMT_FUNC_CTRL, BTMTK_WMT_RST, BTMTK_WMT_SEMAPHORE and so
on), where the field means something else entirely, so they are left
alone.

Signed-off-by: Chris Lu <chris.lu@mediatek.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Assisted-by: Claude:claude-opus-5
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
Chris Lu 2026-09-09 20:00:11 +08:00 committed by Luiz Augusto von Dentz
parent 046fa20e9c
commit 8be5ec1f66
2 changed files with 15 additions and 6 deletions

View File

@ -300,12 +300,12 @@ int btmtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwname,
while (dl_size > 0) {
dlen = min_t(int, 250, dl_size);
if (first_block == 1) {
flag = 1;
flag = BTMTK_WMT_PKT_START;
first_block = 0;
} else if (dl_size - dlen <= 0) {
flag = 3;
flag = BTMTK_WMT_PKT_END;
} else {
flag = 2;
flag = BTMTK_WMT_PKT_CONTINUE;
}
wmt_params.flag = flag;
@ -384,7 +384,7 @@ int btmtk_setup_firmware(struct hci_dev *hdev, const char *fwname,
fw_size -= 30;
fw_ptr += 30;
flag = 1;
flag = BTMTK_WMT_PKT_START;
wmt_params.op = BTMTK_WMT_PATCH_DWNLD;
wmt_params.status = NULL;
@ -394,9 +394,9 @@ int btmtk_setup_firmware(struct hci_dev *hdev, const char *fwname,
/* Tell device the position in sequence */
if (fw_size - dlen <= 0)
flag = 3;
flag = BTMTK_WMT_PKT_END;
else if (fw_size < fw->size - 30)
flag = 2;
flag = BTMTK_WMT_PKT_CONTINUE;
wmt_params.flag = flag;
wmt_params.dlen = dlen;

View File

@ -67,6 +67,15 @@ enum {
BTMTK_WMT_ON_PROGRESS,
};
/* Position of a BTMTK_WMT_PATCH_DWNLD packet within a download sequence,
* carried in struct btmtk_wmt_hdr's flag field.
*/
enum btmtk_wmt_pkt_flag {
BTMTK_WMT_PKT_START = 1,
BTMTK_WMT_PKT_CONTINUE = 2,
BTMTK_WMT_PKT_END = 3,
};
struct btmtk_wmt_hdr {
u8 dir;
u8 op;