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
11struct xe_guc_pc;
12
13/* States of GT Idle */
14enum 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 */
23struct 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