xref: /linux/drivers/gpu/drm/i915/display/intel_flipq.h (revision ec3a347beaa21b4a041f636b7081d17677fb3f56)
1470022b5SVille Syrjälä /* SPDX-License-Identifier: MIT */
2470022b5SVille Syrjälä /*
3470022b5SVille Syrjälä  * Copyright © 2025 Intel Corporation
4470022b5SVille Syrjälä  */
5470022b5SVille Syrjälä 
6470022b5SVille Syrjälä #ifndef __INTEL_FLIPQ_H__
7470022b5SVille Syrjälä #define __INTEL_FLIPQ_H__
8470022b5SVille Syrjälä 
9470022b5SVille Syrjälä #include <linux/types.h>
10470022b5SVille Syrjälä 
11470022b5SVille Syrjälä enum intel_dsb_id;
12470022b5SVille Syrjälä enum intel_flipq_id;
13470022b5SVille Syrjälä enum pipe;
14470022b5SVille Syrjälä struct intel_crtc;
15470022b5SVille Syrjälä struct intel_crtc_state;
16470022b5SVille Syrjälä struct intel_display;
17470022b5SVille Syrjälä struct intel_dsb;
18470022b5SVille Syrjälä 
19470022b5SVille Syrjälä bool intel_flipq_supported(struct intel_display *display);
20470022b5SVille Syrjälä void intel_flipq_init(struct intel_display *display);
21470022b5SVille Syrjälä void intel_flipq_reset(struct intel_display *display, enum pipe pipe);
22470022b5SVille Syrjälä 
23470022b5SVille Syrjälä void intel_flipq_enable(const struct intel_crtc_state *crtc_state);
24470022b5SVille Syrjälä void intel_flipq_disable(const struct intel_crtc_state *old_crtc_state);
25470022b5SVille Syrjälä 
26470022b5SVille Syrjälä void intel_flipq_add(struct intel_crtc *crtc,
27470022b5SVille Syrjälä 		     enum intel_flipq_id flip_queue_id,
28470022b5SVille Syrjälä 		     unsigned int pts,
29470022b5SVille Syrjälä 		     enum intel_dsb_id dsb_id,
30470022b5SVille Syrjälä 		     struct intel_dsb *dsb);
31*ec3a347bSVille Syrjälä int intel_flipq_exec_time_us(struct intel_display *display);
32470022b5SVille Syrjälä 
33470022b5SVille Syrjälä #endif /* __INTEL_FLIPQ_H__ */
34