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

On the first commit, cont splash flag is still enabled on
encoder, but connector is not yet attached. When a check-only
rm reservation is made, it does not get released due to
cont-splash check. If cont-splash is enabled, rm should
not check for connector, but directly release rsvp_nxt.

Change-Id: I79be3c1bb20b74ce4a95786c90f3accfb587d7f2
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
Цей коміт міститься в:
Nilaan Gunabalachandran
2019-04-26 16:29:42 -04:00
зафіксовано Gerrit - the friendly Code Review server
джерело e90235e1b3
коміт ce0fef975e
2 змінених файлів з 15 додано та 1 видалено

Переглянути файл

@@ -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",