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

Commit 61436825 authored by Rahul Sharma's avatar Rahul Sharma Committed by Gerrit - the friendly Code Review server
Browse files

drm/msm/sde: do not send stop splash signal from eDRM to LK



When eDRM commits the frame it tells LK to stop the splash
and waits for around 4 seconds to get the acknowledgment from LK.
Since LK would keep on running when RVC is also active
so eDRM on each commit will poll for 4 seconds.
In order to resolve the problem, eDRM should not tell LK to stop splash
and neither wait for the acknowledgment from LK.

Change-Id: I0bae0946445fa26898f85eaece943ff4ab93cfbd
Signed-off-by: default avatarRahul Sharma <rahsha@codeaurora.org>
parent 55b4dd97
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -70,12 +70,6 @@ static void edrm_kms_prepare_commit(struct msm_kms *kms,
	/* Notify bootloader splash to stop */
	if (valid_commit && edrm_kms->lk_running_flag) {

		/* if LK is still running, notify LK to stop */
		if (edrm_splash_get_lk_status(kms) !=
			SPLASH_STATUS_NOT_START) {
			edrm_splash_notify_lk_stop_splash(kms);
			edrm_splash_poll_lk_stop_splash(kms);
		}

		/* next eDRM close will trigger display resources handoff */
		edrm_kms->handoff_flag = true;
+0 −32
Original line number Diff line number Diff line
@@ -32,38 +32,6 @@
#define SDE_EXIT_VALUE		0xDEADBEEF
#define SDE_LK_IMMEDIATE_STOP_VALUE	0xFEFEFEFE

/**
 * edrm_splash_notify_lk_stop_splash.
 *
 * Function to stop early splash in LK.
 */
void edrm_splash_notify_lk_stop_splash(struct msm_kms *kms)
{
	request_early_service_shutdown(EARLY_DISPLAY);
}

/**
 * edrm_splash_poll_lk_stop_splash.
 *
 * Function to poll for early splash stop in LK.
 */
void edrm_splash_poll_lk_stop_splash(struct msm_kms *kms)
{
	int i = 0;
	struct msm_edrm_kms *edrm_kms = to_edrm_kms(kms);

	/* each read may wait up to 10000us, worst case polling is 4 sec */
	while (i < 400) {
		/* read LK status from scratch register*/
		if (!get_early_service_status(EARLY_DISPLAY)) {
			edrm_kms->lk_running_flag = false;
			break;
		}
		usleep_range(8000, 10000);
		i++;
	}
}

/*
 * Below function will indicate early display exited or not started.
 */
+0 −15
Original line number Diff line number Diff line
@@ -19,21 +19,6 @@

/* APIs for early splash handoff functions */

/**
 * edrm_splash_notify_lk_stop_splash.
 *
 * Tell LK to stop display splash.  LK may continue to run until last frame.
 */
void edrm_splash_notify_lk_stop_splash(struct msm_kms *kms);


/**
 * edrm_splash_poll_lk_stop_splash.
 *
 * Wait unitl LK stop the spash at last frame or it exited the splash app.
 */
void edrm_splash_poll_lk_stop_splash(struct msm_kms *kms);

/**
 * edrm_splash_get_lk_status
 *