|
@@ -2830,6 +2830,10 @@ void sde_crtc_complete_commit(struct drm_crtc *crtc,
|
|
|
struct drm_crtc_state *old_state)
|
|
|
{
|
|
|
struct sde_crtc *sde_crtc;
|
|
|
+ struct sde_splash_display *splash_display = NULL;
|
|
|
+ struct sde_kms *sde_kms;
|
|
|
+ bool cont_splash_enabled = false;
|
|
|
+ int i;
|
|
|
u32 power_on = 1;
|
|
|
|
|
|
if (!crtc || !crtc->state) {
|
|
@@ -2840,7 +2844,16 @@ void sde_crtc_complete_commit(struct drm_crtc *crtc,
|
|
|
sde_crtc = to_sde_crtc(crtc);
|
|
|
SDE_EVT32_VERBOSE(DRMID(crtc));
|
|
|
|
|
|
- if (crtc->state->active_changed && crtc->state->active)
|
|
|
+ sde_kms = _sde_crtc_get_kms(crtc);
|
|
|
+
|
|
|
+ for (i = 0; i < MAX_DSI_DISPLAYS; i++) {
|
|
|
+ splash_display = &sde_kms->splash_data.splash_display[i];
|
|
|
+ if (splash_display->cont_splash_enabled &&
|
|
|
+ crtc == splash_display->encoder->crtc)
|
|
|
+ cont_splash_enabled = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((crtc->state->active_changed || cont_splash_enabled) && crtc->state->active)
|
|
|
sde_crtc_event_notify(crtc, DRM_EVENT_CRTC_POWER, sizeof(u32), power_on);
|
|
|
|
|
|
sde_core_perf_crtc_update(crtc, 0, false);
|