diff options
author | Thomas Zimmermann <tzimmermann@suse.de> | 2020-07-02 14:50:26 +0300 |
---|---|---|
committer | Thomas Zimmermann <tzimmermann@suse.de> | 2020-07-07 12:11:55 +0300 |
commit | 6bb18c9be6d256d7e8e24e7a676df2e2fd72522c (patch) | |
tree | 73a1d472ab406386cabeeaa00e1391ab866ed4bc /drivers/gpu/drm/ast | |
parent | 3e9d787371eaa842682bf4fc86ae9475548d9cee (diff) | |
download | linux-6bb18c9be6d256d7e8e24e7a676df2e2fd72522c.tar.xz |
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: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200702115029.5281-12-tzimmermann@suse.de
Diffstat (limited to 'drivers/gpu/drm/ast')
-rw-r--r-- | drivers/gpu/drm/ast/ast_mode.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index 4724a38c001a..89d9ee0a9e81 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -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); |