Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm/mdp4: request vblank during modeset

This avoids a problem seen with weston (for example) where the display
gets stuck in "black screen" if starting weston first thing after boot.
Possibly mdp5 needs something similar. The downstream android fbdev
driver always requests DMA_E (or DMA_P) when display is active, rather
than only enabling it on-demand as the drm driver does, which I believe
has the same end result.

Signed-off-by: Rob Clark <robdclark@gmail.com>

Rob Clark 119ecb7f 6814dbf9

+2
+2
drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
··· 397 397 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); 398 398 DBG("%s", mdp4_crtc->name); 399 399 /* make sure we hold a ref to mdp clks while setting up mode: */ 400 + drm_crtc_vblank_get(crtc); 400 401 mdp4_enable(get_kms(crtc)); 401 402 mdp4_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); 402 403 } ··· 408 407 crtc_flush(crtc); 409 408 /* drop the ref to mdp clk's that we got in prepare: */ 410 409 mdp4_disable(get_kms(crtc)); 410 + drm_crtc_vblank_put(crtc); 411 411 } 412 412 413 413 static int mdp4_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,