summaryrefslogtreecommitdiff
path: root/drivers/crypto/intel/qat/qat_common/adf_pm_dbgfs_utils.h
blob: 854f058b35edf82bf8b3a40111440f85483b44e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright(c) 2025 Intel Corporation */
#ifndef ADF_PM_DBGFS_UTILS_H_
#define ADF_PM_DBGFS_UTILS_H_

#include <linux/stddef.h>
#include <linux/stringify.h>
#include <linux/types.h>
#include "icp_qat_fw_init_admin.h"

#define PM_INFO_MEMBER_OFF(member)	\
	(offsetof(struct icp_qat_fw_init_admin_pm_info, member) / sizeof(u32))

#define PM_INFO_REGSET_ENTRY_MASK(_reg_, _field_, _mask_)	\
{								\
	.reg_offset = PM_INFO_MEMBER_OFF(_reg_),		\
	.key = __stringify(_field_),				\
	.field_mask = _mask_,					\
}

#define PM_INFO_REGSET_ENTRY32(_reg_, _field_)	\
	PM_INFO_REGSET_ENTRY_MASK(_reg_, _field_, GENMASK(31, 0))

struct pm_status_row {
	int reg_offset;
	u32 field_mask;
	const char *key;
};

int adf_pm_scnprint_table_upper_keys(char *buff, const struct pm_status_row *table,
				     u32 *pm_info_regs, size_t buff_size, int table_len);

int adf_pm_scnprint_table_lower_keys(char *buff, const struct pm_status_row *table,
				     u32 *pm_info_regs, size_t buff_size, int table_len);

#endif /* ADF_PM_DBGFS_UTILS_H_ */