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

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

Merge "disp: msm: sde: fix race between disable commit and vblank work"

parents cd1fb364 31dd25c6
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -3850,8 +3850,10 @@ static int _sde_crtc_vblank_enable_no_lock(
		if (ret < 0)
			return ret;

		drm_for_each_encoder_mask(enc, crtc->dev,
			crtc->state->encoder_mask) {
		drm_for_each_encoder(enc, crtc->dev) {
			if (enc->crtc != crtc)
				continue;

			SDE_EVT32(DRMID(&sde_crtc->base), DRMID(enc), enable,
					sde_crtc->enabled);

@@ -3859,8 +3861,10 @@ static int _sde_crtc_vblank_enable_no_lock(
					sde_crtc_vblank_cb, (void *)crtc);
		}
	} else {
		drm_for_each_encoder_mask(enc, crtc->dev,
			crtc->state->encoder_mask) {
		drm_for_each_encoder(enc, crtc->dev) {
			if (enc->crtc != crtc)
				continue;

			SDE_EVT32(DRMID(&sde_crtc->base), DRMID(enc), enable,
					sde_crtc->enabled);

@@ -4159,11 +4163,9 @@ static void sde_crtc_disable(struct drm_crtc *crtc)
	msm_mode_object_event_notify(&crtc->base, crtc->dev, &event,
			(u8 *)&power_on);

	if (atomic_read(&sde_crtc->frame_pending)) {
	mutex_unlock(&sde_crtc->crtc_lock);
	_sde_crtc_flush_event_thread(crtc);
	mutex_lock(&sde_crtc->crtc_lock);
	}

	kthread_cancel_delayed_work_sync(&sde_crtc->static_cache_read_work);
	kthread_cancel_delayed_work_sync(&sde_crtc->idle_notify_work);