From c75bd88ebaf6de3510a0e7978c9f39613b654cbb Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Thu, 14 Oct 2021 16:38:01 +0800 Subject: [PATCH] media: rockchip: ispp: replace iommu detach/attach Change-Id: I1cf46cb9cba85be418f32d218dd70452c8062d42 Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/ispp/hw.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/rockchip/ispp/hw.c b/drivers/media/platform/rockchip/ispp/hw.c index 9d755cc88c38..ef4b8c315f61 100644 --- a/drivers/media/platform/rockchip/ispp/hw.c +++ b/drivers/media/platform/rockchip/ispp/hw.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "common.h" #include "dev.h" @@ -40,10 +41,6 @@ struct irqs_data { void rkispp_soft_reset(struct rkispp_hw_dev *hw) { - struct iommu_domain *domain = iommu_get_domain_for_dev(hw->dev); - - if (domain) - iommu_detach_device(domain, hw->dev); writel(GLB_SOFT_RST_ALL, hw->base_addr + RKISPP_CTRL_RESET); udelay(10); if (hw->reset) { @@ -52,8 +49,12 @@ void rkispp_soft_reset(struct rkispp_hw_dev *hw) reset_control_deassert(hw->reset); udelay(20); } - if (domain) - iommu_attach_device(domain, hw->dev); + + /* refresh iommu after reset */ + if (hw->is_mmu) { + rockchip_iommu_disable(hw->dev); + rockchip_iommu_enable(hw->dev); + } writel(SW_SCL_BYPASS, hw->base_addr + RKISPP_SCL0_CTRL); writel(SW_SCL_BYPASS, hw->base_addr + RKISPP_SCL1_CTRL);