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_property;
18struct intel_atomic_state;
19struct intel_connector;
20struct intel_crtc;
21struct intel_crtc_state;
22
23int intel_digital_connector_atomic_get_property(struct drm_connector *connector,
24 const struct drm_connector_state *state,
25 struct drm_property *property,
26 u64 *val);
27int intel_digital_connector_atomic_set_property(struct drm_connector *connector,
28 struct drm_connector_state *state,
29 struct drm_property *property,
30 u64 val);
31int intel_digital_connector_atomic_check(struct drm_connector *conn,
32 struct drm_atomic_state *state);
33struct drm_connector_state *
34intel_digital_connector_duplicate_state(struct drm_connector *connector);
35bool intel_connector_needs_modeset(struct intel_atomic_state *state,
36 struct drm_connector *connector);
37bool intel_any_crtc_needs_modeset(struct intel_atomic_state *state);
38struct intel_digital_connector_state *
39intel_atomic_get_digital_connector_state(struct intel_atomic_state *state,
40 struct intel_connector *connector);
41
42struct drm_crtc_state *intel_crtc_duplicate_state(struct drm_crtc *crtc);
43void intel_crtc_destroy_state(struct drm_crtc *crtc,
44 struct drm_crtc_state *state);
45void intel_crtc_free_hw_state(struct intel_crtc_state *crtc_state);
46struct drm_atomic_state *intel_atomic_state_alloc(struct drm_device *dev);
47void intel_atomic_state_free(struct drm_atomic_state *state);
48void intel_atomic_state_clear(struct drm_atomic_state *state);
49
50struct intel_crtc_state *
51intel_atomic_get_crtc_state(struct drm_atomic_state *state,
52 struct intel_crtc *crtc);
53
54#endif /* __INTEL_ATOMIC_H__ */
55