1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2020-2022 Intel Corporation 5 * 6 *****************************************************************************/ 7 8 #ifndef __IWL_PNVM_H__ 9 #define __IWL_PNVM_H__ 10 11 #include "fw/notif-wait.h" 12 13 #define MVM_UCODE_PNVM_TIMEOUT (HZ / 4) 14 15 #define MAX_PNVM_NAME 64 16 17 int iwl_pnvm_load(struct iwl_trans *trans, 18 struct iwl_notif_wait_data *notif_wait, 19 const struct iwl_ucode_capabilities *capa); 20 21 static inline 22 void iwl_pnvm_get_fs_name(struct iwl_trans *trans, 23 u8 *pnvm_name, size_t max_len) 24 { 25 int pre_len; 26 27 /* 28 * The prefix unfortunately includes a hyphen at the end, so 29 * don't add the dot here... 30 */ 31 snprintf(pnvm_name, max_len, "%spnvm", trans->cfg->fw_name_pre); 32 33 /* ...but replace the hyphen with the dot here. */ 34 pre_len = strlen(trans->cfg->fw_name_pre); 35 if (pre_len < max_len && pre_len > 0) 36 pnvm_name[pre_len - 1] = '.'; 37 } 38 39 #endif /* __IWL_PNVM_H__ */ 40