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

Commit 0a6dfff0 authored by Jayant Shekhar's avatar Jayant Shekhar
Browse files

drm/msm/sde: Prevent multiple unblank event trigger



In cases such as dynamic fps, resolution switch, currently
unblank event is triggered every time when new modeset is
required. Trigger the event only when active changed.

Change-Id: I6387f576a804999f1e916a1852a4c21719de9e91
Signed-off-by: default avatarJayant Shekhar <jshekhar@codeaurora.org>
parent d2225bc9
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -462,12 +462,15 @@ static void msm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
		DRM_DEBUG_ATOMIC("enabling [ENCODER:%d:%s]\n",
				 encoder->base.id, encoder->name);

		if (connector->state->crtc->state->active_changed) {
			blank = MSM_DRM_BLANK_UNBLANK;
			notifier_data.data = &blank;
			notifier_data.id =
				connector->state->crtc->index;
			DRM_DEBUG_ATOMIC("Notify early unblank\n");
			msm_drm_notifier_call_chain(MSM_DRM_EARLY_EVENT_BLANK,
					    &notifier_data);
		}
		/*
		 * Each encoder has at most one connector (since we always steal
		 * it away), so we won't call enable hooks twice.
@@ -512,9 +515,12 @@ static void msm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
				 encoder->base.id, encoder->name);

		drm_bridge_enable(encoder->bridge);
		if (connector->state->crtc->state->active_changed) {
			DRM_DEBUG_ATOMIC("Notify unblank\n");
			msm_drm_notifier_call_chain(MSM_DRM_EVENT_BLANK,
					    &notifier_data);
		}
	}
	SDE_ATRACE_END("msm_enable");
}