intel_fbc.h revision 1.1.1.1 1 /* $NetBSD: intel_fbc.h,v 1.1.1.1 2021/12/18 20:15:30 riastradh Exp $ */
2
3 /* SPDX-License-Identifier: MIT */
4 /*
5 * Copyright 2019 Intel Corporation
6 */
7
8 #ifndef __INTEL_FBC_H__
9 #define __INTEL_FBC_H__
10
11 #include <linux/types.h>
12
13 #include "intel_frontbuffer.h"
14
15 struct drm_i915_private;
16 struct intel_atomic_state;
17 struct intel_crtc;
18 struct intel_crtc_state;
19 struct intel_plane_state;
20
21 void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv,
22 struct intel_atomic_state *state);
23 bool intel_fbc_is_active(struct drm_i915_private *dev_priv);
24 bool intel_fbc_pre_update(struct intel_crtc *crtc,
25 const struct intel_crtc_state *crtc_state,
26 const struct intel_plane_state *plane_state);
27 void intel_fbc_post_update(struct intel_crtc *crtc);
28 void intel_fbc_init(struct drm_i915_private *dev_priv);
29 void intel_fbc_enable(struct intel_crtc *crtc,
30 const struct intel_crtc_state *crtc_state,
31 const struct intel_plane_state *plane_state);
32 void intel_fbc_disable(struct intel_crtc *crtc);
33 void intel_fbc_global_disable(struct drm_i915_private *dev_priv);
34 void intel_fbc_invalidate(struct drm_i915_private *dev_priv,
35 unsigned int frontbuffer_bits,
36 enum fb_op_origin origin);
37 void intel_fbc_flush(struct drm_i915_private *dev_priv,
38 unsigned int frontbuffer_bits, enum fb_op_origin origin);
39 void intel_fbc_cleanup_cfb(struct drm_i915_private *dev_priv);
40 void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *dev_priv);
41 int intel_fbc_reset_underrun(struct drm_i915_private *dev_priv);
42
43 #endif /* __INTEL_FBC_H__ */
44