val = readl(mcde->regs + MCDE_CRC);
                val |= MCDE_CRC_SYCEN0;
                writel(val, mcde->regs + MCDE_CRC);
-
-               drm_crtc_vblank_on(crtc);
        }
 
+       drm_crtc_vblank_on(crtc);
+
        dev_info(drm->dev, "MCDE display is enabled\n");
 }
 
        struct drm_device *drm = crtc->dev;
        struct mcde *mcde = drm->dev_private;
 
-       if (mcde->te_sync)
-               drm_crtc_vblank_off(crtc);
+       drm_crtc_vblank_off(crtc);
 
        /* Disable FIFO A flow */
        mcde_disable_fifo(mcde, MCDE_FIFO_A, true);
        .enable = mcde_display_enable,
        .disable = mcde_display_disable,
        .update = mcde_display_update,
+       .enable_vblank = mcde_display_enable_vblank,
+       .disable_vblank = mcde_display_disable_vblank,
        .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb,
 };
 
                DRM_FORMAT_YUV422,
        };
 
-       /* Provide vblank only when we have TE enabled */
-       if (mcde->te_sync) {
-               mcde_display_funcs.enable_vblank = mcde_display_enable_vblank;
-               mcde_display_funcs.disable_vblank = mcde_display_disable_vblank;
-       }
-
        ret = drm_simple_display_pipe_init(drm, &mcde->pipe,
                                           &mcde_display_funcs,
                                           formats, ARRAY_SIZE(formats),
 
        mode_config->min_height = 1;
        mode_config->max_height = 1080;
 
-       /*
-        * Currently we only support vblank handling on the DSI bridge, using
-        * TE synchronization. If TE sync is not set up, it is still possible
-        * to push out a single update on demand, but this is hard for DRM to
-        * exploit.
-        */
-       if (mcde->te_sync) {
-               ret = drm_vblank_init(drm, 1);
-               if (ret) {
-                       dev_err(drm->dev, "failed to init vblank\n");
-                       goto out_config;
-               }
+       ret = drm_vblank_init(drm, 1);
+       if (ret) {
+               dev_err(drm->dev, "failed to init vblank\n");
+               goto out_config;
        }
 
        ret = mcde_display_init(drm);