Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae8a7e69 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "drm: msm: sde: remove user commit validity check""

parents 0c110c0c fed3e2d8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ static void sde_kms_prepare_commit(struct msm_kms *kms,

	if (sde_kms->splash_info.handoff &&
		sde_kms->splash_info.display_splash_enabled)
		sde_splash_lk_stop_splash(kms);
		sde_splash_lk_stop_splash(kms, state);

	sde_power_resource_enable(&priv->phandle,
			sde_kms->core_client, true);
+27 −2
Original line number Diff line number Diff line
@@ -367,6 +367,29 @@ static int _sde_splash_free_module_resource(struct msm_mmu *mmu,
	return 0;
}

static bool _sde_splash_validate_commit(struct sde_kms *sde_kms,
					struct drm_atomic_state *state)
{
	int i, nplanes;
	struct drm_plane *plane;
	struct drm_device *dev = sde_kms->dev;

	nplanes = dev->mode_config.num_total_plane;

	for (i = 0; i < nplanes; i++) {
		plane = state->planes[i];

		/*
		 * As plane state has been swapped, we need to check
		 * fb in state->planes, not fb in state->plane_state.
		 */
		if (plane && plane->fb)
			return true;
	}

	return false;
}

__ref int sde_splash_init(struct sde_power_handle *phandle, struct msm_kms *kms)
{
	struct sde_kms *sde_kms;
@@ -858,7 +881,8 @@ int sde_splash_free_resource(struct msm_kms *kms,
/*
 * Below function will notify LK to stop display splash.
 */
int sde_splash_lk_stop_splash(struct msm_kms *kms)
int sde_splash_lk_stop_splash(struct msm_kms *kms,
				struct drm_atomic_state *state)
{
	struct sde_splash_info *sinfo;
	struct sde_kms *sde_kms = to_sde_kms(kms);
@@ -872,7 +896,8 @@ int sde_splash_lk_stop_splash(struct msm_kms *kms)

	/* Monitor LK's status and tell it to exit. */
	mutex_lock(&sde_splash_lock);
	if (sinfo->display_splash_enabled) {
	if (_sde_splash_validate_commit(sde_kms, state) &&
			sinfo->display_splash_enabled) {
		if (_sde_splash_lk_check(sde_kms->hw_intr))
			_sde_splash_notify_lk_stop_splash(sde_kms->hw_intr);

+2 −1
Original line number Diff line number Diff line
@@ -120,7 +120,8 @@ void sde_splash_setup_connector_count(struct sde_splash_info *sinfo,
 *
 * Tell LK to stop display splash once one valid user commit arrives.
 */
int sde_splash_lk_stop_splash(struct msm_kms *kms);
int sde_splash_lk_stop_splash(struct msm_kms *kms,
				struct drm_atomic_state *state);

/**
 * sde_splash_free_resource.