xref: /linux/drivers/gpu/drm/i915/display/intel_flipq.h (revision 8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2025 Intel Corporation
4  */
5 
6 #ifndef __INTEL_FLIPQ_H__
7 #define __INTEL_FLIPQ_H__
8 
9 #include <linux/types.h>
10 
11 enum intel_dsb_id;
12 enum intel_flipq_id;
13 enum pipe;
14 struct intel_crtc;
15 struct intel_crtc_state;
16 struct intel_display;
17 struct intel_dsb;
18 
19 bool intel_flipq_supported(struct intel_display *display);
20 void intel_flipq_init(struct intel_display *display);
21 void intel_flipq_reset(struct intel_display *display, enum pipe pipe);
22 
23 void intel_flipq_enable(const struct intel_crtc_state *crtc_state);
24 void intel_flipq_disable(const struct intel_crtc_state *old_crtc_state);
25 
26 void intel_flipq_add(struct intel_crtc *crtc,
27 		     enum intel_flipq_id flip_queue_id,
28 		     unsigned int pts,
29 		     enum intel_dsb_id dsb_id,
30 		     struct intel_dsb *dsb);
31 int intel_flipq_exec_time_us(struct intel_display *display);
32 void intel_flipq_wait_dmc_halt(struct intel_dsb *dsb, struct intel_crtc *crtc);
33 void intel_flipq_unhalt_dmc(struct intel_dsb *dsb, struct intel_crtc *crtc);
34 void intel_flipq_dump(struct intel_crtc *crtc,
35 		      enum intel_flipq_id flip_queue_id);
36 
37 #endif /* __INTEL_FLIPQ_H__ */
38