Merge "disp: msm: sde: handle cont-splash & check only rm reserve"

This commit is contained in:
qctecmdr 2019-04-30 16:37:22 -07:00 • committed by Gerrit - the friendly Code Review server
commit 4be499df4b
2 changed files with 15 additions and 1 deletions

View file

@ -3313,7 +3313,7 @@ static void sde_crtc_destroy_state(struct drm_crtc *crtc,
SDE_DEBUG("crtc%d\n", crtc->base.id);
if (sde_kms && enc && !sde_encoder_in_cont_splash(enc))
if (sde_kms && enc)
sde_rm_release(&sde_kms->rm, enc, true);
__drm_atomic_helper_crtc_destroy_state(state);

View file

@ -1699,6 +1699,8 @@ void sde_rm_release(struct sde_rm *rm, struct drm_encoder *enc, bool nxt)
{
struct sde_rm_rsvp *rsvp;
struct drm_connector *conn;
struct msm_drm_private *priv;
struct sde_kms *sde_kms;
uint64_t top_ctrl;
if (!rm || !enc) {
@ -1706,6 +1708,13 @@ void sde_rm_release(struct sde_rm *rm, struct drm_encoder *enc, bool nxt)
return;
}
priv = enc->dev->dev_private;
if (!priv->kms) {
SDE_ERROR("invalid kms\n");
return;
}
sde_kms = to_sde_kms(priv->kms);
mutex_lock(&rm->rm_lock);
if (nxt)
@ -1718,6 +1727,11 @@ void sde_rm_release(struct sde_rm *rm, struct drm_encoder *enc, bool nxt)
goto end;
}
if (_sde_rm_is_display_in_cont_splash(sde_kms, enc)) {
_sde_rm_release_rsvp(rm, rsvp, conn);
goto end;
}
conn = _sde_rm_get_connector(enc);
if (!conn) {
SDE_ERROR("failed to get connector for enc %d, nxt %d",