1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright �� 2019 Intel Corporation
4 */
5
6#ifndef __INTEL_ATOMIC_H__
7#define __INTEL_ATOMIC_H__
8
9#include <linux/types.h>
10
11struct drm_atomic_state;
12struct drm_connector;
13struct drm_connector_state;
14struct drm_crtc;
15struct drm_crtc_state;
16struct drm_device;
17struct drm_i915_private;
18struct drm_property;
19struct intel_atomic_state;
20struct intel_connector;
21struct intel_crtc;
22struct intel_crtc_state;
23
24int intel_digital_connector_atomic_get_property(struct drm_connector *connector,
25						const struct drm_connector_state *state,
26						struct drm_property *property,
27						u64 *val);
28int intel_digital_connector_atomic_set_property(struct drm_connector *connector,
29						struct drm_connector_state *state,
30						struct drm_property *property,
31						u64 val);
32int intel_digital_connector_atomic_check(struct drm_connector *conn,
33					 struct drm_atomic_state *state);
34struct drm_connector_state *
35intel_digital_connector_duplicate_state(struct drm_connector *connector);
36bool intel_connector_needs_modeset(struct intel_atomic_state *state,
37				   struct drm_connector *connector);
38bool intel_any_crtc_needs_modeset(struct intel_atomic_state *state);
39struct intel_digital_connector_state *
40intel_atomic_get_digital_connector_state(struct intel_atomic_state *state,
41					 struct intel_connector *connector);
42
43struct drm_crtc_state *intel_crtc_duplicate_state(struct drm_crtc *crtc);
44void intel_crtc_destroy_state(struct drm_crtc *crtc,
45			       struct drm_crtc_state *state);
46void intel_crtc_free_hw_state(struct intel_crtc_state *crtc_state);
47struct drm_atomic_state *intel_atomic_state_alloc(struct drm_device *dev);
48void intel_atomic_state_free(struct drm_atomic_state *state);
49void intel_atomic_state_clear(struct drm_atomic_state *state);
50
51struct intel_crtc_state *
52intel_atomic_get_crtc_state(struct drm_atomic_state *state,
53			    struct intel_crtc *crtc);
54
55#endif /* __INTEL_ATOMIC_H__ */
56