1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright �� 2022 Intel Corporation
4 */
5
6#ifndef _XE_GUC_PC_H_
7#define _XE_GUC_PC_H_
8
9#include "xe_guc_pc_types.h"
10
11int xe_guc_pc_init(struct xe_guc_pc *pc);
12int xe_guc_pc_start(struct xe_guc_pc *pc);
13int xe_guc_pc_stop(struct xe_guc_pc *pc);
14int xe_guc_pc_gucrc_disable(struct xe_guc_pc *pc);
15
16u32 xe_guc_pc_get_act_freq(struct xe_guc_pc *pc);
17int xe_guc_pc_get_cur_freq(struct xe_guc_pc *pc, u32 *freq);
18u32 xe_guc_pc_get_rp0_freq(struct xe_guc_pc *pc);
19u32 xe_guc_pc_get_rpe_freq(struct xe_guc_pc *pc);
20u32 xe_guc_pc_get_rpn_freq(struct xe_guc_pc *pc);
21int xe_guc_pc_get_min_freq(struct xe_guc_pc *pc, u32 *freq);
22int xe_guc_pc_set_min_freq(struct xe_guc_pc *pc, u32 freq);
23int xe_guc_pc_get_max_freq(struct xe_guc_pc *pc, u32 *freq);
24int xe_guc_pc_set_max_freq(struct xe_guc_pc *pc, u32 freq);
25
26enum xe_gt_idle_state xe_guc_pc_c_status(struct xe_guc_pc *pc);
27u64 xe_guc_pc_rc6_residency(struct xe_guc_pc *pc);
28u64 xe_guc_pc_mc6_residency(struct xe_guc_pc *pc);
29void xe_guc_pc_init_early(struct xe_guc_pc *pc);
30#endif /* _XE_GUC_PC_H_ */
31