Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.18 71 lines 2.3 kB view raw
1/* SPDX-License-Identifier: MIT */ 2/* 3 * Copyright © 2024 Intel Corporation 4 */ 5 6#ifndef _XE_GUC_KLV_THRESHOLDS_SET_H_ 7#define _XE_GUC_KLV_THRESHOLDS_SET_H_ 8 9#include "abi/guc_klvs_abi.h" 10#include "xe_guc_klv_helpers.h" 11#include "xe_guc_klv_thresholds_set_types.h" 12 13/** 14 * MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY - Prepare the name of the KLV key constant. 15 * @TAG: unique tag of the GuC threshold KLV key. 16 */ 17#define MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG) \ 18 MAKE_GUC_KLV_KEY(CONCATENATE(VF_CFG_THRESHOLD_, TAG)) 19 20/** 21 * MAKE_GUC_KLV_VF_CFG_THRESHOLD_LEN - Prepare the name of the KLV length constant. 22 * @TAG: unique tag of the GuC threshold KLV key. 23 */ 24#define MAKE_GUC_KLV_VF_CFG_THRESHOLD_LEN(TAG) \ 25 MAKE_GUC_KLV_LEN(CONCATENATE(VF_CFG_THRESHOLD_, TAG)) 26 27/** 28 * xe_guc_klv_threshold_key_to_index - Find index of the tracked GuC threshold. 29 * @key: GuC threshold KLV key. 30 * 31 * This translation is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET. 32 * Return: index of the GuC threshold KLV or -1 if not found. 33 */ 34static inline int xe_guc_klv_threshold_key_to_index(u32 key) 35{ 36 switch (key) { 37#define define_xe_guc_klv_threshold_key_to_index_case(TAG, ...) \ 38 \ 39 case MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG): \ 40 return MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG); 41 42 /* private: auto-generated case statements */ 43 MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_key_to_index_case) 44 } 45 return -1; 46#undef define_xe_guc_klv_threshold_key_to_index_case 47} 48 49/** 50 * xe_guc_klv_threshold_index_to_key - Get tracked GuC threshold KLV key. 51 * @index: GuC threshold KLV index. 52 * 53 * This translation is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET. 54 * Return: key of the GuC threshold KLV or 0 on malformed index. 55 */ 56static inline u32 xe_guc_klv_threshold_index_to_key(enum xe_guc_klv_threshold_index index) 57{ 58 switch (index) { 59#define define_xe_guc_klv_threshold_index_to_key_case(TAG, ...) \ 60 \ 61 case MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG): \ 62 return MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG); 63 64 /* private: auto-generated case statements */ 65 MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_index_to_key_case) 66 } 67 return 0; /* unreachable */ 68#undef define_xe_guc_klv_threshold_index_to_key_case 69} 70 71#endif