1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2019 Intel Corporation
4  */
5 
6 #ifndef INTEL_RC6_H
7 #define INTEL_RC6_H
8 
9 #include <linux/types.h>
10 
11 enum intel_rc6_res_type;
12 struct intel_rc6;
13 struct seq_file;
14 
15 void intel_rc6_init(struct intel_rc6 *rc6);
16 void intel_rc6_fini(struct intel_rc6 *rc6);
17 
18 void intel_rc6_unpark(struct intel_rc6 *rc6);
19 void intel_rc6_park(struct intel_rc6 *rc6);
20 
21 void intel_rc6_sanitize(struct intel_rc6 *rc6);
22 void intel_rc6_enable(struct intel_rc6 *rc6);
23 void intel_rc6_disable(struct intel_rc6 *rc6);
24 
25 u64 intel_rc6_residency_ns(struct intel_rc6 *rc6, enum intel_rc6_res_type id);
26 u64 intel_rc6_residency_us(struct intel_rc6 *rc6, enum intel_rc6_res_type id);
27 void intel_rc6_print_residency(struct seq_file *m, const char *title,
28 			       enum intel_rc6_res_type id);
29 
30 #endif /* INTEL_RC6_H */
31