1 /* 2 * (C) Copyright 2008-2017 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #ifndef _ROCKCHIP_CRTC_H_ 8 #define _ROCKCHIP_CRTC_H_ 9 10 struct rockchip_crtc { 11 const struct rockchip_crtc_funcs *funcs; 12 const void *data; 13 struct drm_display_mode active_mode; 14 bool hdmi_hpd : 1; 15 bool active : 1; 16 }; 17 18 struct rockchip_crtc_funcs { 19 int (*preinit)(struct display_state *state); 20 int (*init)(struct display_state *state); 21 void (*deinit)(struct display_state *state); 22 int (*set_plane)(struct display_state *state); 23 int (*prepare)(struct display_state *state); 24 int (*enable)(struct display_state *state); 25 int (*disable)(struct display_state *state); 26 void (*unprepare)(struct display_state *state); 27 int (*fixup_dts)(struct display_state *state, void *blob); 28 int (*send_mcu_cmd)(struct display_state *state, u32 type, u32 value); 29 }; 30 31 struct vop_data; 32 extern const struct rockchip_crtc_funcs rockchip_vop_funcs; 33 extern const struct vop_data rk3036_vop; 34 extern const struct vop_data px30_vop_lit; 35 extern const struct vop_data px30_vop_big; 36 extern const struct vop_data rk3308_vop; 37 extern const struct vop_data rk1808_vop; 38 extern const struct vop_data rk3288_vop_big; 39 extern const struct vop_data rk3288_vop_lit; 40 extern const struct vop_data rk3368_vop; 41 extern const struct vop_data rk3366_vop; 42 extern const struct vop_data rk3399_vop_big; 43 extern const struct vop_data rk3399_vop_lit; 44 extern const struct vop_data rk322x_vop; 45 extern const struct vop_data rk3328_vop; 46 extern const struct vop_data rv1108_vop; 47 #endif 48