From 15780585a72f25f91dffb412b46698acbe8c7537 Mon Sep 17 00:00:00 2001 From: Mark Yao Date: Tue, 21 Jun 2016 14:26:54 +0800 Subject: [PATCH] drm/rockchip: fix vop value mask Change-Id: Iedfb871f2909a427ca97f3014f4b0e0b565d06f0 Signed-off-by: Mark Yao --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index c816b3db4b28..181c582a71a4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -191,11 +191,11 @@ static inline void vop_mask_write(struct vop *vop, uint32_t offset, return; if (write_mask) { - v = (v << shift) | (mask << (shift + 16)); + v = ((v & mask) << shift) | (mask << (shift + 16)); } else { uint32_t cached_val = vop->regsbak[offset >> 2]; - v = (cached_val & ~(mask << shift)) | (v << shift); + v = (cached_val & ~(mask << shift)) | ((v & mask) << shift); vop->regsbak[offset >> 2] = v; } -- 2.34.1