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

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

Merge "drm/msm/sde: Use kthread API to initialize idle delay work" into dev/msm-4.14-display

parents 6c6d4b24 521ae68c
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -2925,6 +2925,21 @@ void sde_encoder_virt_restore(struct drm_encoder *drm_enc)
	_sde_encoder_virt_enable_helper(drm_enc);
}

static void sde_encoder_off_work(struct kthread_work *work)
{
	struct sde_encoder_virt *sde_enc = container_of(work,
			struct sde_encoder_virt, delayed_off_work.work);
	struct drm_encoder *drm_enc;

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

	sde_encoder_idle_request(drm_enc);
}

static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
{
	struct sde_encoder_virt *sde_enc = NULL;
@@ -2986,7 +3001,9 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
			"input handler registration failed, rc = %d\n", ret);
	}

	sde_enc->delayed_off_work.work.worker = NULL;
	if (!msm_is_mode_seamless_vrr(cur_mode))
		kthread_init_delayed_work(&sde_enc->delayed_off_work,
			sde_encoder_off_work);

	ret = sde_encoder_resource_control(drm_enc, SDE_ENC_RC_EVENT_KICKOFF);
	if (ret) {
@@ -3335,21 +3352,6 @@ int sde_encoder_idle_request(struct drm_encoder *drm_enc)
	return 0;
}

static void sde_encoder_off_work(struct kthread_work *work)
{
	struct sde_encoder_virt *sde_enc = container_of(work,
			struct sde_encoder_virt, delayed_off_work.work);
	struct drm_encoder *drm_enc;

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

	sde_encoder_idle_request(drm_enc);
}

/**
 * _sde_encoder_trigger_flush - trigger flush for a physical encoder
 * drm_enc: Pointer to drm encoder structure