blob: 0ed4f2b8595a25532e2f5952b51ef5ec8cad7b49 [file] [log] [blame]
Thomas Gleixner2874c5f2019-05-27 08:55:01 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Inki Dae1c248b72011-10-04 19:19:01 +09002/* exynos_drm_crtc.h
3 *
4 * Copyright (c) 2011 Samsung Electronics Co., Ltd.
5 * Authors:
6 * Inki Dae <inki.dae@samsung.com>
7 * Joonyoung Shim <jy0922.shim@samsung.com>
8 * Seung-Woo Kim <sw0312.kim@samsung.com>
Inki Dae1c248b72011-10-04 19:19:01 +09009 */
10
11#ifndef _EXYNOS_DRM_CRTC_H_
12#define _EXYNOS_DRM_CRTC_H_
13
Andrzej Hajda1ca582f2017-08-24 15:33:51 +020014
Gustavo Padovancc2d8612014-11-13 17:24:06 +090015#include "exynos_drm_drv.h"
Sean Paul080be03d2014-02-19 21:02:55 +090016
Gustavo Padovan93bca242015-01-18 18:16:23 +090017struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
Krzysztof Kozlowskif3aaf762015-05-07 09:04:45 +090018 struct drm_plane *plane,
Andrzej Hajda1ca582f2017-08-24 15:33:51 +020019 enum exynos_drm_output_type out_type,
Krzysztof Kozlowskif3aaf762015-05-07 09:04:45 +090020 const struct exynos_drm_crtc_ops *ops,
21 void *context);
Gustavo Padovanc4533662015-08-15 13:26:18 -030022void exynos_drm_crtc_wait_pending_update(struct exynos_drm_crtc *exynos_crtc);
Gustavo Padovan822f6df2015-08-15 13:26:14 -030023void exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc,
24 struct exynos_drm_plane *exynos_plane);
Sean Paul080be03d2014-02-19 21:02:55 +090025
Andrzej Hajda1ca582f2017-08-24 15:33:51 +020026/* This function gets crtc device matched with out_type. */
27struct exynos_drm_crtc *exynos_drm_crtc_get_by_type(struct drm_device *drm_dev,
Gustavo Padovancf67cc92015-08-11 17:38:06 +090028 enum exynos_drm_output_type out_type);
Inki Daef37cd5e2014-05-09 14:25:20 +090029
Andrzej Hajda1ca582f2017-08-24 15:33:51 +020030int exynos_drm_set_possible_crtcs(struct drm_encoder *encoder,
31 enum exynos_drm_output_type out_type);
32
YoungJun Cho5595d4d2014-07-17 18:01:19 +090033/*
34 * This function calls the crtc device(manager)'s te_handler() callback
35 * to trigger to transfer video image at the tearing effect synchronization
36 * signal.
37 */
38void exynos_drm_crtc_te_handler(struct drm_crtc *crtc);
39
Andrzej Hajdaa3922762017-03-14 09:27:56 +010040void exynos_crtc_handle_event(struct exynos_drm_crtc *exynos_crtc);
41
Inki Dae1c248b72011-10-04 19:19:01 +090042#endif