forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/video/rockchip/mpp/mpp_rkvdec2.h
....@@ -55,6 +55,8 @@
5555 #define RKVDEC_START_EN BIT(0)
5656
5757 #define RKVDEC_REG_YSTRIDE_INDEX 20
58
+#define RKVDEC_REG_CORE_CTRL_INDEX 28
59
+#define RKVDEC_REG_FILM_IDX_MASK (0x3ff0000)
5860
5961 #define RKVDEC_REG_RLC_BASE 0x200
6062 #define RKVDEC_REG_RLC_BASE_INDEX (128)
....@@ -148,8 +150,8 @@
148150 int slot_idx;
149151 u32 need_hack;
150152
151
- /* event for task wait timeout or session timeout */
152
- wait_queue_head_t wait;
153
+ /* link table DMA buffer */
154
+ struct mpp_dma_buffer *table;
153155 };
154156
155157 struct rkvdec2_session_priv {
....@@ -174,6 +176,8 @@
174176 struct mpp_clk_info core_clk_info;
175177 struct mpp_clk_info cabac_clk_info;
176178 struct mpp_clk_info hevc_cabac_clk_info;
179
+ struct mpp_clk_info *cycle_clk;
180
+
177181 u32 default_max_load;
178182 #ifdef CONFIG_ROCKCHIP_MPP_PROC_FS
179183 struct proc_dir_entry *procfs;
....@@ -203,14 +207,26 @@
203207 dma_addr_t rcb_iova;
204208 struct page *rcb_page;
205209 u32 rcb_min_width;
210
+ u32 rcb_info_count;
211
+ u32 rcb_infos[RKVDEC_MAX_RCB_NUM * 2];
206212
207213 /* for link mode */
208214 struct rkvdec_link_dev *link_dec;
209215 struct mpp_dma_buffer *fix;
210216
211
- u32 err_ref_hack;
217
+ /* for ccu link mode */
218
+ struct rkvdec2_ccu *ccu;
219
+ u32 core_mask;
220
+ u32 task_index;
221
+ /* mmu info */
222
+ void __iomem *mmu_base;
223
+ u32 mmu_fault;
212224 };
213225
226
+int mpp_set_rcbbuf(struct mpp_dev *mpp, struct mpp_session *session,
227
+ struct mpp_task *task);
228
+int rkvdec2_task_init(struct mpp_dev *mpp, struct mpp_session *session,
229
+ struct rkvdec2_task *task, struct mpp_task_msgs *msgs);
214230 void *rkvdec2_alloc_task(struct mpp_session *session,
215231 struct mpp_task_msgs *msgs);
216232 int rkvdec2_free_task(struct mpp_session *session, struct mpp_task *mpp_task);
....@@ -219,5 +235,8 @@
219235
220236 int rkvdec2_result(struct mpp_dev *mpp, struct mpp_task *mpp_task,
221237 struct mpp_task_msgs *msgs);
238
+int rkvdec2_reset(struct mpp_dev *mpp);
239
+
240
+void mpp_devfreq_set_core_rate(struct mpp_dev *mpp, enum MPP_CLOCK_MODE mode);
222241
223242 #endif