drm/ast: Initialize planes in helper functions
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 9 Feb 2021 13:46:25 +0000 (14:46 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 17 Feb 2021 11:39:58 +0000 (12:39 +0100)
This change will help with inlining cursor functions into modesetting
code. The primary plane's field used to be cleared with memset(). This
has been dropped as the memory is always allocated with kzalloc().

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210209134632.12157-4-tzimmermann@suse.de
drivers/gpu/drm/ast/ast_mode.c

index 758c69aa7232cde364fb0f6e668cbdbffc231e30..f86773a869f0b5802b52d1919d7a50b066ab66c8 100644 (file)
@@ -621,6 +621,26 @@ static const struct drm_plane_funcs ast_primary_plane_funcs = {
        .atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
 };
 
+static int ast_primary_plane_init(struct ast_private *ast)
+{
+       struct drm_device *dev = &ast->base;
+       struct drm_plane *primary_plane = &ast->primary_plane;
+       int ret;
+
+       ret = drm_universal_plane_init(dev, primary_plane, 0x01,
+                                      &ast_primary_plane_funcs,
+                                      ast_primary_plane_formats,
+                                      ARRAY_SIZE(ast_primary_plane_formats),
+                                      NULL, DRM_PLANE_TYPE_PRIMARY, NULL);
+       if (ret) {
+               drm_err(dev, "drm_universal_plane_init() failed: %d\n", ret);
+               return ret;
+       }
+       drm_plane_helper_add(primary_plane, &ast_primary_plane_helper_funcs);
+
+       return 0;
+}
+
 /*
  * Cursor plane
  */
@@ -725,6 +745,26 @@ static const struct drm_plane_funcs ast_cursor_plane_funcs = {
        .atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
 };
 
+static int ast_cursor_plane_init(struct ast_private *ast)
+{
+       struct drm_device *dev = &ast->base;
+       struct drm_plane *cursor_plane = &ast->cursor_plane;
+       int ret;
+
+       ret = drm_universal_plane_init(dev, cursor_plane, 0x01,
+                                      &ast_cursor_plane_funcs,
+                                      ast_cursor_plane_formats,
+                                      ARRAY_SIZE(ast_cursor_plane_formats),
+                                      NULL, DRM_PLANE_TYPE_CURSOR, NULL);
+       if (ret) {
+               drm_err(dev, "drm_universal_plane_failed(): %d\n", ret);
+               return ret;
+       }
+       drm_plane_helper_add(cursor_plane, &ast_cursor_plane_helper_funcs);
+
+       return 0;
+}
+
 /*
  * CRTC
  */
@@ -1138,30 +1178,14 @@ int ast_mode_config_init(struct ast_private *ast)
 
        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,
-                                      ast_primary_plane_formats,
-                                      ARRAY_SIZE(ast_primary_plane_formats),
-                                      NULL, DRM_PLANE_TYPE_PRIMARY, NULL);
-       if (ret) {
-               drm_err(dev, "ast: drm_universal_plane_init() failed: %d\n", ret);
+
+       ret = ast_primary_plane_init(ast);
+       if (ret)
                return ret;
-       }
-       drm_plane_helper_add(&ast->primary_plane,
-                            &ast_primary_plane_helper_funcs);
 
-       ret = drm_universal_plane_init(dev, &ast->cursor_plane, 0x01,
-                                      &ast_cursor_plane_funcs,
-                                      ast_cursor_plane_formats,
-                                      ARRAY_SIZE(ast_cursor_plane_formats),
-                                      NULL, DRM_PLANE_TYPE_CURSOR, NULL);
-       if (ret) {
-               drm_err(dev, "drm_universal_plane_failed(): %d\n", ret);
+       ret = ast_cursor_plane_init(ast);
+       if (ret)
                return ret;
-       }
-       drm_plane_helper_add(&ast->cursor_plane,
-                            &ast_cursor_plane_helper_funcs);
 
        ast_crtc_init(dev);
        ast_encoder_init(dev);