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 14 struct drm_i915_gem_object; 15 16 /* RC6 residency types */ 17 enum 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 26 struct 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 33 struct drm_i915_gem_object *pctx; 34 35 bool supported : 1; 36 bool enabled : 1; 37 bool manual : 1; 38 bool wakeref : 1; 39 }; 40 41 #endif /* INTEL_RC6_TYPES_H */ 42