iwlwifi: move get pnvm file name to a separate function
authorDror Moshe <drorx.moshe@intel.com>
Thu, 26 Aug 2021 19:47:39 +0000 (22:47 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 26 Aug 2021 20:38:16 +0000 (23:38 +0300)
Move code that generates the pnvm file name to a separate function,
so that it can be reused.

Signed-off-by: Dror Moshe <drorx.moshe@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210826224715.7d2dd18c75a2.I3652584755b9ab44909ddcd09ff4d80c6690a1ad@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/pnvm.c
drivers/net/wireless/intel/iwlwifi/fw/pnvm.h

index 34e24196c1a36d8bb4b354532d947f0226d9d7ca..314ed90c23dddc2ddabd515d1fa6c88edf7afac1 100644 (file)
@@ -230,19 +230,10 @@ static int iwl_pnvm_parse(struct iwl_trans *trans, const u8 *data,
 static int iwl_pnvm_get_from_fs(struct iwl_trans *trans, u8 **data, size_t *len)
 {
        const struct firmware *pnvm;
-       char pnvm_name[64];
+       char pnvm_name[MAX_PNVM_NAME];
        int ret;
 
-       /*
-        * The prefix unfortunately includes a hyphen at the end, so
-        * don't add the dot here...
-        */
-       snprintf(pnvm_name, sizeof(pnvm_name), "%spnvm",
-                trans->cfg->fw_name_pre);
-
-       /* ...but replace the hyphen with the dot here. */
-       if (strlen(trans->cfg->fw_name_pre) < sizeof(pnvm_name))
-               pnvm_name[strlen(trans->cfg->fw_name_pre) - 1] = '.';
+       iwl_pnvm_get_fs_name(trans, pnvm_name, sizeof(pnvm_name));
 
        ret = firmware_request_nowarn(&pnvm, pnvm_name, trans->dev);
        if (ret) {
index 61d3d4e0b7d94cd84bcbd77dd16cf0c32da84ec0..203c367dd4deec56b9acc1b9a5e2b1aae948390c 100644 (file)
 
 #define MVM_UCODE_PNVM_TIMEOUT (HZ / 4)
 
+#define MAX_PNVM_NAME  64
+
 int iwl_pnvm_load(struct iwl_trans *trans,
                  struct iwl_notif_wait_data *notif_wait);
 
+static inline
+void iwl_pnvm_get_fs_name(struct iwl_trans *trans,
+                         u8 *pnvm_name, size_t max_len)
+{
+       int pre_len;
+
+       /*
+        * The prefix unfortunately includes a hyphen at the end, so
+        * don't add the dot here...
+        */
+       snprintf(pnvm_name, max_len, "%spnvm", trans->cfg->fw_name_pre);
+
+       /* ...but replace the hyphen with the dot here. */
+       pre_len = strlen(trans->cfg->fw_name_pre);
+       if (pre_len < max_len && pre_len > 0)
+               pnvm_name[pre_len - 1] = '.';
+}
+
 #endif /* __IWL_PNVM_H__ */