162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _IMX_DRM_H_ 362306a36Sopenharmony_ci#define _IMX_DRM_H_ 462306a36Sopenharmony_ci 562306a36Sopenharmony_cistruct device_node; 662306a36Sopenharmony_cistruct drm_crtc; 762306a36Sopenharmony_cistruct drm_connector; 862306a36Sopenharmony_cistruct drm_device; 962306a36Sopenharmony_cistruct drm_display_mode; 1062306a36Sopenharmony_cistruct drm_encoder; 1162306a36Sopenharmony_cistruct drm_framebuffer; 1262306a36Sopenharmony_cistruct drm_plane; 1362306a36Sopenharmony_cistruct platform_device; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct imx_crtc_state { 1662306a36Sopenharmony_ci struct drm_crtc_state base; 1762306a36Sopenharmony_ci u32 bus_format; 1862306a36Sopenharmony_ci u32 bus_flags; 1962306a36Sopenharmony_ci int di_hsync_pin; 2062306a36Sopenharmony_ci int di_vsync_pin; 2162306a36Sopenharmony_ci}; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cistatic inline struct imx_crtc_state *to_imx_crtc_state(struct drm_crtc_state *s) 2462306a36Sopenharmony_ci{ 2562306a36Sopenharmony_ci return container_of(s, struct imx_crtc_state, base); 2662306a36Sopenharmony_ci} 2762306a36Sopenharmony_ciint imx_drm_init_drm(struct platform_device *pdev, 2862306a36Sopenharmony_ci int preferred_bpp); 2962306a36Sopenharmony_ciint imx_drm_exit_drm(void); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciextern struct platform_driver ipu_drm_driver; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_civoid imx_drm_mode_config_init(struct drm_device *drm); 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistruct drm_gem_dma_object *imx_drm_fb_get_obj(struct drm_framebuffer *fb); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciint imx_drm_encoder_parse_of(struct drm_device *drm, 3862306a36Sopenharmony_ci struct drm_encoder *encoder, struct device_node *np); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_civoid imx_drm_connector_destroy(struct drm_connector *connector); 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciint ipu_planes_assign_pre(struct drm_device *dev, 4362306a36Sopenharmony_ci struct drm_atomic_state *state); 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci#endif /* _IMX_DRM_H_ */ 46