Merge tag 'drm-intel-next-2019-05-24' of git://anongit.freedesktop.org/drm/drm-intel...
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / intel_atomic.h
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
11 struct drm_atomic_state;
12 struct drm_connector;
13 struct drm_connector_state;
14 struct drm_crtc;
15 struct drm_crtc_state;
16 struct drm_device;
17 struct drm_i915_private;
18 struct drm_property;
19 struct intel_crtc;
20 struct intel_crtc_state;
21
22 int intel_digital_connector_atomic_get_property(struct drm_connector *connector,
23                                                 const struct drm_connector_state *state,
24                                                 struct drm_property *property,
25                                                 u64 *val);
26 int intel_digital_connector_atomic_set_property(struct drm_connector *connector,
27                                                 struct drm_connector_state *state,
28                                                 struct drm_property *property,
29                                                 u64 val);
30 int intel_digital_connector_atomic_check(struct drm_connector *conn,
31                                          struct drm_connector_state *new_state);
32 struct drm_connector_state *
33 intel_digital_connector_duplicate_state(struct drm_connector *connector);
34
35 struct drm_crtc_state *intel_crtc_duplicate_state(struct drm_crtc *crtc);
36 void intel_crtc_destroy_state(struct drm_crtc *crtc,
37                                struct drm_crtc_state *state);
38 struct drm_atomic_state *intel_atomic_state_alloc(struct drm_device *dev);
39 void intel_atomic_state_clear(struct drm_atomic_state *state);
40
41 struct intel_crtc_state *
42 intel_atomic_get_crtc_state(struct drm_atomic_state *state,
43                             struct intel_crtc *crtc);
44
45 int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
46                                struct intel_crtc *intel_crtc,
47                                struct intel_crtc_state *crtc_state);
48
49 #endif /* __INTEL_ATOMIC_H__ */