1/* SPDX-License-Identifier: GPL-2.0-only */
2/* Copyright(c) 2025 Intel Corporation */
3#ifndef ADF_PM_DBGFS_UTILS_H_
4#define ADF_PM_DBGFS_UTILS_H_
5
6#include <linux/stddef.h>
7#include <linux/stringify.h>
8#include <linux/types.h>
9#include "icp_qat_fw_init_admin.h"
10
11#define PM_INFO_MEMBER_OFF(member) \
12 (offsetof(struct icp_qat_fw_init_admin_pm_info, member) / sizeof(u32))
13
14#define PM_INFO_REGSET_ENTRY_MASK(_reg_, _field_, _mask_) \
15{ \
16 .reg_offset = PM_INFO_MEMBER_OFF(_reg_), \
17 .key = __stringify(_field_), \
18 .field_mask = _mask_, \
19}
20
21#define PM_INFO_REGSET_ENTRY32(_reg_, _field_) \
22 PM_INFO_REGSET_ENTRY_MASK(_reg_, _field_, GENMASK(31, 0))
23
24struct pm_status_row {
25 int reg_offset;
26 u32 field_mask;
27 const char *key;
28};
29
30int adf_pm_scnprint_table_upper_keys(char *buff, const struct pm_status_row *table,
31 u32 *pm_info_regs, size_t buff_size, int table_len);
32
33int adf_pm_scnprint_table_lower_keys(char *buff, const struct pm_status_row *table,
34 u32 *pm_info_regs, size_t buff_size, int table_len);
35
36#endif /* ADF_PM_DBGFS_UTILS_H_ */
37

source code of linux/drivers/crypto/intel/qat/qat_common/adf_pm_dbgfs_utils.h