Skip to content

Commit

Permalink
iwlwifi: move get pnvm file name to a separate function
Browse files Browse the repository at this point in the history
[ Upstream commit b05c1d1 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Dror Moshe authored and gregkh committed Sep 22, 2021
1 parent 2b6c810 commit b5fe5a7
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 11 deletions.
13 changes: 2 additions & 11 deletions drivers/net/wireless/intel/iwlwifi/fw/pnvm.c
Expand Up @@ -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) {
Expand Down
20 changes: 20 additions & 0 deletions drivers/net/wireless/intel/iwlwifi/fw/pnvm.h
Expand Up @@ -12,7 +12,27 @@

#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__ */

0 comments on commit b5fe5a7

Please sign in to comment.