]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/vkms: Move default_config creation to its own function
authorJosé Expósito <jose.exposito89@gmail.com>
Tue, 18 Feb 2025 10:12:05 +0000 (11:12 +0100)
committerMaxime Ripard <mripard@kernel.org>
Fri, 7 Mar 2025 09:58:21 +0000 (10:58 +0100)
Extract the initialization of the default configuration to a function.
Refactor, no functional changes.

Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com>
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-6-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
drivers/gpu/drm/vkms/tests/vkms_config_test.c
drivers/gpu/drm/vkms/vkms_config.c
drivers/gpu/drm/vkms/vkms_config.h
drivers/gpu/drm/vkms/vkms_drv.c

index a7060504f3dca26c7480eec3fc76cd76beac3e3b..d8644a1e3e181b6bad14ba6a5e5cbf228544975d 100644 (file)
@@ -6,6 +6,12 @@
 
 MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");
 
+struct default_config_case {
+       bool enable_cursor;
+       bool enable_writeback;
+       bool enable_overlay;
+};
+
 static void vkms_config_test_empty_config(struct kunit *test)
 {
        struct vkms_config *config;
@@ -16,8 +22,40 @@ static void vkms_config_test_empty_config(struct kunit *test)
        vkms_config_destroy(config);
 }
 
+static struct default_config_case default_config_cases[] = {
+       { false, false, false },
+       { true, false, false },
+       { true, true, false },
+       { true, false, true },
+       { false, true, false },
+       { false, true, true },
+       { false, false, true },
+       { true, true, true },
+};
+
+KUNIT_ARRAY_PARAM(default_config, default_config_cases, NULL);
+
+static void vkms_config_test_default_config(struct kunit *test)
+{
+       const struct default_config_case *params = test->param_value;
+       struct vkms_config *config;
+
+       config = vkms_config_default_create(params->enable_cursor,
+                                           params->enable_writeback,
+                                           params->enable_overlay);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, config);
+
+       KUNIT_EXPECT_EQ(test, config->cursor, params->enable_cursor);
+       KUNIT_EXPECT_EQ(test, config->writeback, params->enable_writeback);
+       KUNIT_EXPECT_EQ(test, config->overlay, params->enable_overlay);
+
+       vkms_config_destroy(config);
+}
+
 static struct kunit_case vkms_config_test_cases[] = {
        KUNIT_CASE(vkms_config_test_empty_config),
+       KUNIT_CASE_PARAM(vkms_config_test_default_config,
+                        default_config_gen_params),
        {}
 };
 
index 42caa421876e8cace7f58fba8025edabb325dee5..0af8e6dc0a017e4ea292df5fb37c9376a2569756 100644 (file)
@@ -20,6 +20,24 @@ struct vkms_config *vkms_config_create(void)
 }
 EXPORT_SYMBOL_IF_KUNIT(vkms_config_create);
 
+struct vkms_config *vkms_config_default_create(bool enable_cursor,
+                                              bool enable_writeback,
+                                              bool enable_overlay)
+{
+       struct vkms_config *config;
+
+       config = vkms_config_create();
+       if (IS_ERR(config))
+               return config;
+
+       config->cursor = enable_cursor;
+       config->writeback = enable_writeback;
+       config->overlay = enable_overlay;
+
+       return config;
+}
+EXPORT_SYMBOL_IF_KUNIT(vkms_config_default_create);
+
 void vkms_config_destroy(struct vkms_config *config)
 {
        kfree(config);
index ced10f56a81211872f5f7217b256d4203925e587..d0868750826a38bc8b04a6de4b7ab4c2e2c045b9 100644 (file)
@@ -31,6 +31,20 @@ struct vkms_config {
  */
 struct vkms_config *vkms_config_create(void);
 
+/**
+ * vkms_config_default_create() - Create the configuration for the default device
+ * @enable_cursor: Create or not a cursor plane
+ * @enable_writeback: Create or not a writeback connector
+ * @enable_overlay: Create or not overlay planes
+ *
+ * Returns:
+ * The default vkms_config or an error. Call vkms_config_destroy() to free the
+ * returned configuration.
+ */
+struct vkms_config *vkms_config_default_create(bool enable_cursor,
+                                              bool enable_writeback,
+                                              bool enable_overlay);
+
 /**
  * vkms_config_destroy() - Free a VKMS configuration
  * @config: vkms_config to free
index 37de0658e6eea76a83cd5563a0e7f026201dfb87..582d5825f42b94be40ccd7b889481eccdd48fb1e 100644 (file)
@@ -211,14 +211,10 @@ static int __init vkms_init(void)
        int ret;
        struct vkms_config *config;
 
-       config = vkms_config_create();
+       config = vkms_config_default_create(enable_cursor, enable_writeback, enable_overlay);
        if (IS_ERR(config))
                return PTR_ERR(config);
 
-       config->cursor = enable_cursor;
-       config->writeback = enable_writeback;
-       config->overlay = enable_overlay;
-
        ret = vkms_create(config);
        if (ret) {
                vkms_config_destroy(config);