xref: /linux/drivers/gpu/drm/exynos/exynos_drm_crtc.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
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