disp: msm: sde: ignore HW recovery disable event
The current SDE driver logic during MDP hang cases is to send a capture event to user-mode if recovery custom event is registered. Otherwise, it will enforce a device panic for debugging purpose. This might have a race condition during the display tear-down sequence as user-mode unregisters the recovery event when the last frame is in progress. If the last frame causes any MDP hang, it will result in a device reset. Support only the event registration to avoid this case, since HW recovery is not expected to be changed dynamically. Change-Id: I8a11e1060b239ac6827f1d078e3e396cff4c1325 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
这个提交包含在:
@@ -2994,8 +2994,7 @@ error_free_conn:
|
||||
return ERR_PTR(rc);
|
||||
}
|
||||
|
||||
static int _sde_conn_hw_recovery_handler(
|
||||
struct drm_connector *connector, bool val)
|
||||
static int _sde_conn_enable_hw_recovery(struct drm_connector *connector)
|
||||
{
|
||||
struct sde_connector *c_conn;
|
||||
|
||||
@@ -3006,7 +3005,7 @@ static int _sde_conn_hw_recovery_handler(
|
||||
c_conn = to_sde_connector(connector);
|
||||
|
||||
if (c_conn->encoder)
|
||||
sde_encoder_recovery_events_handler(c_conn->encoder, val);
|
||||
sde_encoder_enable_recovery_event(c_conn->encoder);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -3024,7 +3023,7 @@ int sde_connector_register_custom_event(struct sde_kms *kms,
|
||||
ret = 0;
|
||||
break;
|
||||
case DRM_EVENT_SDE_HW_RECOVERY:
|
||||
ret = _sde_conn_hw_recovery_handler(conn_drm, val);
|
||||
ret = _sde_conn_enable_hw_recovery(conn_drm);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
在新工单中引用
屏蔽一个用户