1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2019 Intel Corporation
4 */
5
6#ifndef INTEL_RC6_TYPES_H
7#define INTEL_RC6_TYPES_H
8
9#include <linux/spinlock.h>
10#include <linux/types.h>
11
12#include "intel_engine_types.h"
13
14struct drm_i915_gem_object;
15
16/* RC6 residency types */
17enum intel_rc6_res_type {
18 INTEL_RC6_RES_RC6_LOCKED,
19 INTEL_RC6_RES_RC6,
20 INTEL_RC6_RES_RC6p,
21 INTEL_RC6_RES_RC6pp,
22 INTEL_RC6_RES_MAX,
23 INTEL_RC6_RES_VLV_MEDIA = INTEL_RC6_RES_RC6p,
24};
25
26struct intel_rc6 {
27 i915_reg_t res_reg[INTEL_RC6_RES_MAX];
28 u64 prev_hw_residency[INTEL_RC6_RES_MAX];
29 u64 cur_residency[INTEL_RC6_RES_MAX];
30
31 u32 ctl_enable;
32 u32 bios_rc_state;
33
34 struct drm_i915_gem_object *pctx;
35
36 bool supported : 1;
37 bool enabled : 1;
38 bool manual : 1;
39 bool wakeref : 1;
40 bool bios_state_captured : 1;
41};
42
43#endif /* INTEL_RC6_TYPES_H */
44

source code of linux/drivers/gpu/drm/i915/gt/intel_rc6_types.h