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