Lines Matching refs:mpp
60 container_of(dev, struct av1dec_dev, mpp)
140 struct mpp_dev mpp; member
387 struct mpp_dev *mpp = session->mpp; in av1dec_alloc_task() local
397 mpp_task->hw_info = mpp->var->hw_info; in av1dec_alloc_task()
437 cnt = mpp->var->trans_info[fmt].count; in av1dec_alloc_task()
438 tbl = mpp->var->trans_info[fmt].table; in av1dec_alloc_task()
456 mpp_task_dump_mem_region(mpp, mpp_task); in av1dec_alloc_task()
457 mpp_task_dump_reg(mpp, mpp_task); in av1dec_alloc_task()
648 static int av1dec_run(struct mpp_dev *mpp, struct mpp_task *mpp_task) in av1dec_run() argument
652 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_run()
655 u32 timing_en = mpp->srv->timing_en; in av1dec_run()
658 mpp_iommu_flush_tlb(mpp->iommu_info); in av1dec_run()
690 mpp->cur_task = mpp_task; in av1dec_run()
696 mpp_write(mpp, hw->en_base, en_val); in av1dec_run()
705 static int av1dec_vcd_irq(struct mpp_dev *mpp) in av1dec_vcd_irq() argument
707 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_vcd_irq()
712 mpp->irq_status = mpp_read(mpp, hw->sta_base); in av1dec_vcd_irq()
713 if (!mpp->irq_status) in av1dec_vcd_irq()
716 mpp_write(mpp, hw->clr_base, 0); in av1dec_vcd_irq()
723 static int av1dec_isr(struct mpp_dev *mpp) in av1dec_isr() argument
725 struct mpp_task *mpp_task = mpp->cur_task; in av1dec_isr()
726 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_isr()
734 dev_err(mpp->dev, "no current task\n"); in av1dec_isr()
739 mpp->cur_task = NULL; in av1dec_isr()
757 task->irq_status = mpp->irq_status; in av1dec_isr()
760 atomic_inc(&mpp->reset_request); in av1dec_isr()
765 mpp_task_dump_hw_reg(mpp); in av1dec_isr()
775 static int av1dec_finish(struct mpp_dev *mpp, in av1dec_finish() argument
780 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_finish()
818 static int av1dec_result(struct mpp_dev *mpp, in av1dec_result() argument
824 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_result()
866 static int av1dec_procfs_remove(struct mpp_dev *mpp) in av1dec_procfs_remove() argument
868 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_procfs_remove()
878 static int av1dec_procfs_init(struct mpp_dev *mpp) in av1dec_procfs_init() argument
880 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_procfs_init()
882 dec->procfs = proc_mkdir(mpp->dev->of_node->name, mpp->srv->procfs); in av1dec_procfs_init()
890 mpp_procfs_create_common(dec->procfs, mpp); in av1dec_procfs_init()
896 dec->procfs, &mpp->session_max_buffers); in av1dec_procfs_init()
901 static inline int av1dec_procfs_remove(struct mpp_dev *mpp) in av1dec_procfs_remove() argument
906 static inline int av1dec_procfs_init(struct mpp_dev *mpp) in av1dec_procfs_init() argument
912 static int av1dec_init(struct mpp_dev *mpp) in av1dec_init() argument
914 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_init()
918 ret = mpp_get_clk_info(mpp, &dec->aclk_info, "aclk_vcodec"); in av1dec_init()
921 ret = mpp_get_clk_info(mpp, &dec->hclk_info, "hclk_vcodec"); in av1dec_init()
926 of_property_read_u32(mpp->dev->of_node, in av1dec_init()
933 dec->rst_a = mpp_reset_control_get(mpp, RST_TYPE_A, "video_a"); in av1dec_init()
936 dec->rst_h = mpp_reset_control_get(mpp, RST_TYPE_H, "video_h"); in av1dec_init()
943 static int av1dec_reset(struct mpp_dev *mpp) in av1dec_reset() argument
945 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_reset()
950 rockchip_pmu_idle_request(mpp->dev, true); in av1dec_reset()
956 rockchip_pmu_idle_request(mpp->dev, false); in av1dec_reset()
964 static int av1dec_clk_on(struct mpp_dev *mpp) in av1dec_clk_on() argument
966 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_clk_on()
974 static int av1dec_clk_off(struct mpp_dev *mpp) in av1dec_clk_off() argument
976 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_clk_off()
984 static int av1dec_set_freq(struct mpp_dev *mpp, in av1dec_set_freq() argument
987 struct av1dec_dev *dec = to_av1dec_dev(mpp); in av1dec_set_freq()
1243 struct mpp_dev *mpp = NULL; in av1dec_probe() local
1252 mpp = &dec->mpp; in av1dec_probe()
1258 mpp->var = (struct mpp_dev_var *)match->data; in av1dec_probe()
1261 ret = mpp_dev_probe(mpp, pdev); in av1dec_probe()
1266 if (mpp->iommu_info) in av1dec_probe()
1267 mpp->iommu_info->av1d_iommu = 1; in av1dec_probe()
1269 dec->reg_base[AV1DEC_CLASS_VCD] = mpp->reg_base; in av1dec_probe()
1270 ret = devm_request_threaded_irq(dev, mpp->irq, in av1dec_probe()
1274 dev_name(dev), mpp); in av1dec_probe()
1279 dec->irq[AV1DEC_CLASS_VCD] = mpp->irq; in av1dec_probe()
1288 mpp->session_max_buffers = AV1DEC_SESSION_MAX_BUFFERS; in av1dec_probe()
1289 dec->hw_info = to_av1dec_info(mpp->var->hw_info); in av1dec_probe()
1290 av1dec_procfs_init(mpp); in av1dec_probe()
1291 mpp_dev_register_srv(mpp, mpp->srv); in av1dec_probe()
1297 mpp_dev_remove(mpp); in av1dec_probe()
1308 mpp_dev_remove(&dec->mpp); in av1dec_remove()
1309 av1dec_procfs_remove(&dec->mpp); in av1dec_remove()
1320 struct mpp_dev *mpp = &dec->mpp; in av1dec_shutdown() local
1324 atomic_inc(&mpp->srv->shutdown_request); in av1dec_shutdown()
1326 &mpp->task_count, in av1dec_shutdown()