From eb3ea2ff89a989cba8676f909ef73726621cc960 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Tue, 21 Apr 2020 19:19:51 +0800 Subject: [PATCH] media: rockchip: isp: reset isp at power on for dehaze Change-Id: I9753e00fed496deb8ceb9fa0c5aecb197383dead Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/isp/rkisp.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index 0773de9d5bd5..e4b1f6a0fd56 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -1537,6 +1537,22 @@ static int rkisp_isp_sd_s_power(struct v4l2_subdev *sd, int on) if (ret < 0) return ret; + if (isp_dev->isp_ver == ISP_V20) { + struct iommu_domain *domain = + iommu_get_domain_for_dev(isp_dev->dev); + + writel(CIF_ISP_CTRL_ISP_MODE_BAYER_ITU601, + base + CIF_ISP_CTRL); + writel(0xffff, base + CIF_IRCL); + usleep_range(100, 200); + if (domain) { +#ifdef CONFIG_IOMMU_API + domain->ops->detach_dev(domain, isp_dev->dev); + domain->ops->attach_dev(domain, isp_dev->dev); +#endif + } + } + rkisp_config_clk(isp_dev, on); if (isp_dev->isp_ver == ISP_V12 || isp_dev->isp_ver == ISP_V13) {