mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
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:
parent
c6c8bc3556
commit
958f20d5aa
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user