]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
drm: kirin: Add register connect helper functions in drm init
[linux.git] / drivers / gpu / drm / hisilicon / kirin / kirin_drm_drv.h
index 22d1291668cd54282cf48f1ec58c83e1710e1256..95f56c9960d59c0d1a3a93e27b4feac631dc72d0 100644 (file)
@@ -9,12 +9,50 @@
 
 #define MAX_CRTC       2
 
+#define to_kirin_crtc(crtc) \
+       container_of(crtc, struct kirin_crtc, base)
+
+#define to_kirin_plane(plane) \
+       container_of(plane, struct kirin_plane, base)
+
+/* kirin-format translate table */
+struct kirin_format {
+       u32 pixel_format;
+       u32 hw_format;
+};
+
+struct kirin_crtc {
+       struct drm_crtc base;
+       void *hw_ctx;
+       bool enable;
+};
+
+struct kirin_plane {
+       struct drm_plane base;
+       void *hw_ctx;
+       u32 ch;
+};
+
 /* display controller init/cleanup ops */
-struct kirin_dc_ops {
+struct kirin_drm_data {
+       const u32 *channel_formats;
+       u32 channel_formats_cnt;
+       int config_max_width;
+       int config_max_height;
+       bool register_connects;
+       u32 num_planes;
+       u32 prim_plane;
+
+       struct drm_driver *driver;
+       const struct drm_crtc_helper_funcs *crtc_helper_funcs;
+       const struct drm_crtc_funcs *crtc_funcs;
+       const struct drm_plane_helper_funcs *plane_helper_funcs;
+       const struct drm_plane_funcs  *plane_funcs;
+       const struct drm_mode_config_funcs *mode_config_funcs;
        int (*init)(struct platform_device *pdev);
        void (*cleanup)(struct platform_device *pdev);
 };
 
-extern const struct kirin_dc_ops ade_dc_ops;
+extern struct kirin_drm_data ade_driver_data;
 
 #endif /* __KIRIN_DRM_DRV_H__ */