video: rockchip: mpp: fix some iommu hdl register issue

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ic73bc4e330668b30e4519362b313bfb29ccecb24
This commit is contained in:
Yandong Lin
2023-08-22 11:24:42 +08:00
committed by Tao Huang
parent 2b3c021adf
commit 8323e849b7
6 changed files with 8 additions and 5 deletions

View File

@@ -586,6 +586,7 @@ static void mpp_task_timeout_work(struct work_struct *work_s)
mpp_dev_reset(mpp);
mpp_power_off(mpp);
mpp_iommu_dev_deactivate(mpp->iommu_info, mpp);
set_bit(TASK_STATE_TIMEOUT, &task->state);
set_bit(TASK_STATE_DONE, &task->state);
/* Wake up the GET thread */

View File

@@ -455,6 +455,9 @@ static int mpp_iommu_handle(struct iommu_domain *iommu,
return 0;
}
if (mpp->cur_task)
mpp_task_dump_mem_region(mpp, mpp->cur_task);
if (mpp->dev_ops && mpp->dev_ops->dump_dev)
mpp->dev_ops->dump_dev(mpp);
else

View File

@@ -1429,7 +1429,7 @@ static int rkvdec_3328_init(struct mpp_dev *mpp)
goto done;
}
dec->aux_iova = -1;
mpp->iommu_info->hdl = rkvdec_3328_iommu_hdl;
mpp->fault_handler = rkvdec_3328_iommu_hdl;
ret = rkvdec_devfreq_init(mpp);
done:

View File

@@ -1581,7 +1581,7 @@ static int rkvdec2_core_probe(struct platform_device *pdev)
mpp->dev_ops->task_worker = rkvdec2_hard_ccu_worker;
irq_proc = rkvdec2_hard_ccu_irq;
}
mpp->iommu_info->hdl = rkvdec2_ccu_iommu_fault_handle;
mpp->fault_handler = rkvdec2_ccu_iommu_fault_handle;
kthread_init_work(&mpp->work, mpp->dev_ops->task_worker);
/* get irq request */

View File

@@ -1232,7 +1232,7 @@ static int rkvenc_init(struct mpp_dev *mpp)
}
INIT_WORK(&enc->iommu_work, rkvenc_iommu_handle_work);
mpp->iommu_info->hdl = rkvenc_iommu_fault_handle;
mpp->fault_handler = rkvenc_iommu_fault_handle;
return ret;
}

View File

@@ -2463,8 +2463,7 @@ static int rkvenc_core_probe(struct platform_device *pdev)
}
mpp->session_max_buffers = RKVENC_SESSION_MAX_BUFFERS;
enc->hw_info = to_rkvenc_info(mpp->var->hw_info);
if (mpp->iommu_info)
mpp->iommu_info->hdl = rkvenc2_iommu_fault_handle;
mpp->fault_handler = rkvenc2_iommu_fault_handle;
rkvenc_procfs_init(mpp);
rkvenc_procfs_ccu_init(mpp);