disp: msm: sde: flush esd work before disabling the encoder
Flush ESD status work before resetting the encoder state during virt_disable sequence to avoid stale pointers being used in the ESD work. Change-Id: I4bb08a7a7ae33ad6386169667692736e554141c4 Signed-off-by: Kalyan Thota <quic_kalyant@quicinc.com>
这个提交包含在:
@@ -3066,6 +3066,7 @@ void sde_encoder_virt_reset(struct drm_encoder *drm_enc)
|
||||
static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
|
||||
{
|
||||
struct sde_encoder_virt *sde_enc = NULL;
|
||||
struct sde_connector *sde_conn;
|
||||
struct sde_kms *sde_kms;
|
||||
enum sde_intf_mode intf_mode;
|
||||
int ret, i = 0;
|
||||
@@ -3087,6 +3088,7 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
|
||||
}
|
||||
|
||||
sde_enc = to_sde_encoder_virt(drm_enc);
|
||||
sde_conn = to_sde_connector(sde_enc->cur_master->connector);
|
||||
SDE_DEBUG_ENC(sde_enc, "\n");
|
||||
|
||||
sde_kms = sde_encoder_get_kms(&sde_enc->base);
|
||||
@@ -3103,6 +3105,7 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
|
||||
|
||||
_sde_encoder_input_handler_unregister(drm_enc);
|
||||
|
||||
flush_delayed_work(&sde_conn->status_work);
|
||||
/*
|
||||
* For primary command mode and video mode encoders, execute the
|
||||
* resource control pre-stop operations before the physical encoders
|
||||
|
在新工单中引用
屏蔽一个用户