18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* exynos_drm_crtc.h 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (c) 2011 Samsung Electronics Co., Ltd. 58c2ecf20Sopenharmony_ci * Authors: 68c2ecf20Sopenharmony_ci * Inki Dae <inki.dae@samsung.com> 78c2ecf20Sopenharmony_ci * Joonyoung Shim <jy0922.shim@samsung.com> 88c2ecf20Sopenharmony_ci * Seung-Woo Kim <sw0312.kim@samsung.com> 98c2ecf20Sopenharmony_ci */ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#ifndef _EXYNOS_DRM_CRTC_H_ 128c2ecf20Sopenharmony_ci#define _EXYNOS_DRM_CRTC_H_ 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include "exynos_drm_drv.h" 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistruct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, 188c2ecf20Sopenharmony_ci struct drm_plane *plane, 198c2ecf20Sopenharmony_ci enum exynos_drm_output_type out_type, 208c2ecf20Sopenharmony_ci const struct exynos_drm_crtc_ops *ops, 218c2ecf20Sopenharmony_ci void *context); 228c2ecf20Sopenharmony_civoid exynos_drm_crtc_wait_pending_update(struct exynos_drm_crtc *exynos_crtc); 238c2ecf20Sopenharmony_civoid exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc, 248c2ecf20Sopenharmony_ci struct exynos_drm_plane *exynos_plane); 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci/* This function gets crtc device matched with out_type. */ 278c2ecf20Sopenharmony_cistruct exynos_drm_crtc *exynos_drm_crtc_get_by_type(struct drm_device *drm_dev, 288c2ecf20Sopenharmony_ci enum exynos_drm_output_type out_type); 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciint exynos_drm_set_possible_crtcs(struct drm_encoder *encoder, 318c2ecf20Sopenharmony_ci enum exynos_drm_output_type out_type); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci/* 348c2ecf20Sopenharmony_ci * This function calls the crtc device(manager)'s te_handler() callback 358c2ecf20Sopenharmony_ci * to trigger to transfer video image at the tearing effect synchronization 368c2ecf20Sopenharmony_ci * signal. 378c2ecf20Sopenharmony_ci */ 388c2ecf20Sopenharmony_civoid exynos_drm_crtc_te_handler(struct drm_crtc *crtc); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_civoid exynos_crtc_handle_event(struct exynos_drm_crtc *exynos_crtc); 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci#endif 43