Duplicates drm_atomic_helper_commit_tail(), so that planes can be disabled on full mode-setting changes.
Signed-off-by: Thomas Zimmermann tzimmermann@suse.de Fixes: 4961eb60f145 ("drm/ast: Enable atomic modesetting") Cc: Thomas Zimmermann tzimmermann@suse.de Cc: Gerd Hoffmann kraxel@redhat.com Cc: Dave Airlie airlied@redhat.com Cc: Daniel Vetter daniel.vetter@ffwll.ch Cc: Sam Ravnborg sam@ravnborg.org Cc: Emil Velikov emil.l.velikov@gmail.com Cc: "Y.C. Chen" yc_chen@aspeedtech.com Cc: stable@vger.kernel.org # v5.6+ --- drivers/gpu/drm/ast/ast_mode.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index 0ea8a68ac2d9..ae5cb0a333f7 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -1043,6 +1043,31 @@ static int ast_connector_init(struct drm_device *dev) * Mode config */
+static void +ast_mode_config_helper_commit_tail(struct drm_atomic_state *old_state) +{ + struct drm_device *dev = old_state->dev; + + drm_atomic_helper_commit_modeset_disables(dev, old_state); + + drm_atomic_helper_commit_planes(dev, old_state, 0); + + drm_atomic_helper_commit_modeset_enables(dev, old_state); + + drm_atomic_helper_fake_vblank(old_state); + + drm_atomic_helper_commit_hw_done(old_state); + + drm_atomic_helper_wait_for_vblanks(dev, old_state); + + drm_atomic_helper_cleanup_planes(dev, old_state); +} + +static const struct drm_mode_config_helper_funcs +ast_mode_config_helper_funcs = { + .atomic_commit_tail = ast_mode_config_helper_commit_tail, +}; + static const struct drm_mode_config_funcs ast_mode_config_funcs = { .fb_create = drm_gem_fb_create, .mode_valid = drm_vram_helper_mode_valid, @@ -1082,6 +1107,8 @@ int ast_mode_config_init(struct ast_private *ast) dev->mode_config.max_height = 1200; }
+ dev->mode_config.helper_private = &ast_mode_config_helper_funcs; + memset(&ast->primary_plane, 0, sizeof(ast->primary_plane)); ret = drm_universal_plane_init(dev, &ast->primary_plane, 0x01, &ast_primary_plane_funcs,
Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag fixing commit: 4961eb60f145 ("drm/ast: Enable atomic modesetting").
The bot has tested the following trees: v5.8, v5.7.13.
v5.8: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
v5.7.13: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 3a53230e1c4b ("drm/ast: Make ast_primary_plane_helper_atomic_update static") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag fixing commit: 4961eb60f145 ("drm/ast: Enable atomic modesetting").
The bot has tested the following trees: v5.8, v5.7.14.
v5.8: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
v5.7.14: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 3a53230e1c4b ("drm/ast: Make ast_primary_plane_helper_atomic_update static") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag fixing commit: 4961eb60f145 ("drm/ast: Enable atomic modesetting").
The bot has tested the following trees: v5.8.1, v5.7.15.
v5.8.1: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
v5.7.15: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 3a53230e1c4b ("drm/ast: Make ast_primary_plane_helper_atomic_update static") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag fixing commit: 4961eb60f145 ("drm/ast: Enable atomic modesetting").
The bot has tested the following trees: v5.8.2, v5.7.16.
v5.8.2: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
v5.7.16: Failed to apply! Possible dependencies: 05f13f5b5996 ("drm/ast: Remove unused code paths for AST 1180") 1728bf6402c3 ("drm/ast: Use managed mode-config init") 2ccebf561e4a ("drm/ast: Move cursor functions to ast_cursor.c") 3a53230e1c4b ("drm/ast: Make ast_primary_plane_helper_atomic_update static") 6bb18c9be6d2 ("drm/ast: Init cursors before creating modesetting structures") beb2355eecbf ("drm/ast: Pass struct ast_private instance to cursor init/fini functions") e6949ff3ca85 ("drm/ast: Initialize mode setting in ast_mode_config_init()") fa7dbd768884 ("drm/ast: Upcast from DRM device to ast structure via to_ast_private()")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
linux-stable-mirror@lists.linaro.org