xref: /linux/drivers/gpu/drm/xe/xe_gt_idle_types.h (revision 41c177cf354126a22443b5c80cec9fdd313e67e1)
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