| /OK3568_Linux_fs/kernel/drivers/video/rockchip/iep/ |
| H A D | iep_iommu_ops.c | 23 (struct iep_iommu_info *iommu_info, struct iep_session *session) in iep_iommu_get_session_info() argument 27 list_for_each_entry_safe(session_info, n, &iommu_info->session_list, in iep_iommu_get_session_info() 36 int iep_iommu_create(struct iep_iommu_info *iommu_info) in iep_iommu_create() argument 38 if (!iommu_info || !iommu_info->ops || !iommu_info->ops->create) in iep_iommu_create() 41 return iommu_info->ops->create(iommu_info); in iep_iommu_create() 44 int iep_iommu_import(struct iep_iommu_info *iommu_info, in iep_iommu_import() argument 49 if (!iommu_info || !iommu_info->ops || in iep_iommu_import() 50 !iommu_info->ops->import || !session) in iep_iommu_import() 53 session_info = iep_iommu_get_session_info(iommu_info, session); in iep_iommu_import() 64 session_info->mmu_dev = iommu_info->mmu_dev; in iep_iommu_import() [all …]
|
| H A D | iep_iommu_drm.c | 84 static void iep_drm_detach(struct iep_iommu_info *iommu_info) in iep_drm_detach() argument 86 struct iep_iommu_drm_info *drm_info = iommu_info->private; in iep_drm_detach() 87 struct device *dev = iommu_info->dev; in iep_drm_detach() 90 mutex_lock(&iommu_info->iommu_mutex); in iep_drm_detach() 93 mutex_unlock(&iommu_info->iommu_mutex); in iep_drm_detach() 100 mutex_unlock(&iommu_info->iommu_mutex); in iep_drm_detach() 103 static int iep_drm_attach_unlock(struct iep_iommu_info *iommu_info) in iep_drm_attach_unlock() argument 105 struct iep_iommu_drm_info *drm_info = iommu_info->private; in iep_drm_attach_unlock() 106 struct device *dev = iommu_info->dev; in iep_drm_attach_unlock() 124 static int iep_drm_attach(struct iep_iommu_info *iommu_info) in iep_drm_attach() argument [all …]
|
| H A D | iep_iommu_ops.h | 48 int (*create)(struct iep_iommu_info *iommu_info); 57 int (*destroy)(struct iep_iommu_info *iommu_info); 59 int (*attach)(struct iep_iommu_info *iommu_info); 60 void (*detach)(struct iep_iommu_info *iommu_info); 73 struct iep_iommu_info *iommu_info; member 89 void iep_iommu_drm_set_ops(struct iep_iommu_info *iommu_info); 95 int iep_iommu_info_destroy(struct iep_iommu_info *iommu_info); 97 int iep_iommu_create(struct iep_iommu_info *iommu_info); 98 int iep_iommu_import(struct iep_iommu_info *iommu_info, 100 int iep_iommu_free(struct iep_iommu_info *iommu_info, [all …]
|
| H A D | iep_drv.c | 93 iep_iommu_unmap_iommu(iep_service.iommu_info, in iep_reg_deinit() 95 iep_iommu_free(iep_service.iommu_info, in iep_reg_deinit() 237 iep_iommu_attach(iep_service.iommu_info); in iep_power_on() 261 iep_iommu_detach(iep_service.iommu_info); in iep_power_off() 630 iep_iommu_clear(iep_service.iommu_info, session); in iep_release() 1054 iep_service.iommu_info = iep_iommu_info_create(data->dev, in iep_drv_probe() 1078 iep_iommu_info_destroy(iep_service.iommu_info); in iep_drv_remove() 1079 iep_service.iommu_info = NULL; in iep_drv_remove()
|
| H A D | iep_drv.h | 126 struct iep_iommu_info *iommu_info; member
|
| H A D | hw_iep_reg.c | 1396 hdl = iep_iommu_import(pservice->iommu_info, in iep_bufid_to_iova() 1406 iep_iommu_free(pservice->iommu_info, in iep_bufid_to_iova() 1413 ret = iep_iommu_map_iommu(pservice->iommu_info, in iep_bufid_to_iova() 1420 iep_iommu_free(pservice->iommu_info, in iep_bufid_to_iova()
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/amdkfd/ |
| H A D | kfd_iommu.c | 45 struct amd_iommu_device_info iommu_info; in kfd_iommu_check_device() local 51 iommu_info.flags = 0; in kfd_iommu_check_device() 52 err = amd_iommu_device_info(kfd->pdev, &iommu_info); in kfd_iommu_check_device() 56 if ((iommu_info.flags & required_iommu_flags) != required_iommu_flags) in kfd_iommu_check_device() 66 struct amd_iommu_device_info iommu_info; in kfd_iommu_device_init() local 73 iommu_info.flags = 0; in kfd_iommu_device_init() 74 err = amd_iommu_device_info(kfd->pdev, &iommu_info); in kfd_iommu_device_init() 81 if ((iommu_info.flags & required_iommu_flags) != required_iommu_flags) { in kfd_iommu_device_init() 84 (iommu_info.flags & AMD_IOMMU_DEVICE_FLAG_ATS_SUP) != 0, in kfd_iommu_device_init() 85 (iommu_info.flags & AMD_IOMMU_DEVICE_FLAG_PRI_SUP) != 0, in kfd_iommu_device_init() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/ |
| H A D | rga_iommu.c | 347 if (scheduler->iommu_info == NULL) in rga_iommu_bind() 351 main_iommu = scheduler->iommu_info; in rga_iommu_bind() 357 scheduler->iommu_info->domain = main_iommu->domain; in rga_iommu_bind() 358 scheduler->iommu_info->default_dev = main_iommu->default_dev; in rga_iommu_bind() 359 rga_iommu_attach(scheduler->iommu_info); in rga_iommu_bind() 418 if (rga_drvdata->scheduler[i]->iommu_info != NULL) in rga_iommu_unbind() 419 rga_iommu_detach(rga_drvdata->scheduler[i]->iommu_info); in rga_iommu_unbind()
|
| H A D | rga_drv.c | 1430 scheduler->iommu_info = rga_iommu_probe(dev); in rga_drv_probe() 1431 if (IS_ERR(scheduler->iommu_info)) { in rga_drv_probe() 1433 scheduler->iommu_info = NULL; in rga_drv_probe()
|
| /OK3568_Linux_fs/kernel/drivers/video/rockchip/mpp/ |
| H A D | mpp_common.c | 418 mpp_iommu_down_read(mpp->iommu_info); in mpp_session_deinit_default() 420 mpp_iommu_up_read(mpp->iommu_info); in mpp_session_deinit_default() 583 if (mpp->iommu_info && mpp->iommu_info->got_irq) in mpp_task_timeout_work() 584 disable_irq(mpp->iommu_info->irq); in mpp_task_timeout_work() 602 if (mpp->iommu_info && mpp->iommu_info->got_irq) in mpp_task_timeout_work() 603 enable_irq(mpp->iommu_info->irq); in mpp_task_timeout_work() 746 mpp_iommu_down_write(mpp->iommu_info); in mpp_dev_reset() 757 mpp_iommu_refresh(mpp->iommu_info, mpp->dev); in mpp_dev_reset() 760 mpp_iommu_up_write(mpp->iommu_info); in mpp_dev_reset() 827 ret = mpp_iommu_attach(mpp->iommu_info); in mpp_task_run() [all …]
|
| H A D | mpp_rkvdec2_link.c | 377 mpp_iommu_flush_tlb(link_dec->mpp->iommu_info); in rkvdec2_link_enqueue() 486 mpp_iommu_disable_irq(mpp->iommu_info); in rkvdec2_link_reset() 489 mpp_iommu_down_write(mpp->iommu_info); in rkvdec2_link_reset() 504 mpp_iommu_refresh(mpp->iommu_info, mpp->dev); in rkvdec2_link_reset() 507 mpp_iommu_up_write(mpp->iommu_info); in rkvdec2_link_reset() 510 mpp_iommu_enable_irq(mpp->iommu_info); in rkvdec2_link_reset() 760 if (mpp_iommu_attach(mpp->iommu_info)) { in rkvdec2_link_power_on() 772 mpp_iommu_enable_irq(mpp->iommu_info); in rkvdec2_link_power_on() 780 mpp_iommu_dev_activate(mpp->iommu_info, mpp); in rkvdec2_link_power_on() 792 mpp_iommu_disable_irq(mpp->iommu_info); in rkvdec2_link_power_off() [all …]
|
| H A D | mpp_rkvenc.c | 473 mpp_iommu_flush_tlb(mpp->iommu_info); in rkvenc_run() 546 iommu_unmap(mpp->iommu_info->domain, enc->aux_iova, IOMMU_PAGE_SIZE); in rkvenc_isr() 1137 mpp_iommu_down_write(mpp->iommu_info); in rkvenc_iommu_handle_work() 1140 iommu_unmap(mpp->iommu_info->domain, enc->aux_iova, IOMMU_PAGE_SIZE); in rkvenc_iommu_handle_work() 1145 ret = iommu_map(mpp->iommu_info->domain, page_iova, in rkvenc_iommu_handle_work() 1154 mpp_iommu_up_write(mpp->iommu_info); in rkvenc_iommu_handle_work() 1235 mpp->iommu_info->hdl = rkvenc_iommu_fault_handle; in rkvenc_init() 1252 iommu_unmap(mpp->iommu_info->domain, enc->aux_iova, IOMMU_PAGE_SIZE); in rkvenc_exit()
|
| H A D | mpp_rkvdec2.c | 363 mpp_iommu_flush_tlb(mpp->iommu_info); in rkvdec2_run() 1458 domain = dec->mpp.iommu_info->domain; in rkvdec2_alloc_rcbbuf() 1584 mpp->iommu_info->hdl = rkvdec2_ccu_iommu_fault_handle; in rkvdec2_core_probe() 1696 domain = dec->mpp.iommu_info->domain; in rkvdec2_free_rcbbuf() 1748 if (mpp->iommu_info && mpp->iommu_info->got_irq) in rkvdec2_runtime_suspend() 1750 disable_irq(mpp->iommu_info->irq); in rkvdec2_runtime_suspend() 1775 if (mpp->iommu_info && mpp->iommu_info->got_irq) in rkvdec2_runtime_resume() 1776 enable_irq(mpp->iommu_info->irq); in rkvdec2_runtime_resume()
|
| H A D | mpp_rkvdec.c | 979 mpp_iommu_flush_tlb(mpp->iommu_info); in rkvdec_1126_run() 987 mpp_iommu_flush_tlb(mpp->iommu_info); in rkvdec_px30_run() 1070 iommu_unmap(mpp->iommu_info->domain, dec->aux_iova, IOMMU_PAGE_SIZE); in rkvdec_3328_isr() 1308 iommu_unmap(mpp->iommu_info->domain, dec->aux_iova, IOMMU_PAGE_SIZE); in rkvdec_3328_iommu_hdl() 1313 ret = iommu_map(mpp->iommu_info->domain, page_iova, in rkvdec_3328_iommu_hdl() 1432 mpp->iommu_info->hdl = rkvdec_3328_iommu_hdl; in rkvdec_3328_init() 1447 iommu_unmap(mpp->iommu_info->domain, dec->aux_iova, IOMMU_PAGE_SIZE); in rkvdec_3328_exit() 1611 mpp_iommu_refresh(mpp->iommu_info, mpp->dev); in rkvdec_3368_set_freq()
|
| H A D | mpp_iommu.h | 97 mpp_dma_import_fd(struct mpp_iommu_info *iommu_info,
|
| H A D | mpp_vepu2.c | 383 mpp_iommu_flush_tlb(mpp->iommu_info); in vepu_run() 405 mpp_iommu_flush_tlb(mpp->iommu_info); in vepu_px30_run() 1047 ccu_info = ccu->main_core->iommu_info; in vepu_attach_ccu() 1048 cur_info = enc->mpp.iommu_info; in vepu_attach_ccu()
|
| H A D | mpp_rkvenc2.c | 1240 mpp_iommu_flush_tlb(mpp->iommu_info); in rkvenc_run() 2288 ccu_info = ccu->main_core->iommu_info; in rkvenc_attach_ccu() 2289 cur_info = enc->mpp.iommu_info; in rkvenc_attach_ccu() 2362 domain = enc->mpp.iommu_info->domain; in rkvenc2_alloc_rcbbuf() 2472 if (mpp->iommu_info) in rkvenc_core_probe() 2473 mpp->iommu_info->hdl = rkvenc2_iommu_fault_handle; in rkvenc_core_probe() 2564 domain = enc->mpp.iommu_info->domain; in rkvenc2_free_rcbbuf()
|
| H A D | mpp_vdpu2.c | 366 mpp_iommu_flush_tlb(mpp->iommu_info); in vdpu_run() 388 mpp_iommu_flush_tlb(mpp->iommu_info); in vdpu_px30_run()
|
| H A D | mpp_av1dec.c | 658 mpp_iommu_flush_tlb(mpp->iommu_info); in av1dec_run() 1266 if (mpp->iommu_info) in av1dec_probe() 1267 mpp->iommu_info->av1d_iommu = 1; in av1dec_probe()
|
| H A D | mpp_jpgdec.c | 268 mpp_iommu_flush_tlb(mpp->iommu_info); in jpgdec_run()
|
| H A D | mpp_iommu.c | 178 struct mpp_dma_buffer *mpp_dma_import_fd(struct mpp_iommu_info *iommu_info, in mpp_dma_import_fd() argument
|
| /OK3568_Linux_fs/kernel/drivers/video/rockchip/mpp/hack/ |
| H A D | mpp_hack_px30.c | 150 struct platform_device *pdev = mpp->iommu_info->pdev; in px30_workaround_combo_init() 199 mpp->iommu_info->iommu = iommu; in px30_workaround_combo_init() 234 ret = mpp_iommu_enable(mpp->iommu_info->iommu); in px30_workaround_combo_switch_grf()
|
| /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/hisilicon/ |
| H A D | hi3660-drm.dtsi | 37 iommu_info {
|
| /OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/include/ |
| H A D | rga_drv.h | 325 struct rga_iommu_info *iommu_info; member
|
| /OK3568_Linux_fs/kernel/Documentation/driver-api/ |
| H A D | vfio.rst | 172 struct vfio_iommu_type1_info iommu_info = { .argsz = sizeof(iommu_info) }; 201 ioctl(container, VFIO_IOMMU_GET_INFO, &iommu_info);
|