1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright �� 2021 Intel Corporation
4 */
5
6#ifndef __INTEL_DRRS_H__
7#define __INTEL_DRRS_H__
8
9#include <linux/types.h>
10
11enum drrs_type;
12enum transcoder;
13struct drm_i915_private;
14struct intel_atomic_state;
15struct intel_crtc;
16struct intel_crtc_state;
17struct intel_connector;
18
19bool intel_cpu_transcoder_has_drrs(struct drm_i915_private *i915,
20				   enum transcoder cpu_transcoder);
21const char *intel_drrs_type_str(enum drrs_type drrs_type);
22bool intel_drrs_is_active(struct intel_crtc *crtc);
23void intel_drrs_activate(const struct intel_crtc_state *crtc_state);
24void intel_drrs_deactivate(const struct intel_crtc_state *crtc_state);
25void intel_drrs_invalidate(struct drm_i915_private *dev_priv,
26			   unsigned int frontbuffer_bits);
27void intel_drrs_flush(struct drm_i915_private *dev_priv,
28		      unsigned int frontbuffer_bits);
29void intel_drrs_crtc_init(struct intel_crtc *crtc);
30void intel_drrs_crtc_debugfs_add(struct intel_crtc *crtc);
31void intel_drrs_connector_debugfs_add(struct intel_connector *connector);
32
33#endif /* __INTEL_DRRS_H__ */
34