wifi: mwifiex: Fix premature release of RF calibration data.
authorJeff Chen <jeff.chen_1@nxp.com>
Tue, 18 Mar 2025 05:07:38 +0000 (13:07 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 18 Mar 2025 09:27:34 +0000 (10:27 +0100)
This patch resolves an issue where RF calibration data was being
released before the download process. Without this fix, the
external calibration data file would not be downloaded
at all.

Fixes: d39fbc88956e ("mwifiex: remove cfg_data construction")
Signed-off-by: Jeff Chen <jeff.chen_1@nxp.com>
Link: https://patch.msgid.link/20250318050739.2239376-2-jeff.chen_1@nxp.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/marvell/mwifiex/main.c
drivers/net/wireless/marvell/mwifiex/sta_cmd.c

index 45eecb5..b07cb30 100644 (file)
@@ -691,10 +691,6 @@ err_dnld_fw:
 
        init_failed = true;
 done:
-       if (adapter->cal_data) {
-               release_firmware(adapter->cal_data);
-               adapter->cal_data = NULL;
-       }
        if (adapter->firmware) {
                release_firmware(adapter->firmware);
                adapter->firmware = NULL;
index e2800a8..c0e6ce1 100644 (file)
@@ -2293,9 +2293,13 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
                                                "marvell,caldata");
                }
 
-               if (adapter->cal_data)
+               if (adapter->cal_data) {
                        mwifiex_send_cmd(priv, HostCmd_CMD_CFG_DATA,
                                         HostCmd_ACT_GEN_SET, 0, NULL, true);
+                       release_firmware(adapter->cal_data);
+                       adapter->cal_data = NULL;
+               }
+
 
                /* Read MAC address from HW */
                ret = mwifiex_send_cmd(priv, HostCmd_CMD_GET_HW_SPEC,