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
11enum intel_rc6_res_type;
12struct intel_rc6;
13struct seq_file;
14
15void intel_rc6_init(struct intel_rc6 *rc6);
16void intel_rc6_fini(struct intel_rc6 *rc6);
17
18void intel_rc6_unpark(struct intel_rc6 *rc6);
19void intel_rc6_park(struct intel_rc6 *rc6);
20
21void intel_rc6_sanitize(struct intel_rc6 *rc6);
22void intel_rc6_enable(struct intel_rc6 *rc6);
23void intel_rc6_disable(struct intel_rc6 *rc6);
24
25u64 intel_rc6_residency_ns(struct intel_rc6 *rc6, enum intel_rc6_res_type id);
26u64 intel_rc6_residency_us(struct intel_rc6 *rc6, enum intel_rc6_res_type id);
27void intel_rc6_print_residency(struct seq_file *m, const char *title,
28			       enum intel_rc6_res_type id);
29
30bool intel_check_bios_c6_setup(struct intel_rc6 *rc6);
31
32#endif /* INTEL_RC6_H */
33