
Hamza's work is trying to address the possibility of the display stalling indefinitely where a hard reset of the system is then needed to recover.
Instead of stalling indefinitely, the KMS recovery mechanism aims to force a full mode-setting to re-program the state from scratch. Or if that fails, a new optional function allowing for driver/vendor-specific handling could be called for trying to address the stall / page-flip timeout.
"There should be a mechanism for drivers to respond to flip_done timeouts. Since, as it stands it is possible for the display to stall indefinitely, necessitating a hard reset. So, introduce a new mechanism that tries various methods of recovery with increasing aggression, in the following order:
1. Force a full modeset (have the compositor reprogram the state from scratch).
3. As a last resort, have the driver attempt a vendor specific reset (assuming it provides an implementation to drm_crtc_funcs.page_flip_timeout())."
That recovery mechanism infrastructure is currently out for review on the mailing list .