Unverified Commit 8b059b0c authored by José Expósito's avatar José Expósito Committed by Maxime Ripard
Browse files

drm/vkms: Move default_config creation to its own function



Extract the initialization of the default configuration to a function.
Refactor, no functional changes.

Reviewed-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
Co-developed-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
Signed-off-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
Signed-off-by: default avatarJosé Expósito <jose.exposito89@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-6-jose.exposito89@gmail.com


Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
parent d3ae1e39
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -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),
	{}
};

+18 −0
Original line number Diff line number Diff line
@@ -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);
+14 −0
Original line number Diff line number Diff line
@@ -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
+1 −5
Original line number Diff line number Diff line
@@ -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);