Commit 6bb18c9b authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/ast: Init cursors before creating modesetting structures



The cursor helpers reserve buffer objects in VRAM and update their
content. So although tied to modesetting, cursor helpers are more
of a memory manager. The modesetting's cursor plane requires this
functionality, so initialize cursors before modesetting.

While at it, also add an error check for ast_cursor_init().

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200702115029.5281-12-tzimmermann@suse.de
parent 3e9d7873
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1073,6 +1073,10 @@ int ast_mode_init(struct drm_device *dev)
	struct ast_private *ast = to_ast_private(dev);
	int ret;

	ret = ast_cursor_init(ast);
	if (ret)
		return ret;

	memset(&ast->primary_plane, 0, sizeof(ast->primary_plane));
	ret = drm_universal_plane_init(dev, &ast->primary_plane, 0x01,
				       &ast_primary_plane_funcs,
@@ -1098,7 +1102,6 @@ int ast_mode_init(struct drm_device *dev)
	drm_plane_helper_add(&ast->cursor_plane,
			     &ast_cursor_plane_helper_funcs);

	ast_cursor_init(ast);
	ast_crtc_init(dev);
	ast_encoder_init(dev);
	ast_connector_init(dev);