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