xref: /linux/drivers/gpu/drm/exynos/exynos_drm_crtc.h (revision cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322)
11c248b7dSInki Dae /* exynos_drm_crtc.h
21c248b7dSInki Dae  *
31c248b7dSInki Dae  * Copyright (c) 2011 Samsung Electronics Co., Ltd.
41c248b7dSInki Dae  * Authors:
51c248b7dSInki Dae  *	Inki Dae <inki.dae@samsung.com>
61c248b7dSInki Dae  *	Joonyoung Shim <jy0922.shim@samsung.com>
71c248b7dSInki Dae  *	Seung-Woo Kim <sw0312.kim@samsung.com>
81c248b7dSInki Dae  *
9d81aecb5SInki Dae  * This program is free software; you can redistribute  it and/or modify it
10d81aecb5SInki Dae  * under  the terms of  the GNU General  Public License as published by the
11d81aecb5SInki Dae  * Free Software Foundation;  either version 2 of the  License, or (at your
12d81aecb5SInki Dae  * option) any later version.
131c248b7dSInki Dae  */
141c248b7dSInki Dae 
151c248b7dSInki Dae #ifndef _EXYNOS_DRM_CRTC_H_
161c248b7dSInki Dae #define _EXYNOS_DRM_CRTC_H_
171c248b7dSInki Dae 
18cc2d861cSGustavo Padovan #include "exynos_drm_drv.h"
19080be03dSSean Paul 
2093bca243SGustavo Padovan struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
217ee14cdcSGustavo Padovan 					struct drm_plane *plane,
2293bca243SGustavo Padovan 					int pipe,
2393bca243SGustavo Padovan 					enum exynos_drm_output_type type,
24f3aaf762SKrzysztof Kozlowski 					const struct exynos_drm_crtc_ops *ops,
2593bca243SGustavo Padovan 					void *context);
26080be03dSSean Paul int exynos_drm_crtc_enable_vblank(struct drm_device *dev, int pipe);
27080be03dSSean Paul void exynos_drm_crtc_disable_vblank(struct drm_device *dev, int pipe);
28eafd540aSGustavo Padovan void exynos_drm_crtc_finish_pageflip(struct exynos_drm_crtc *exynos_crtc);
29080be03dSSean Paul void exynos_drm_crtc_complete_scanout(struct drm_framebuffer *fb);
30080be03dSSean Paul 
31f37cd5e8SInki Dae /* This function gets pipe value to crtc device matched with out_type. */
32f37cd5e8SInki Dae int exynos_drm_crtc_get_pipe_from_type(struct drm_device *drm_dev,
33*cf67cc9aSGustavo Padovan 				       enum exynos_drm_output_type out_type);
34f37cd5e8SInki Dae 
355595d4d8SYoungJun Cho /*
365595d4d8SYoungJun Cho  * This function calls the crtc device(manager)'s te_handler() callback
375595d4d8SYoungJun Cho  * to trigger to transfer video image at the tearing effect synchronization
385595d4d8SYoungJun Cho  * signal.
395595d4d8SYoungJun Cho  */
405595d4d8SYoungJun Cho void exynos_drm_crtc_te_handler(struct drm_crtc *crtc);
415595d4d8SYoungJun Cho 
421c248b7dSInki Dae #endif
43