video: rockchip: rk322x: keep vop standby before enable iommu

Vop may access illegal address and cause bus error with:
    1, vop iommu is disable
    2, vop is enable and its window use a iommu mapping address

The illegal memory access may cause bus abnormal.

Change-Id: I17d52ae12140b9bf85d37123765f7163422ec8f5
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
This commit is contained in:
Mark Yao
2016-11-07 14:22:36 +08:00
parent 7b3f45710e
commit d05c5b242b

View File

@@ -3561,7 +3561,6 @@ static int vop_early_resume(struct rk_lcdc_driver *dev_drv)
spin_lock(&vop_dev->reg_lock);
vop_msk_reg(vop_dev, DSP_CTRL0, V_DSP_OUT_ZERO(0));
vop_msk_reg(vop_dev, SYS_CTRL, V_VOP_STANDBY_EN(0));
vop_msk_reg(vop_dev, DSP_CTRL0, V_DSP_BLANK_EN(0));
vop_cfg_done(vop_dev);
spin_unlock(&vop_dev->reg_lock);
@@ -3574,6 +3573,11 @@ static int vop_early_resume(struct rk_lcdc_driver *dev_drv)
rockchip_iovmm_activate(dev_drv->dev);
}
spin_lock(&vop_dev->reg_lock);
vop_msk_reg(vop_dev, SYS_CTRL, V_VOP_STANDBY_EN(0));
vop_cfg_done(vop_dev);
spin_unlock(&vop_dev->reg_lock);
dev_drv->suspend_flag = 0;
if (dev_drv->trsm_ops && dev_drv->trsm_ops->enable)