static int vs_crtc_enable_vblank(struct drm_crtc *crtc)
{
struct vs_crtc *vs_crtc = to_vs_crtc(crtc);
+ struct vs_crtc_state *vs_crtc_state = to_vs_crtc_state(crtc->state);
+
+ if (vs_crtc_state->encoder_type == DRM_MODE_ENCODER_DSI)
+ vs_crtc->funcs->enable(vs_crtc->dev, crtc);
vs_crtc->funcs->enable_vblank(vs_crtc->dev, true);
if (vs_crtc_state->encoder_type != DRM_MODE_ENCODER_DSI){
vs_crtc->funcs->enable(vs_crtc->dev, crtc);
drm_crtc_vblank_on(crtc);
+ } else {
+ drm_crtc_vblank_on(crtc);
}
+
}
static void vs_crtc_atomic_disable(struct drm_crtc *crtc,
struct drm_color_lut *lut;
struct vs_crtc_state *vs_crtc_state = to_vs_crtc_state(crtc->state);
- if (vs_crtc_state->encoder_type == DRM_MODE_ENCODER_DSI){
- vs_crtc->funcs->enable(vs_crtc->dev, crtc);
- drm_crtc_vblank_on(crtc);
- }
-
if (crtc_state->color_mgmt_changed) {
if ((blob) && (blob->length)) {
lut = blob->data;