Merge "disp: msm: sde: trigger esd recovery before event notification"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
d550ee8532
@@ -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);
|
||||
}
|
||||
|
||||
@@ -1607,8 +1607,7 @@ static void _sde_encoder_rc_restart_delayed(struct sde_encoder_virt *sde_enc,
|
||||
static void _sde_encoder_rc_cancel_delayed(struct sde_encoder_virt *sde_enc,
|
||||
u32 sw_event)
|
||||
{
|
||||
if (kthread_cancel_delayed_work_sync(
|
||||
&sde_enc->delayed_off_work))
|
||||
if (kthread_cancel_delayed_work_sync(&sde_enc->delayed_off_work))
|
||||
SDE_DEBUG_ENC(sde_enc, "sw_event:%d, work cancelled\n",
|
||||
sw_event);
|
||||
}
|
||||
@@ -2695,8 +2694,7 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
|
||||
!(msm_is_mode_seamless_vrr(cur_mode)
|
||||
|| msm_is_mode_seamless_dms(cur_mode)
|
||||
|| msm_is_mode_seamless_dyn_clk(cur_mode)))
|
||||
kthread_init_delayed_work(&sde_enc->delayed_off_work,
|
||||
sde_encoder_off_work);
|
||||
kthread_cancel_delayed_work_sync(&sde_enc->delayed_off_work);
|
||||
|
||||
ret = sde_encoder_resource_control(drm_enc, SDE_ENC_RC_EVENT_KICKOFF);
|
||||
if (ret) {
|
||||
@@ -2856,6 +2854,7 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
|
||||
*/
|
||||
sde_enc->crtc = NULL;
|
||||
memset(&sde_enc->mode_info, 0, sizeof(sde_enc->mode_info));
|
||||
kthread_cancel_delayed_work_sync(&sde_enc->delayed_off_work);
|
||||
|
||||
SDE_DEBUG_ENC(sde_enc, "encoder disabled\n");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user