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