Since converting the ast driver to atomic modesettting, modesetting occationally locks up the graphics hardware and turns the display permanently dark. This happens once or twice per 10 modeswitches. Investigation shows that the ast hardware presumably requires the HW cursor to be disabled while the modeswitch takes place. This patchset fixes the problem by disabling the HW cursor before programming the CRTC mode. After changing the mode, the HW cursor gets re-enabled if it was enabled before. Patches #1 and #2 simplify the modesetting and cursor code in preparation of the actual fix. Patch #3 adds the workaround. The CRTC's atomic_begin() helper disables an active HW cursor and atomic_flush() re-enables it. The process is transparent for userspace and the rest of the DRM code. For mere pageflip operations, nothing changes. Tested on AST2100 HW. The issue is not 100% reproducible, but does not show up after applying the patchset. I think the problem has been fixed. Thomas Zimmermann (3): drm/ast: Do full modeset if the primary plane's format changes drm/ast: Store image size in HW cursor info drm/ast: Disable cursor while switching display modes drivers/gpu/drm/ast/ast_cursor.c | 13 ++++- drivers/gpu/drm/ast/ast_drv.h | 9 +++- drivers/gpu/drm/ast/ast_mode.c | 82 ++++++++++++++++++++++++++------ 3 files changed, 86 insertions(+), 18 deletions(-) -- 2.27.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel