From f70575805708cabdedea7498aaa3f710fde4d920 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 31 Jan 2024 03:29:01 +0000
Subject: [PATCH] add lvds1024*800

---
 kernel/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h |   62 ++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 14 deletions(-)

diff --git a/kernel/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h b/kernel/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
index 56cb62d..4d9d462 100644
--- a/kernel/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
+++ b/kernel/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
@@ -1,28 +1,62 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2016 Linaro Limited.
  * Copyright (c) 2014-2016 Hisilicon Limited.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
  */
 
 #ifndef __KIRIN_DRM_DRV_H__
 #define __KIRIN_DRM_DRV_H__
 
-#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 {
-	int (*init)(struct platform_device *pdev);
-	void (*cleanup)(struct platform_device *pdev);
+struct kirin_drm_data {
+	const u32 *channel_formats;
+	u32 channel_formats_cnt;
+	int config_max_width;
+	int config_max_height;
+	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;
+
+	void *(*alloc_hw_ctx)(struct platform_device *pdev,
+			      struct drm_crtc *crtc);
+	void (*cleanup_hw_ctx)(void *hw_ctx);
 };
 
-struct kirin_drm_private {
-	struct drm_fbdev_cma *fbdev;
-};
-
-extern const struct kirin_dc_ops ade_dc_ops;
+#ifdef CONFIG_DRM_HISI_KIRIN620
+extern struct kirin_drm_data ade_driver_data;
+#endif
+#ifdef CONFIG_DRM_HISI_KIRIN960
+extern const struct kirin_drm_data dpe_driver_data;
+#endif
 
 #endif /* __KIRIN_DRM_DRV_H__ */

--
Gitblit v1.6.2