xref: /openbmc/linux/include/drm/drm_atomic_uapi.h (revision 1ea28bc5)
172fdb40cSDaniel Vetter /*
272fdb40cSDaniel Vetter  * Copyright (C) 2014 Red Hat
372fdb40cSDaniel Vetter  * Copyright (C) 2014 Intel Corp.
472fdb40cSDaniel Vetter  * Copyright (C) 2018 Intel Corp.
572fdb40cSDaniel Vetter  *
672fdb40cSDaniel Vetter  * Permission is hereby granted, free of charge, to any person obtaining a
772fdb40cSDaniel Vetter  * copy of this software and associated documentation files (the "Software"),
872fdb40cSDaniel Vetter  * to deal in the Software without restriction, including without limitation
972fdb40cSDaniel Vetter  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1072fdb40cSDaniel Vetter  * and/or sell copies of the Software, and to permit persons to whom the
1172fdb40cSDaniel Vetter  * Software is furnished to do so, subject to the following conditions:
1272fdb40cSDaniel Vetter  *
1372fdb40cSDaniel Vetter  * The above copyright notice and this permission notice shall be included in
1472fdb40cSDaniel Vetter  * all copies or substantial portions of the Software.
1572fdb40cSDaniel Vetter  *
1672fdb40cSDaniel Vetter  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1772fdb40cSDaniel Vetter  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1872fdb40cSDaniel Vetter  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1972fdb40cSDaniel Vetter  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
2072fdb40cSDaniel Vetter  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
2172fdb40cSDaniel Vetter  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2272fdb40cSDaniel Vetter  * OTHER DEALINGS IN THE SOFTWARE.
2372fdb40cSDaniel Vetter  *
2472fdb40cSDaniel Vetter  * Authors:
2572fdb40cSDaniel Vetter  * Rob Clark <robdclark@gmail.com>
2672fdb40cSDaniel Vetter  * Daniel Vetter <daniel.vetter@ffwll.ch>
2772fdb40cSDaniel Vetter  */
2872fdb40cSDaniel Vetter 
2972fdb40cSDaniel Vetter #ifndef DRM_ATOMIC_UAPI_H_
3072fdb40cSDaniel Vetter #define DRM_ATOMIC_UAPI_H_
3172fdb40cSDaniel Vetter 
3272fdb40cSDaniel Vetter struct drm_crtc_state;
3372fdb40cSDaniel Vetter struct drm_display_mode;
3472fdb40cSDaniel Vetter struct drm_property_blob;
3572fdb40cSDaniel Vetter struct drm_plane_state;
3672fdb40cSDaniel Vetter struct drm_crtc;
3772fdb40cSDaniel Vetter struct drm_connector_state;
3872fdb40cSDaniel Vetter struct dma_fence;
3972fdb40cSDaniel Vetter struct drm_framebuffer;
4072fdb40cSDaniel Vetter 
4172fdb40cSDaniel Vetter int __must_check
4272fdb40cSDaniel Vetter drm_atomic_set_mode_for_crtc(struct drm_crtc_state *state,
4372fdb40cSDaniel Vetter 			     const struct drm_display_mode *mode);
4472fdb40cSDaniel Vetter int __must_check
4572fdb40cSDaniel Vetter drm_atomic_set_mode_prop_for_crtc(struct drm_crtc_state *state,
4672fdb40cSDaniel Vetter 				  struct drm_property_blob *blob);
4772fdb40cSDaniel Vetter int __must_check
4872fdb40cSDaniel Vetter drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state,
4972fdb40cSDaniel Vetter 			      struct drm_crtc *crtc);
5072fdb40cSDaniel Vetter void drm_atomic_set_fb_for_plane(struct drm_plane_state *plane_state,
5172fdb40cSDaniel Vetter 				 struct drm_framebuffer *fb);
5272fdb40cSDaniel Vetter int __must_check
5372fdb40cSDaniel Vetter drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state,
5472fdb40cSDaniel Vetter 				  struct drm_crtc *crtc);
5572fdb40cSDaniel Vetter 
5672fdb40cSDaniel Vetter #endif
57