mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
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:
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user