1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef _XE_GT_IDLE_SYSFS_TYPES_H_ 7 #define _XE_GT_IDLE_SYSFS_TYPES_H_ 8 9 #include <linux/types.h> 10 11 struct xe_guc_pc; 12 13 /* States of GT Idle */ 14 enum xe_gt_idle_state { 15 GT_IDLE_C0, 16 GT_IDLE_C6, 17 GT_IDLE_UNKNOWN, 18 }; 19 20 /** 21 * struct xe_gt_idle - A struct that contains idle properties based of gt 22 */ 23 struct xe_gt_idle { 24 /** @name: name */ 25 char name[16]; 26 /** @residency_multiplier: residency multiplier in ns */ 27 u32 residency_multiplier; 28 /** @cur_residency: raw driver copy of idle residency */ 29 u64 cur_residency; 30 /** @prev_residency: previous residency counter */ 31 u64 prev_residency; 32 /** @idle_status: get the current idle state */ 33 enum xe_gt_idle_state (*idle_status)(struct xe_guc_pc *pc); 34 /** @idle_residency: get idle residency counter */ 35 u64 (*idle_residency)(struct xe_guc_pc *pc); 36 }; 37 38 #endif /* _XE_GT_IDLE_SYSFS_TYPES_H_ */ 39