162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* exynos_drm_crtc.h 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright (c) 2011 Samsung Electronics Co., Ltd. 562306a36Sopenharmony_ci * Authors: 662306a36Sopenharmony_ci * Inki Dae <inki.dae@samsung.com> 762306a36Sopenharmony_ci * Joonyoung Shim <jy0922.shim@samsung.com> 862306a36Sopenharmony_ci * Seung-Woo Kim <sw0312.kim@samsung.com> 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef _EXYNOS_DRM_CRTC_H_ 1262306a36Sopenharmony_ci#define _EXYNOS_DRM_CRTC_H_ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include "exynos_drm_drv.h" 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistruct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, 1862306a36Sopenharmony_ci struct drm_plane *plane, 1962306a36Sopenharmony_ci enum exynos_drm_output_type out_type, 2062306a36Sopenharmony_ci const struct exynos_drm_crtc_ops *ops, 2162306a36Sopenharmony_ci void *context); 2262306a36Sopenharmony_civoid exynos_drm_crtc_wait_pending_update(struct exynos_drm_crtc *exynos_crtc); 2362306a36Sopenharmony_civoid exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc, 2462306a36Sopenharmony_ci struct exynos_drm_plane *exynos_plane); 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci/* This function gets crtc device matched with out_type. */ 2762306a36Sopenharmony_cistruct exynos_drm_crtc *exynos_drm_crtc_get_by_type(struct drm_device *drm_dev, 2862306a36Sopenharmony_ci enum exynos_drm_output_type out_type); 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciint exynos_drm_set_possible_crtcs(struct drm_encoder *encoder, 3162306a36Sopenharmony_ci enum exynos_drm_output_type out_type); 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci/* 3462306a36Sopenharmony_ci * This function calls the crtc device(manager)'s te_handler() callback 3562306a36Sopenharmony_ci * to trigger to transfer video image at the tearing effect synchronization 3662306a36Sopenharmony_ci * signal. 3762306a36Sopenharmony_ci */ 3862306a36Sopenharmony_civoid exynos_drm_crtc_te_handler(struct drm_crtc *crtc); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_civoid exynos_crtc_handle_event(struct exynos_drm_crtc *exynos_crtc); 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#endif 43