|
@@ -895,42 +895,6 @@ static void vop_crtc_atomic_enable(struct drm_crtc *crtc,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * If dclk rate is zero, mean that scanout is stop,
|
|
|
- * we don't need wait any more.
|
|
|
- */
|
|
|
- if (clk_get_rate(vop->dclk)) {
|
|
|
- /*
|
|
|
- * Rk3288 vop timing register is immediately, when configure
|
|
|
- * display timing on display time, may cause tearing.
|
|
|
- *
|
|
|
- * Vop standby will take effect at end of current frame,
|
|
|
- * if dsp hold valid irq happen, it means standby complete.
|
|
|
- *
|
|
|
- * mode set:
|
|
|
- * standby and wait complete --> |----
|
|
|
- * | display time
|
|
|
- * |----
|
|
|
- * |---> dsp hold irq
|
|
|
- * configure display timing --> |
|
|
|
- * standby exit |
|
|
|
- * | new frame start.
|
|
|
- */
|
|
|
-
|
|
|
- reinit_completion(&vop->dsp_hold_completion);
|
|
|
- vop_dsp_hold_valid_irq_enable(vop);
|
|
|
-
|
|
|
- spin_lock(&vop->reg_lock);
|
|
|
-
|
|
|
- VOP_REG_SET(vop, common, standby, 1);
|
|
|
-
|
|
|
- spin_unlock(&vop->reg_lock);
|
|
|
-
|
|
|
- wait_for_completion(&vop->dsp_hold_completion);
|
|
|
-
|
|
|
- vop_dsp_hold_valid_irq_disable(vop);
|
|
|
- }
|
|
|
-
|
|
|
pin_pol = BIT(DCLK_INVERT);
|
|
|
pin_pol |= (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC) ?
|
|
|
BIT(HSYNC_POSITIVE) : 0;
|