2 * Copyright (C) ROCKCHIP, Inc.
3 * Author:yzq<yzq@rock-chips.com>
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #ifndef _ROCKCHIP_DRM_ENCODER_H_
15 #define _ROCKCHIP_DRM_ENCODER_H_
17 struct rockchip_drm_manager;
19 void rockchip_drm_encoder_setup(struct drm_device *dev);
20 struct drm_encoder *rockchip_drm_encoder_create(struct drm_device *dev,
21 struct rockchip_drm_manager *mgr,
22 unsigned int possible_crtcs);
23 struct rockchip_drm_manager *
24 rockchip_drm_get_manager(struct drm_encoder *encoder);
25 void rockchip_drm_fn_encoder(struct drm_crtc *crtc, void *data,
26 void (*fn)(struct drm_encoder *, void *));
27 void rockchip_drm_enable_vblank(struct drm_encoder *encoder, void *data);
28 void rockchip_drm_disable_vblank(struct drm_encoder *encoder, void *data);
29 void rockchip_drm_encoder_crtc_dpms(struct drm_encoder *encoder, void *data);
30 void rockchip_drm_encoder_crtc_pipe(struct drm_encoder *encoder, void *data);
31 void rockchip_drm_encoder_plane_mode_set(struct drm_encoder *encoder, void *data);
32 void rockchip_drm_encoder_plane_commit(struct drm_encoder *encoder, void *data);
33 void rockchip_drm_encoder_plane_enable(struct drm_encoder *encoder, void *data);
34 void rockchip_drm_encoder_plane_disable(struct drm_encoder *encoder, void *data);
35 void rockchip_drm_encoder_complete_scanout(struct drm_framebuffer *fb);