.. | .. |
---|
55 | 55 | #define RKVDEC_START_EN BIT(0) |
---|
56 | 56 | |
---|
57 | 57 | #define RKVDEC_REG_YSTRIDE_INDEX 20 |
---|
| 58 | +#define RKVDEC_REG_CORE_CTRL_INDEX 28 |
---|
| 59 | +#define RKVDEC_REG_FILM_IDX_MASK (0x3ff0000) |
---|
58 | 60 | |
---|
59 | 61 | #define RKVDEC_REG_RLC_BASE 0x200 |
---|
60 | 62 | #define RKVDEC_REG_RLC_BASE_INDEX (128) |
---|
.. | .. |
---|
148 | 150 | int slot_idx; |
---|
149 | 151 | u32 need_hack; |
---|
150 | 152 | |
---|
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; |
---|
153 | 155 | }; |
---|
154 | 156 | |
---|
155 | 157 | struct rkvdec2_session_priv { |
---|
.. | .. |
---|
174 | 176 | struct mpp_clk_info core_clk_info; |
---|
175 | 177 | struct mpp_clk_info cabac_clk_info; |
---|
176 | 178 | struct mpp_clk_info hevc_cabac_clk_info; |
---|
| 179 | + struct mpp_clk_info *cycle_clk; |
---|
| 180 | + |
---|
177 | 181 | u32 default_max_load; |
---|
178 | 182 | #ifdef CONFIG_ROCKCHIP_MPP_PROC_FS |
---|
179 | 183 | struct proc_dir_entry *procfs; |
---|
.. | .. |
---|
203 | 207 | dma_addr_t rcb_iova; |
---|
204 | 208 | struct page *rcb_page; |
---|
205 | 209 | u32 rcb_min_width; |
---|
| 210 | + u32 rcb_info_count; |
---|
| 211 | + u32 rcb_infos[RKVDEC_MAX_RCB_NUM * 2]; |
---|
206 | 212 | |
---|
207 | 213 | /* for link mode */ |
---|
208 | 214 | struct rkvdec_link_dev *link_dec; |
---|
209 | 215 | struct mpp_dma_buffer *fix; |
---|
210 | 216 | |
---|
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; |
---|
212 | 224 | }; |
---|
213 | 225 | |
---|
| 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); |
---|
214 | 230 | void *rkvdec2_alloc_task(struct mpp_session *session, |
---|
215 | 231 | struct mpp_task_msgs *msgs); |
---|
216 | 232 | int rkvdec2_free_task(struct mpp_session *session, struct mpp_task *mpp_task); |
---|
.. | .. |
---|
219 | 235 | |
---|
220 | 236 | int rkvdec2_result(struct mpp_dev *mpp, struct mpp_task *mpp_task, |
---|
221 | 237 | 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); |
---|
222 | 241 | |
---|
223 | 242 | #endif |
---|