19ef8a9dcSDaniel Vetter /* 29ef8a9dcSDaniel Vetter * Copyright (C) 2018 Intel Corp. 39ef8a9dcSDaniel Vetter * 49ef8a9dcSDaniel Vetter * Permission is hereby granted, free of charge, to any person obtaining a 59ef8a9dcSDaniel Vetter * copy of this software and associated documentation files (the "Software"), 69ef8a9dcSDaniel Vetter * to deal in the Software without restriction, including without limitation 79ef8a9dcSDaniel Vetter * the rights to use, copy, modify, merge, publish, distribute, sublicense, 89ef8a9dcSDaniel Vetter * and/or sell copies of the Software, and to permit persons to whom the 99ef8a9dcSDaniel Vetter * Software is furnished to do so, subject to the following conditions: 109ef8a9dcSDaniel Vetter * 119ef8a9dcSDaniel Vetter * The above copyright notice and this permission notice shall be included in 129ef8a9dcSDaniel Vetter * all copies or substantial portions of the Software. 139ef8a9dcSDaniel Vetter * 149ef8a9dcSDaniel Vetter * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 159ef8a9dcSDaniel Vetter * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 169ef8a9dcSDaniel Vetter * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 179ef8a9dcSDaniel Vetter * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 189ef8a9dcSDaniel Vetter * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 199ef8a9dcSDaniel Vetter * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 209ef8a9dcSDaniel Vetter * OTHER DEALINGS IN THE SOFTWARE. 219ef8a9dcSDaniel Vetter * 229ef8a9dcSDaniel Vetter * Authors: 239ef8a9dcSDaniel Vetter * Rob Clark <robdclark@gmail.com> 249ef8a9dcSDaniel Vetter * Daniel Vetter <daniel.vetter@ffwll.ch> 259ef8a9dcSDaniel Vetter */ 269ef8a9dcSDaniel Vetter 279ef8a9dcSDaniel Vetter #include <linux/types.h> 289ef8a9dcSDaniel Vetter 299ef8a9dcSDaniel Vetter struct drm_crtc; 309ef8a9dcSDaniel Vetter struct drm_crtc_state; 319ef8a9dcSDaniel Vetter struct drm_plane; 329ef8a9dcSDaniel Vetter struct drm_plane_state; 339ef8a9dcSDaniel Vetter struct drm_connector; 349ef8a9dcSDaniel Vetter struct drm_connector_state; 359ef8a9dcSDaniel Vetter struct drm_private_obj; 369ef8a9dcSDaniel Vetter struct drm_private_state; 379ef8a9dcSDaniel Vetter struct drm_modeset_acquire_ctx; 389ef8a9dcSDaniel Vetter struct drm_device; 399ef8a9dcSDaniel Vetter 40ab2dd990SVille Syrjälä void __drm_atomic_helper_crtc_state_reset(struct drm_crtc_state *state, 41ab2dd990SVille Syrjälä struct drm_crtc *crtc); 427d26097bSMaarten Lankhorst void __drm_atomic_helper_crtc_reset(struct drm_crtc *crtc, 437d26097bSMaarten Lankhorst struct drm_crtc_state *state); 449ef8a9dcSDaniel Vetter void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc); 459ef8a9dcSDaniel Vetter void __drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc, 469ef8a9dcSDaniel Vetter struct drm_crtc_state *state); 479ef8a9dcSDaniel Vetter struct drm_crtc_state * 489ef8a9dcSDaniel Vetter drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc); 499ef8a9dcSDaniel Vetter void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc_state *state); 509ef8a9dcSDaniel Vetter void drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc, 519ef8a9dcSDaniel Vetter struct drm_crtc_state *state); 529ef8a9dcSDaniel Vetter 53ab2dd990SVille Syrjälä void __drm_atomic_helper_plane_state_reset(struct drm_plane_state *state, 54ab2dd990SVille Syrjälä struct drm_plane *plane); 559ef8a9dcSDaniel Vetter void __drm_atomic_helper_plane_reset(struct drm_plane *plane, 569ef8a9dcSDaniel Vetter struct drm_plane_state *state); 579ef8a9dcSDaniel Vetter void drm_atomic_helper_plane_reset(struct drm_plane *plane); 589ef8a9dcSDaniel Vetter void __drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane, 599ef8a9dcSDaniel Vetter struct drm_plane_state *state); 609ef8a9dcSDaniel Vetter struct drm_plane_state * 619ef8a9dcSDaniel Vetter drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane); 629ef8a9dcSDaniel Vetter void __drm_atomic_helper_plane_destroy_state(struct drm_plane_state *state); 639ef8a9dcSDaniel Vetter void drm_atomic_helper_plane_destroy_state(struct drm_plane *plane, 649ef8a9dcSDaniel Vetter struct drm_plane_state *state); 659ef8a9dcSDaniel Vetter 66ab2dd990SVille Syrjälä void __drm_atomic_helper_connector_state_reset(struct drm_connector_state *conn_state, 67ab2dd990SVille Syrjälä struct drm_connector *connector); 689ef8a9dcSDaniel Vetter void __drm_atomic_helper_connector_reset(struct drm_connector *connector, 699ef8a9dcSDaniel Vetter struct drm_connector_state *conn_state); 709ef8a9dcSDaniel Vetter void drm_atomic_helper_connector_reset(struct drm_connector *connector); 71731514b4SMaxime Ripard void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector); 729ef8a9dcSDaniel Vetter void 739ef8a9dcSDaniel Vetter __drm_atomic_helper_connector_duplicate_state(struct drm_connector *connector, 749ef8a9dcSDaniel Vetter struct drm_connector_state *state); 759ef8a9dcSDaniel Vetter struct drm_connector_state * 769ef8a9dcSDaniel Vetter drm_atomic_helper_connector_duplicate_state(struct drm_connector *connector); 779ef8a9dcSDaniel Vetter void 789ef8a9dcSDaniel Vetter __drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state); 799ef8a9dcSDaniel Vetter void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector, 809ef8a9dcSDaniel Vetter struct drm_connector_state *state); 819ef8a9dcSDaniel Vetter void __drm_atomic_helper_private_obj_duplicate_state(struct drm_private_obj *obj, 829ef8a9dcSDaniel Vetter struct drm_private_state *state); 83