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

Commit 137adbba authored by Shubhashree Dhar's avatar Shubhashree Dhar
Browse files

drm/msm/sde: Correct sequence for input handler flush work



Flush work is done after input handler unregister in encoder virt
disable to avoid race condition. Unused variables in encoder enable
are removed.

Change-Id: Idce3c685deced3ac3d826911ee33e2fc6b6415b4
Signed-off-by: default avatarShubhashree Dhar <dhar@codeaurora.org>
parent d77ce925
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -2689,14 +2689,12 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
	struct msm_compression_info *comp_info = NULL;
	struct drm_display_mode *cur_mode = NULL;
	struct msm_mode_info mode_info;
	struct msm_display_info *disp_info;

	if (!drm_enc) {
		SDE_ERROR("invalid encoder\n");
		return;
	}
	sde_enc = to_sde_encoder_virt(drm_enc);
	disp_info = &sde_enc->disp_info;

	if (!sde_kms_power_resource_is_enabled(drm_enc->dev)) {
		SDE_ERROR("power resource is not enabled\n");
@@ -2817,14 +2815,14 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)

	SDE_EVT32(DRMID(drm_enc));

	if (sde_enc->input_handler)
		input_unregister_handler(sde_enc->input_handler);

	/* wait for idle */
	sde_encoder_wait_for_event(drm_enc, MSM_ENC_TX_COMPLETE);

	kthread_flush_work(&sde_enc->input_event_work);

	if (sde_enc->input_handler)
		input_unregister_handler(sde_enc->input_handler);

	/*
	 * For primary command mode encoders, execute the resource control
	 * pre-stop operations before the physical encoders are disabled, to