disp: msm: sde: cancel delayed work items during TUI transition

Delayed work items may touch HW registers. If these work items
run while HW is not owned by this VM it will lead to invalid
access. This happens in video mode as HAL does not disable idle
power-collapse in this mode. It can also happen with ESD status
if lastclose or TUI transition failure occurs.

Although there is a contract with user mode to turn off certain
features, kernel cannot rely on it to always do the right thing.
Prevent potential crashes from certain corner cases by
cancelling all delayed work items when the HW ownership is
transferred.

Change-Id: I08da17f2ce72bf2fddf71924c3e8edd2e2715be8
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
This commit is contained in:
Steve Cohen
2021-07-09 19:31:03 -04:00
parent a5da9d0045
commit a42fd877c7
5 changed files with 113 additions and 63 deletions

View File

@@ -1049,4 +1049,10 @@ void sde_crtc_disable_cp_features(struct drm_crtc *crtc);
*/
void _sde_crtc_clear_dim_layers_v1(struct drm_crtc_state *state);
/**
* sde_crtc_cancel_delayed_work - cancel any pending work items for a given crtc
* @crtc: Pointer to DRM crtc object
*/
void sde_crtc_cancel_delayed_work(struct drm_crtc *crtc);
#endif /* _SDE_CRTC_H_ */