summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
diff options
context:
space:
mode:
authorChris Zhong <zyw@rock-chips.com>2016-08-26 20:39:38 -0700
committerMark Yao <mark.yao@rock-chips.com>2017-02-05 16:16:07 +0800
commit17a794d768383527408e23f2a1a04ac64c3d2ba6 (patch)
tree294ae021062042fcf629737a6249c51d088ef1b2 /drivers/gpu/drm/rockchip/rockchip_drm_vop.c
parent99743ae4c5f52f8f8ceb17783056fcc9b4f8b64c (diff)
downloadlinux-17a794d768383527408e23f2a1a04ac64c3d2ba6.tar.bz2
drm/rockchip: vop: make vop register setting take effect
The setting of vop registers need a reg_done writing to take effect. In vop_enable the vop return to work by by restoring registers, but the registers do not take effect immediately, it should a vop_cfg_done after it. The same thing is needed by windows_disabled in vop_crtc_disable. Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Diffstat (limited to 'drivers/gpu/drm/rockchip/rockchip_drm_vop.c')
-rw-r--r--drivers/gpu/drm/rockchip/rockchip_drm_vop.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index fb5f001f51c3..4f8b8631956a 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -531,6 +531,8 @@ static int vop_enable(struct drm_crtc *crtc)
}
memcpy(vop->regs, vop->regsbak, vop->len);
+ vop_cfg_done(vop);
+
/*
* At here, vop clock & iommu is enable, R/W vop regs would be safe.
*/
@@ -582,6 +584,8 @@ static void vop_crtc_disable(struct drm_crtc *crtc)
spin_unlock(&vop->reg_lock);
}
+ vop_cfg_done(vop);
+
drm_crtc_vblank_off(crtc);
/*