summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/xe_guc_klv_thresholds_set.h
blob: da0fedbbdbafea2a28f4c1aed8a110b6245f23ed (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2024 Intel Corporation
 */

#ifndef _XE_GUC_KLV_THRESHOLDS_SET_H_
#define _XE_GUC_KLV_THRESHOLDS_SET_H_

#include "abi/guc_klvs_abi.h"
#include "xe_guc_klv_helpers.h"
#include "xe_guc_klv_thresholds_set_types.h"

/**
 * MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY - Prepare the name of the KLV key constant.
 * @TAG: unique tag of the GuC threshold KLV key.
 */
#define MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG) \
	MAKE_GUC_KLV_KEY(CONCATENATE(VF_CFG_THRESHOLD_, TAG))

/**
 * xe_guc_klv_threshold_key_to_index - Find index of the tracked GuC threshold.
 * @key: GuC threshold KLV key.
 *
 * This translation is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET.
 * Return: index of the GuC threshold KLV or -1 if not found.
 */
static inline int xe_guc_klv_threshold_key_to_index(u32 key)
{
	switch (key) {
#define define_xe_guc_klv_threshold_key_to_index_case(TAG, ...)		\
									\
	case MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG):			\
		return MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG);

	/* private: auto-generated case statements */
	MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_key_to_index_case)
	}
	return -1;
#undef define_xe_guc_klv_threshold_key_to_index_case
}

/**
 * xe_guc_klv_threshold_index_to_key - Get tracked GuC threshold KLV key.
 * @index: GuC threshold KLV index.
 *
 * This translation is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET.
 * Return: key of the GuC threshold KLV or 0 on malformed index.
 */
static inline u32 xe_guc_klv_threshold_index_to_key(enum xe_guc_klv_threshold_index index)
{
	switch (index) {
#define define_xe_guc_klv_threshold_index_to_key_case(TAG, ...)		\
									\
	case MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG):			\
		return MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG);

	/* private: auto-generated case statements */
	MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_index_to_key_case)
	}
	return 0; /* unreachable */
#undef define_xe_guc_klv_threshold_index_to_key_case
}

#endif