wifi: mwifiex: append hotfix number to firmware version string

mwifiex_ret_get_hw_spec() parses and logs the FW_HOTFIX_VER_ID TLV,
but the hotfix value is not stored in the adapter structure. As a
result, the hotfix number never appears in the firmware version string
returned by mwifiex_drv_get_driver_version().

Store the hotfix version from FW_HOTFIX_VER_ID and append it to the
firmware version string.

Assisted-by: LLM sparse
Fixes: 7715d79553 ("wifi: mwifiex: Support firmware hotfix version in GET_HW_SPEC responses")
Signed-off-by: Jeff Chen <jeff.chen_1@nxp.com>
Link: https://patch.msgid.link/20261012123624.3147417-2-jeff.chen_1@oss.nxp.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Jeff Chen 2026-10-12 20:36:23 +08:00 committed by Johannes Berg
parent c6c8bc3556
commit 958f20d5aa
5 changed files with 18 additions and 3 deletions

View File

@ -1594,11 +1594,17 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
api_rev->major_ver,
api_rev->minor_ver);
break;
case FW_HOTFIX_VER_ID:
case FW_HOTFIX_VER_ID: {
struct hw_spec_fw_hotfix_ver *hf;
hf = (void *)tlv;
adapter->fw_hotfix_ver =
le16_to_cpu(hf->hotfix_ver);
mwifiex_dbg(adapter, INFO,
"Firmware hotfix version %d\n",
api_rev->major_ver);
adapter->fw_hotfix_ver);
break;
}
default:
mwifiex_dbg(adapter, FATAL,
"Unknown api_id: %d\n",

View File

@ -1104,6 +1104,12 @@ struct hw_spec_api_rev {
u8 minor_ver;
} __packed;
struct hw_spec_fw_hotfix_ver {
struct mwifiex_ie_types_header header;
__le16 api_id;
__le16 hotfix_ver;
} __packed;
struct host_cmd_ds_get_hw_spec {
__le16 hw_if_version;
__le16 version;

View File

@ -296,6 +296,7 @@ static void mwifiex_init_adapter(struct mwifiex_adapter *adapter)
adapter->config_bands = 0;
adapter->adhoc_start_band = 0;
adapter->fw_release_number = 0;
adapter->fw_hotfix_ver = 0;
adapter->fw_cap_info = 0;
memset(&adapter->upld_buf, 0, sizeof(adapter->upld_buf));
adapter->event_cause = 0;

View File

@ -1003,6 +1003,7 @@ struct mwifiex_adapter {
bool host_mlme_enabled;
struct ieee80211_txrx_stypes mwifiex_mgmt_stypes[NUM_NL80211_IFTYPES];
u8 fw_api_ver;
u16 fw_hotfix_ver;
u8 key_api_major_ver, key_api_minor_ver;
u8 max_p2p_conn, max_sta_conn;
struct memory_type_mapping *mem_type_mapping_tbl;

View File

@ -1144,7 +1144,8 @@ mwifiex_drv_get_driver_version(struct mwifiex_adapter *adapter, char *version,
char fw_ver[32];
ver.l = cpu_to_le32(adapter->fw_release_number);
sprintf(fw_ver, "%u.%u.%u.p%u", ver.c[2], ver.c[1], ver.c[0], ver.c[3]);
sprintf(fw_ver, "%u.%u.%u.p%u.%u", ver.c[2], ver.c[1],
ver.c[0], ver.c[3], adapter->fw_hotfix_ver);
snprintf(version, max_len, driver_version, fw_ver);