ath10k: move fw_version inside struct ath10k_fw_file
authorKalle Valo <kvalo@qca.qualcomm.com>
Wed, 20 Apr 2016 16:45:05 +0000 (19:45 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Wed, 20 Apr 2016 17:00:24 +0000 (20:00 +0300)
Preparation for testmode.c to use ath10k_core_fetch_board_data_api_n().

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath10k/core.h
drivers/net/wireless/ath/ath10k/testmode.c

index b2efece..015241a 100644 (file)
@@ -1039,15 +1039,15 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,
 
                switch (ie_id) {
                case ATH10K_FW_IE_FW_VERSION:
 
                switch (ie_id) {
                case ATH10K_FW_IE_FW_VERSION:
-                       if (ie_len > sizeof(ar->hw->wiphy->fw_version) - 1)
+                       if (ie_len > sizeof(fw_file->fw_version) - 1)
                                break;
 
                                break;
 
-                       memcpy(ar->hw->wiphy->fw_version, data, ie_len);
-                       ar->hw->wiphy->fw_version[ie_len] = '\0';
+                       memcpy(fw_file->fw_version, data, ie_len);
+                       fw_file->fw_version[ie_len] = '\0';
 
                        ath10k_dbg(ar, ATH10K_DBG_BOOT,
                                   "found fw version %s\n",
 
                        ath10k_dbg(ar, ATH10K_DBG_BOOT,
                                   "found fw version %s\n",
-                                   ar->hw->wiphy->fw_version);
+                                   fw_file->fw_version);
                        break;
                case ATH10K_FW_IE_TIMESTAMP:
                        if (ie_len != sizeof(u32))
                        break;
                case ATH10K_FW_IE_TIMESTAMP:
                        if (ie_len != sizeof(u32))
@@ -1866,6 +1866,11 @@ static int ath10k_core_probe_fw(struct ath10k *ar)
                goto err_power_down;
        }
 
                goto err_power_down;
        }
 
+       BUILD_BUG_ON(sizeof(ar->hw->wiphy->fw_version) !=
+                    sizeof(ar->normal_mode_fw.fw_file.fw_version));
+       memcpy(ar->hw->wiphy->fw_version, ar->normal_mode_fw.fw_file.fw_version,
+              sizeof(ar->hw->wiphy->fw_version));
+
        ath10k_debug_print_hwfw_info(ar);
 
        ret = ath10k_core_pre_cal_download(ar);
        ath10k_debug_print_hwfw_info(ar);
 
        ret = ath10k_core_pre_cal_download(ar);
index b377fd4..432b159 100644 (file)
@@ -630,6 +630,8 @@ enum ath10k_tx_pause_reason {
 struct ath10k_fw_file {
        const struct firmware *firmware;
 
 struct ath10k_fw_file {
        const struct firmware *firmware;
 
+       char fw_version[ETHTOOL_FWVERS_LEN];
+
        const void *firmware_data;
        size_t firmware_len;
 
        const void *firmware_data;
        size_t firmware_len;
 
@@ -893,7 +895,6 @@ struct ath10k {
        struct {
                /* protected by conf_mutex */
                struct ath10k_fw_components utf_mode_fw;
        struct {
                /* protected by conf_mutex */
                struct ath10k_fw_components utf_mode_fw;
-               char utf_version[32];
                DECLARE_BITMAP(orig_fw_features, ATH10K_FW_FEATURE_COUNT);
                enum ath10k_fw_wmi_op_version orig_wmi_op_version;
                enum ath10k_fw_wmi_op_version op_version;
                DECLARE_BITMAP(orig_fw_features, ATH10K_FW_FEATURE_COUNT);
                enum ath10k_fw_wmi_op_version orig_wmi_op_version;
                enum ath10k_fw_wmi_op_version op_version;
index 480fad3..2c4a5d3 100644 (file)
@@ -205,15 +205,15 @@ static int ath10k_tm_fetch_utf_firmware_api_2(struct ath10k *ar,
 
                switch (ie_id) {
                case ATH10K_FW_IE_FW_VERSION:
 
                switch (ie_id) {
                case ATH10K_FW_IE_FW_VERSION:
-                       if (ie_len > sizeof(ar->testmode.utf_version) - 1)
+                       if (ie_len > sizeof(fw_file->fw_version) - 1)
                                break;
 
                                break;
 
-                       memcpy(ar->testmode.utf_version, data, ie_len);
-                       ar->testmode.utf_version[ie_len] = '\0';
+                       memcpy(fw_file->fw_version, data, ie_len);
+                       fw_file->fw_version[ie_len] = '\0';
 
                        ath10k_dbg(ar, ATH10K_DBG_TESTMODE,
                                   "testmode found fw utf version %s\n",
 
                        ath10k_dbg(ar, ATH10K_DBG_TESTMODE,
                                   "testmode found fw utf version %s\n",
-                                  ar->testmode.utf_version);
+                                  fw_file->fw_version);
                        break;
                case ATH10K_FW_IE_TIMESTAMP:
                        /* ignore timestamp, but don't warn about it either */
                        break;
                case ATH10K_FW_IE_TIMESTAMP:
                        /* ignore timestamp, but don't warn about it either */
@@ -392,8 +392,8 @@ static int ath10k_tm_cmd_utf_start(struct ath10k *ar, struct nlattr *tb[])
 
        ar->state = ATH10K_STATE_UTF;
 
 
        ar->state = ATH10K_STATE_UTF;
 
-       if (strlen(ar->testmode.utf_version) > 0)
-               ver = ar->testmode.utf_version;
+       if (strlen(ar->testmode.utf_mode_fw.fw_file.fw_version) > 0)
+               ver = ar->testmode.utf_mode_fw.fw_file.fw_version;
        else
                ver = "API 1";
 
        else
                ver = "API 1";