2012-09-21 12:07:47 +04:00
# ifndef _IMX_DRM_H_
# define _IMX_DRM_H_
2013-11-03 19:38:09 +04:00
struct device_node ;
2013-04-08 20:04:32 +04:00
struct drm_crtc ;
struct drm_connector ;
struct drm_device ;
2013-11-03 17:28:24 +04:00
struct drm_display_mode ;
2013-04-08 20:04:32 +04:00
struct drm_encoder ;
2012-09-21 12:07:47 +04:00
struct drm_fbdev_cma ;
2013-04-08 20:04:32 +04:00
struct drm_framebuffer ;
2013-11-03 19:38:09 +04:00
struct imx_drm_crtc ;
2013-04-08 20:04:32 +04:00
struct platform_device ;
2012-09-21 12:07:47 +04:00
2013-10-10 18:18:45 +04:00
int imx_drm_crtc_id ( struct imx_drm_crtc * crtc ) ;
2012-09-21 12:07:47 +04:00
struct imx_drm_crtc_helper_funcs {
int ( * enable_vblank ) ( struct drm_crtc * crtc ) ;
void ( * disable_vblank ) ( struct drm_crtc * crtc ) ;
2014-12-21 18:58:19 +03:00
int ( * set_interface_pix_fmt ) ( struct drm_crtc * crtc ,
2015-02-02 19:25:59 +03:00
u32 bus_format , int hsync_pin , int vsync_pin ) ;
2012-09-21 12:07:47 +04:00
const struct drm_crtc_helper_funcs * crtc_helper_funcs ;
const struct drm_crtc_funcs * crtc_funcs ;
} ;
2013-11-03 16:26:23 +04:00
int imx_drm_add_crtc ( struct drm_device * drm , struct drm_crtc * crtc ,
2012-09-21 12:07:47 +04:00
struct imx_drm_crtc * * new_crtc ,
const struct imx_drm_crtc_helper_funcs * imx_helper_funcs ,
2014-03-05 13:20:52 +04:00
struct device_node * port ) ;
2012-09-21 12:07:47 +04:00
int imx_drm_remove_crtc ( struct imx_drm_crtc * ) ;
int imx_drm_init_drm ( struct platform_device * pdev ,
int preferred_bpp ) ;
int imx_drm_exit_drm ( void ) ;
int imx_drm_crtc_vblank_get ( struct imx_drm_crtc * imx_drm_crtc ) ;
void imx_drm_crtc_vblank_put ( struct imx_drm_crtc * imx_drm_crtc ) ;
void imx_drm_handle_vblank ( struct imx_drm_crtc * imx_drm_crtc ) ;
void imx_drm_mode_config_init ( struct drm_device * drm ) ;
struct drm_gem_cma_object * imx_drm_fb_get_obj ( struct drm_framebuffer * fb ) ;
2015-02-02 19:25:59 +03:00
int imx_drm_set_bus_format_pins ( struct drm_encoder * encoder ,
u32 bus_format , int hsync_pin , int vsync_pin ) ;
int imx_drm_set_bus_format ( struct drm_encoder * encoder ,
u32 bus_format ) ;
2012-09-21 12:07:47 +04:00
2014-03-05 13:20:52 +04:00
int imx_drm_encoder_get_mux_id ( struct device_node * node ,
struct drm_encoder * encoder ) ;
2013-11-03 18:04:47 +04:00
int imx_drm_encoder_parse_of ( struct drm_device * drm ,
struct drm_encoder * encoder , struct device_node * np ) ;
2012-09-21 12:07:47 +04:00
2013-11-03 17:28:24 +04:00
void imx_drm_connector_destroy ( struct drm_connector * connector ) ;
void imx_drm_encoder_destroy ( struct drm_encoder * encoder ) ;
2013-11-09 15:20:55 +04:00
2012-09-21 12:07:47 +04:00
# endif /* _IMX_DRM_H_ */