Commit 119ecb7f authored by Rob Clark's avatar Rob Clark

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: default avatarRob Clark <robdclark@gmail.com>
parent 6814dbf9
...@@ -397,6 +397,7 @@ static void mdp4_crtc_prepare(struct drm_crtc *crtc) ...@@ -397,6 +397,7 @@ static void mdp4_crtc_prepare(struct drm_crtc *crtc)
struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc);
DBG("%s", mdp4_crtc->name); DBG("%s", mdp4_crtc->name);
/* make sure we hold a ref to mdp clks while setting up mode: */ /* make sure we hold a ref to mdp clks while setting up mode: */
drm_crtc_vblank_get(crtc);
mdp4_enable(get_kms(crtc)); mdp4_enable(get_kms(crtc));
mdp4_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); mdp4_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
} }
...@@ -407,6 +408,7 @@ static void mdp4_crtc_commit(struct drm_crtc *crtc) ...@@ -407,6 +408,7 @@ static void mdp4_crtc_commit(struct drm_crtc *crtc)
crtc_flush(crtc); crtc_flush(crtc);
/* drop the ref to mdp clk's that we got in prepare: */ /* drop the ref to mdp clk's that we got in prepare: */
mdp4_disable(get_kms(crtc)); mdp4_disable(get_kms(crtc));
drm_crtc_vblank_put(crtc);
} }
static int mdp4_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, static int mdp4_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment