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
11enum intel_dsb_id;
12enum intel_flipq_id;
13enum pipe;
14struct intel_crtc;
15struct intel_crtc_state;
16struct intel_display;
17struct intel_dsb;
18
19bool intel_flipq_supported(struct intel_display *display);
20void intel_flipq_init(struct intel_display *display);
21void intel_flipq_reset(struct intel_display *display, enum pipe pipe);
22
23void intel_flipq_enable(const struct intel_crtc_state *crtc_state);
24void intel_flipq_disable(const struct intel_crtc_state *old_crtc_state);
25
26void 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);
31int intel_flipq_exec_time_us(struct intel_display *display);
32void intel_flipq_wait_dmc_halt(struct intel_dsb *dsb, struct intel_crtc *crtc);
33void intel_flipq_unhalt_dmc(struct intel_dsb *dsb, struct intel_crtc *crtc);
34void intel_flipq_dump(struct intel_crtc *crtc,
35 enum intel_flipq_id flip_queue_id);
36
37#endif /* __INTEL_FLIPQ_H__ */
38