disp: msm: cancel all delayed_works before triggering msm_lastclose
This patch cancels all the delayed_off_works if scheduled and flushes the display threads for completion during msm_lastclose. The commit from msm_lastclose client modeset to disable any crtcs if enabled is always scheduled on primary crtc_commit thread. In the current issue, delayed_off_work is scheduled on secondary display crtc_commit thread and primary crtc_commit thread is scheduled to turn off active crtcs from msm_lastclose leading to null dereference access of sde_enc's cur_master. This race is avoided by serializing the operations in msm_lastclose. Change-Id: I30cc95b925c8134f0064816ebe2cfdb86a49fb36 Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
Tento commit je obsažen v:

odevzdal
Veera Sundaram Sankaran

rodič
50420e8d17
revize
182aac6040
@@ -1115,6 +1115,8 @@ struct drm_atomic_state *msm_atomic_state_alloc(struct drm_device *dev);
|
||||
void msm_atomic_state_clear(struct drm_atomic_state *state);
|
||||
void msm_atomic_state_free(struct drm_atomic_state *state);
|
||||
|
||||
void msm_atomic_flush_display_threads(struct msm_drm_private *priv);
|
||||
|
||||
int msm_gem_init_vma(struct msm_gem_address_space *aspace,
|
||||
struct msm_gem_vma *vma, int npages);
|
||||
void msm_gem_unmap_vma(struct msm_gem_address_space *aspace,
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele