Let's make sure FBC is always disabled when we start to take over the hardware state. I suspect this should never really happen, since the only time when we really should be taking over with the display already active is when the previous state was progammed by the BIOS, which likely shouldn't use FBC. This could be driver init, or S4 resume when the boot kernel doesn't load i915. But I suppose no harm in keeping this code around for exra safety since it's quite trivial. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220315140001.1172-7-ville.syrjala@linux.intel.com Reviewed-by: Mika Kahola <mika.kahola@intel.com>
49 lines
1.5 KiB
C
49 lines
1.5 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2019 Intel Corporation
|
|
*/
|
|
|
|
#ifndef __INTEL_FBC_H__
|
|
#define __INTEL_FBC_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
enum fb_op_origin;
|
|
struct drm_i915_private;
|
|
struct intel_atomic_state;
|
|
struct intel_crtc;
|
|
struct intel_crtc_state;
|
|
struct intel_fbc;
|
|
struct intel_plane;
|
|
struct intel_plane_state;
|
|
|
|
enum intel_fbc_id {
|
|
INTEL_FBC_A,
|
|
|
|
I915_MAX_FBCS,
|
|
};
|
|
|
|
int intel_fbc_atomic_check(struct intel_atomic_state *state);
|
|
bool intel_fbc_pre_update(struct intel_atomic_state *state,
|
|
struct intel_crtc *crtc);
|
|
void intel_fbc_post_update(struct intel_atomic_state *state,
|
|
struct intel_crtc *crtc);
|
|
void intel_fbc_init(struct drm_i915_private *dev_priv);
|
|
void intel_fbc_cleanup(struct drm_i915_private *dev_priv);
|
|
void intel_fbc_sanitize(struct drm_i915_private *dev_priv);
|
|
void intel_fbc_update(struct intel_atomic_state *state,
|
|
struct intel_crtc *crtc);
|
|
void intel_fbc_disable(struct intel_crtc *crtc);
|
|
void intel_fbc_invalidate(struct drm_i915_private *dev_priv,
|
|
unsigned int frontbuffer_bits,
|
|
enum fb_op_origin origin);
|
|
void intel_fbc_flush(struct drm_i915_private *dev_priv,
|
|
unsigned int frontbuffer_bits, enum fb_op_origin origin);
|
|
void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane);
|
|
void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915);
|
|
void intel_fbc_reset_underrun(struct drm_i915_private *i915);
|
|
void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);
|
|
void intel_fbc_debugfs_register(struct drm_i915_private *i915);
|
|
|
|
#endif /* __INTEL_FBC_H__ */
|