mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
drm/rockchip: vop2: Only check pending done bits for rk3568
This is a workaround for rk3566/rk3568 only. Signed-off-by: Andy Yan <andy.yan@rock-chips.com> Change-Id: I6762ab146e810535643f9f59b99af2271febbab4
This commit is contained in:
@@ -1414,17 +1414,20 @@ static inline void rk3588_vop2_cfg_done(struct drm_crtc *crtc)
|
||||
static inline void vop2_wb_cfg_done(struct vop2_video_port *vp)
|
||||
{
|
||||
struct vop2 *vop2 = vp->vop2;
|
||||
uint32_t val = RK3568_VOP2_WB_CFG_DONE | (RK3568_VOP2_WB_CFG_DONE << 16);
|
||||
uint32_t val = RK3568_VOP2_WB_CFG_DONE | (RK3568_VOP2_WB_CFG_DONE << 16) |
|
||||
RK3568_VOP2_GLB_CFG_DONE_EN;
|
||||
uint32_t done_bits;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&vop2->irq_lock, flags);
|
||||
done_bits = vop2_pending_done_bits(vp);
|
||||
|
||||
val |= RK3568_VOP2_GLB_CFG_DONE_EN | done_bits;
|
||||
|
||||
vop2_writel(vop2, 0, val);
|
||||
spin_unlock_irqrestore(&vop2->irq_lock, flags);
|
||||
if (vop2->version == VOP_VERSION_RK3568) {
|
||||
spin_lock_irqsave(&vop2->irq_lock, flags);
|
||||
done_bits = vop2_pending_done_bits(vp);
|
||||
val |= done_bits;
|
||||
vop2_writel(vop2, 0, val);
|
||||
spin_unlock_irqrestore(&vop2->irq_lock, flags);
|
||||
} else {
|
||||
vop2_writel(vop2, 0, val);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user