From 9370bb92b2d16684ee45cf24e879c93c509162da Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 19 Dec 2024 01:47:39 +0000
Subject: [PATCH] add wifi6 8852be driver

---
 kernel/drivers/video/rockchip/mpp/mpp_rkvdec2.h |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/kernel/drivers/video/rockchip/mpp/mpp_rkvdec2.h b/kernel/drivers/video/rockchip/mpp/mpp_rkvdec2.h
index e97b6ac..3eabdac 100644
--- a/kernel/drivers/video/rockchip/mpp/mpp_rkvdec2.h
+++ b/kernel/drivers/video/rockchip/mpp/mpp_rkvdec2.h
@@ -55,6 +55,8 @@
 #define RKVDEC_START_EN			BIT(0)
 
 #define RKVDEC_REG_YSTRIDE_INDEX	20
+#define RKVDEC_REG_CORE_CTRL_INDEX	28
+#define RKVDEC_REG_FILM_IDX_MASK	(0x3ff0000)
 
 #define RKVDEC_REG_RLC_BASE		0x200
 #define RKVDEC_REG_RLC_BASE_INDEX	(128)
@@ -148,8 +150,8 @@
 	int slot_idx;
 	u32 need_hack;
 
-	/* event for task wait timeout or session timeout */
-	wait_queue_head_t wait;
+	/* link table DMA buffer */
+	struct mpp_dma_buffer *table;
 };
 
 struct rkvdec2_session_priv {
@@ -174,6 +176,8 @@
 	struct mpp_clk_info core_clk_info;
 	struct mpp_clk_info cabac_clk_info;
 	struct mpp_clk_info hevc_cabac_clk_info;
+	struct mpp_clk_info *cycle_clk;
+
 	u32 default_max_load;
 #ifdef CONFIG_ROCKCHIP_MPP_PROC_FS
 	struct proc_dir_entry *procfs;
@@ -203,14 +207,26 @@
 	dma_addr_t rcb_iova;
 	struct page *rcb_page;
 	u32 rcb_min_width;
+	u32 rcb_info_count;
+	u32 rcb_infos[RKVDEC_MAX_RCB_NUM * 2];
 
 	/* for link mode */
 	struct rkvdec_link_dev *link_dec;
 	struct mpp_dma_buffer *fix;
 
-	u32 err_ref_hack;
+	/* for ccu link mode */
+	struct rkvdec2_ccu *ccu;
+	u32 core_mask;
+	u32 task_index;
+	/* mmu info */
+	void __iomem *mmu_base;
+	u32 mmu_fault;
 };
 
+int mpp_set_rcbbuf(struct mpp_dev *mpp, struct mpp_session *session,
+		   struct mpp_task *task);
+int rkvdec2_task_init(struct mpp_dev *mpp, struct mpp_session *session,
+		      struct rkvdec2_task *task, struct mpp_task_msgs *msgs);
 void *rkvdec2_alloc_task(struct mpp_session *session,
 			 struct mpp_task_msgs *msgs);
 int rkvdec2_free_task(struct mpp_session *session, struct mpp_task *mpp_task);
@@ -219,5 +235,8 @@
 
 int rkvdec2_result(struct mpp_dev *mpp, struct mpp_task *mpp_task,
 		   struct mpp_task_msgs *msgs);
+int rkvdec2_reset(struct mpp_dev *mpp);
+
+void mpp_devfreq_set_core_rate(struct mpp_dev *mpp, enum MPP_CLOCK_MODE mode);
 
 #endif

--
Gitblit v1.6.2