162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright(c) 2020-2023 Intel Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#ifndef __IWL_PNVM_H__
662306a36Sopenharmony_ci#define __IWL_PNVM_H__
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "iwl-drv.h"
962306a36Sopenharmony_ci#include "fw/notif-wait.h"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define MVM_UCODE_PNVM_TIMEOUT	(HZ / 4)
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#define MAX_PNVM_NAME  64
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciint iwl_pnvm_load(struct iwl_trans *trans,
1662306a36Sopenharmony_ci		  struct iwl_notif_wait_data *notif_wait,
1762306a36Sopenharmony_ci		  const struct iwl_ucode_capabilities *capa);
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cistatic inline
2062306a36Sopenharmony_civoid iwl_pnvm_get_fs_name(struct iwl_trans *trans,
2162306a36Sopenharmony_ci			  u8 *pnvm_name, size_t max_len)
2262306a36Sopenharmony_ci{
2362306a36Sopenharmony_ci	char _fw_name_pre[FW_NAME_PRE_BUFSIZE];
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	snprintf(pnvm_name, max_len, "%s.pnvm",
2662306a36Sopenharmony_ci		 iwl_drv_get_fwname_pre(trans, _fw_name_pre));
2762306a36Sopenharmony_ci}
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci#endif /* __IWL_PNVM_H__ */
30