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

Commit ac2b2415 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/sde: Send blank notification only when CRTC active changed"

parents d581293e 3ef62a01
Loading
Loading
Loading
Loading
+18 −9
Original line number Original line Diff line number Diff line
@@ -239,11 +239,14 @@ msm_disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
		DRM_DEBUG_ATOMIC("disabling [ENCODER:%d:%s]\n",
		DRM_DEBUG_ATOMIC("disabling [ENCODER:%d:%s]\n",
				 encoder->base.id, encoder->name);
				 encoder->base.id, encoder->name);


		if (connector->state->crtc &&
			connector->state->crtc->state->active_changed) {
			blank = MSM_DRM_BLANK_POWERDOWN;
			blank = MSM_DRM_BLANK_POWERDOWN;
			notifier_data.data = ␣
			notifier_data.data = ␣
			notifier_data.id = crtc_idx;
			notifier_data.id = crtc_idx;
			msm_drm_notifier_call_chain(MSM_DRM_EARLY_EVENT_BLANK,
			msm_drm_notifier_call_chain(MSM_DRM_EARLY_EVENT_BLANK,
						     &notifier_data);
						     &notifier_data);
		}
		/*
		/*
		 * Each encoder has at most one connector (since we always steal
		 * Each encoder has at most one connector (since we always steal
		 * it away), so we won't call disable hooks twice.
		 * it away), so we won't call disable hooks twice.
@@ -259,9 +262,13 @@ msm_disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
			funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
			funcs->dpms(encoder, DRM_MODE_DPMS_OFF);


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


	for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) {
	for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) {
		const struct drm_crtc_helper_funcs *funcs;
		const struct drm_crtc_helper_funcs *funcs;
@@ -465,7 +472,8 @@ static void msm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
		DRM_DEBUG_ATOMIC("enabling [ENCODER:%d:%s]\n",
		DRM_DEBUG_ATOMIC("enabling [ENCODER:%d:%s]\n",
				 encoder->base.id, encoder->name);
				 encoder->base.id, encoder->name);


		if (connector->state->crtc->state->active_changed) {
		if (connector->state->crtc &&
			connector->state->crtc->state->active_changed) {
			blank = MSM_DRM_BLANK_UNBLANK;
			blank = MSM_DRM_BLANK_UNBLANK;
			notifier_data.data = ␣
			notifier_data.data = ␣
			notifier_data.id =
			notifier_data.id =
@@ -522,7 +530,8 @@ static void msm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
				 encoder->base.id, encoder->name);
				 encoder->base.id, encoder->name);


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