1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /******************************************************************************
3  *
4  * Copyright(c) 2020-2021 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 
20 static inline
iwl_pnvm_get_fs_name(struct iwl_trans * trans,u8 * pnvm_name,size_t max_len)21 void iwl_pnvm_get_fs_name(struct iwl_trans *trans,
22 			  u8 *pnvm_name, size_t max_len)
23 {
24 	int pre_len;
25 
26 	/*
27 	 * The prefix unfortunately includes a hyphen at the end, so
28 	 * don't add the dot here...
29 	 */
30 	snprintf(pnvm_name, max_len, "%spnvm", trans->cfg->fw_name_pre);
31 
32 	/* ...but replace the hyphen with the dot here. */
33 	pre_len = strlen(trans->cfg->fw_name_pre);
34 	if (pre_len < max_len && pre_len > 0)
35 		pnvm_name[pre_len - 1] = '.';
36 }
37 
38 #endif /* __IWL_PNVM_H__ */
39