mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
drm/rockchip: vop: add support for mcu soft_te mode
Change-Id: I0393645cf1a950b1c9a6b928bf698f9678a95898 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
This commit is contained in:
@@ -3222,6 +3222,19 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void vop_crtc_te_handler(struct drm_crtc *crtc)
|
||||
{
|
||||
struct vop *vop;
|
||||
|
||||
if (!crtc)
|
||||
return;
|
||||
|
||||
vop = to_vop(crtc);
|
||||
|
||||
if (vop->mcu_timing.mcu_pix_total)
|
||||
VOP_CTRL_SET(vop, mcu_frame_st, 1);
|
||||
}
|
||||
|
||||
static const struct rockchip_crtc_funcs private_crtc_funcs = {
|
||||
.loader_protect = vop_crtc_loader_protect,
|
||||
.cancel_pending_vblank = vop_crtc_cancel_pending_vblank,
|
||||
@@ -3233,6 +3246,7 @@ static const struct rockchip_crtc_funcs private_crtc_funcs = {
|
||||
.crtc_close = vop_crtc_close,
|
||||
.crtc_send_mcu_cmd = vop_crtc_send_mcu_cmd,
|
||||
.wait_vact_end = vop_crtc_wait_vact_end,
|
||||
.te_handler = vop_crtc_te_handler,
|
||||
};
|
||||
|
||||
static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
|
||||
@@ -4273,7 +4287,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
} else {
|
||||
VOP_CTRL_SET(vop, reg_done_frm, 0);
|
||||
}
|
||||
if (vop->mcu_timing.mcu_pix_total)
|
||||
if (vop->mcu_timing.mcu_pix_total && !s->soft_te)
|
||||
VOP_CTRL_SET(vop, mcu_hold_mode, 0);
|
||||
|
||||
spin_unlock_irqrestore(&vop->irq_lock, flags);
|
||||
|
||||
Reference in New Issue
Block a user