1fbf756c3SDave Airlie /* SPDX-License-Identifier: MIT */
2fbf756c3SDave Airlie /*
3fbf756c3SDave Airlie  * Copyright © 2020 Intel Corporation
4fbf756c3SDave Airlie  */
5fbf756c3SDave Airlie 
6fbf756c3SDave Airlie #ifndef _INTEL_CRTC_H_
7fbf756c3SDave Airlie #define _INTEL_CRTC_H_
8fbf756c3SDave Airlie 
9fbf756c3SDave Airlie #include <linux/types.h>
10fbf756c3SDave Airlie 
11fbf756c3SDave Airlie enum pipe;
12*09f8fe4cSVille Syrjälä struct drm_display_mode;
13fbf756c3SDave Airlie struct drm_i915_private;
14fbf756c3SDave Airlie struct intel_crtc;
15fbf756c3SDave Airlie struct intel_crtc_state;
16fbf756c3SDave Airlie 
17*09f8fe4cSVille Syrjälä int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
18*09f8fe4cSVille Syrjälä 			     int usecs);
19fbf756c3SDave Airlie u32 intel_crtc_max_vblank_count(const struct intel_crtc_state *crtc_state);
20fbf756c3SDave Airlie int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe);
21fbf756c3SDave Airlie struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc);
22fbf756c3SDave Airlie void intel_crtc_state_reset(struct intel_crtc_state *crtc_state,
23fbf756c3SDave Airlie 			    struct intel_crtc *crtc);
247c53e628SJani Nikula u32 intel_crtc_get_vblank_counter(struct intel_crtc *crtc);
257c53e628SJani Nikula void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state);
267c53e628SJani Nikula void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state);
27*09f8fe4cSVille Syrjälä void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state);
28*09f8fe4cSVille Syrjälä void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state);
29fbf756c3SDave Airlie 
30fbf756c3SDave Airlie #endif
31