1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 21c248b7dSInki Dae /* exynos_drm_crtc.h 31c248b7dSInki Dae * 41c248b7dSInki Dae * Copyright (c) 2011 Samsung Electronics Co., Ltd. 51c248b7dSInki Dae * Authors: 61c248b7dSInki Dae * Inki Dae <inki.dae@samsung.com> 71c248b7dSInki Dae * Joonyoung Shim <jy0922.shim@samsung.com> 81c248b7dSInki Dae * Seung-Woo Kim <sw0312.kim@samsung.com> 91c248b7dSInki Dae */ 101c248b7dSInki Dae 111c248b7dSInki Dae #ifndef _EXYNOS_DRM_CRTC_H_ 121c248b7dSInki Dae #define _EXYNOS_DRM_CRTC_H_ 131c248b7dSInki Dae 141ca582f1SAndrzej Hajda 15cc2d861cSGustavo Padovan #include "exynos_drm_drv.h" 16080be03dSSean Paul 1793bca243SGustavo Padovan struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, 187ee14cdcSGustavo Padovan struct drm_plane *plane, 191ca582f1SAndrzej Hajda enum exynos_drm_output_type out_type, 20f3aaf762SKrzysztof Kozlowski const struct exynos_drm_crtc_ops *ops, 2193bca243SGustavo Padovan void *context); 22c4533665SGustavo Padovan void exynos_drm_crtc_wait_pending_update(struct exynos_drm_crtc *exynos_crtc); 23822f6dfdSGustavo Padovan void exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc, 24822f6dfdSGustavo Padovan struct exynos_drm_plane *exynos_plane); 25080be03dSSean Paul 261ca582f1SAndrzej Hajda /* This function gets crtc device matched with out_type. */ 271ca582f1SAndrzej Hajda struct exynos_drm_crtc *exynos_drm_crtc_get_by_type(struct drm_device *drm_dev, 281ca582f1SAndrzej Hajda enum exynos_drm_output_type out_type); 291ca582f1SAndrzej Hajda 301ca582f1SAndrzej Hajda int exynos_drm_set_possible_crtcs(struct drm_encoder *encoder, 31cf67cc9aSGustavo Padovan enum exynos_drm_output_type out_type); 32f37cd5e8SInki Dae 335595d4d8SYoungJun Cho /* 345595d4d8SYoungJun Cho * This function calls the crtc device(manager)'s te_handler() callback 355595d4d8SYoungJun Cho * to trigger to transfer video image at the tearing effect synchronization 365595d4d8SYoungJun Cho * signal. 375595d4d8SYoungJun Cho */ 385595d4d8SYoungJun Cho void exynos_drm_crtc_te_handler(struct drm_crtc *crtc); 395595d4d8SYoungJun Cho 40a392276dSAndrzej Hajda void exynos_crtc_handle_event(struct exynos_drm_crtc *exynos_crtc); 41a392276dSAndrzej Hajda 421c248b7dSInki Dae #endif 43