disp: msm: sde: trigger esd recovery before event notification
ESD recovery schedules KICKOFF event on event_thread, switches the vsync source to wd_timer and waits for pending frame. This work is triggered from workthread and it must be finished before panel dead event notification to avoid race condition with power off sequence. This change also cancels the delayed work after encoder is disabled. Change-Id: Iadc5753238a54e6dad3ff57a9b8ae3bd9644c0dc Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
This commit is contained in:

committad av
Gerrit - the friendly Code Review server

förälder
d9c2a8d3a6
incheckning
9ce6a2fbb3
@@ -2392,14 +2392,15 @@ static void _sde_connector_report_panel_dead(struct sde_connector *conn,
|
||||
if (conn->panel_dead)
|
||||
return;
|
||||
|
||||
SDE_EVT32(SDE_EVTLOG_ERROR);
|
||||
sde_encoder_display_failure_notification(conn->encoder,
|
||||
skip_pre_kickoff);
|
||||
|
||||
conn->panel_dead = true;
|
||||
event.type = DRM_EVENT_PANEL_DEAD;
|
||||
event.length = sizeof(bool);
|
||||
msm_mode_object_event_notify(&conn->base.base,
|
||||
conn->base.dev, &event, (u8 *)&conn->panel_dead);
|
||||
sde_encoder_display_failure_notification(conn->encoder,
|
||||
skip_pre_kickoff);
|
||||
SDE_EVT32(SDE_EVTLOG_ERROR);
|
||||
SDE_ERROR("esd check failed report PANEL_DEAD conn_id: %d enc_id: %d\n",
|
||||
conn->base.base.id, conn->encoder->base.id);
|
||||
}
|
||||
|
Referens i nytt ärende
Block a user