disp: msm: sde: flush event thread work before vm transition

During VM transition there should be no pending crtc event
thread operations in progress to avoid any resource access
after vm release. Flush the event thread worker in prerelease
to ensure it.

Change-Id: I51d6c78a702235ee926c9ff6415c8d69f74b5929
Signed-off-by: Raviteja Tamatam <quic_travitej@quicinc.com>
此提交包含在:
Raviteja Tamatam
2023-02-22 14:24:58 -08:00
父節點 5176514114
當前提交 b470c15742

查看文件

@@ -1383,11 +1383,13 @@ int sde_kms_vm_pre_release(struct sde_kms *sde_kms,
{
struct drm_crtc *crtc;
struct drm_encoder *encoder;
struct msm_drm_private *priv;
int rc = 0;
crtc = sde_kms_vm_get_vm_crtc(state);
if (!crtc)
return 0;
priv = sde_kms->dev->dev_private;
/* if vm_req is enabled, once CRTC on the commit is guaranteed */
sde_kms_wait_for_frame_transfer_complete(&sde_kms->base, crtc);
@@ -1396,6 +1398,8 @@ int sde_kms_vm_pre_release(struct sde_kms *sde_kms,
sde_kms_cancel_delayed_work(crtc);
kthread_flush_worker(&priv->event_thread[crtc->index].worker);
/* disable SDE encoder irq's */
drm_for_each_encoder_mask(encoder, crtc->dev,
crtc->state->encoder_mask) {