diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index a1129117d7e4..f548e38c7dfa 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "dev.h" #include "mipi-csi2.h" @@ -2869,13 +2870,8 @@ static void rkcif_do_cru_reset(struct rkcif_device *dev) reset_control_deassert(cif_hw->cif_rst[i]); if (cif_hw->iommu_en) { - struct iommu_domain *domain; - - domain = iommu_get_domain_for_dev(cif_hw->dev); - if (domain) { - iommu_detach_device(domain, cif_hw->dev); - iommu_attach_device(domain, cif_hw->dev); - } + rockchip_iommu_disable(cif_hw->dev); + rockchip_iommu_enable(cif_hw->dev); } } diff --git a/drivers/media/platform/rockchip/cif/hw.c b/drivers/media/platform/rockchip/cif/hw.c index f77f98070a31..d2e0e451371e 100644 --- a/drivers/media/platform/rockchip/cif/hw.c +++ b/drivers/media/platform/rockchip/cif/hw.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "dev.h" #include "common.h" @@ -906,17 +907,14 @@ err: static void rkcif_iommu_cleanup(struct rkcif_hw *cif_hw) { - if (cif_hw->domain) - iommu_detach_device(cif_hw->domain, cif_hw->dev); + if (cif_hw->iommu_en) + rockchip_iommu_disable(cif_hw->dev); } static void rkcif_iommu_enable(struct rkcif_hw *cif_hw) { - if (!cif_hw->domain) - cif_hw->domain = iommu_get_domain_for_dev(cif_hw->dev); - - if (cif_hw->domain) - iommu_attach_device(cif_hw->domain, cif_hw->dev); + if (cif_hw->iommu_en) + rockchip_iommu_enable(cif_hw->dev); } static inline bool is_iommu_enable(struct device *dev)