Hi José,
Thanks for this new iteration!
Le 17/02/2025 à 11:01, José Expósito a écrit :
Add a list of planes to vkms_config and create as many planes as
configured during output initialization.
For backwards compatibility, add one primary plane and, if configured,
one cursor plane and NUM_OVERLAY_PLANES planes to the default
configuration.
Co-developed-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx>
Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx>
Signed-off-by: José Expósito <jose.exposito89@xxxxxxxxx>
---
.clang-format | 1 +
drivers/gpu/drm/vkms/tests/vkms_config_test.c | 140 +++++++++++++++++-
drivers/gpu/drm/vkms/vkms_config.c | 127 +++++++++++++++-
drivers/gpu/drm/vkms/vkms_config.h | 75 +++++++++-
drivers/gpu/drm/vkms/vkms_output.c | 42 ++----
5 files changed, 349 insertions(+), 36 deletions(-)
diff --git a/.clang-format b/.clang-format
index fe1aa1a30d40..c585d2a5b395 100644
--- a/.clang-format
+++ b/.clang-format
@@ -690,6 +690,7 @@ ForEachMacros:
- 'v4l2_m2m_for_each_src_buf'
- 'v4l2_m2m_for_each_src_buf_safe'
- 'virtio_device_for_each_vq'
+ - 'vkms_config_for_each_plane'
- 'while_for_each_ftrace_op'
- 'xa_for_each'
- 'xa_for_each_marked'
diff --git a/drivers/gpu/drm/vkms/tests/vkms_config_test.c b/drivers/gpu/drm/vkms/tests/vkms_config_test.c
index 6e07139d261c..fe6f079902fd 100644
--- a/drivers/gpu/drm/vkms/tests/vkms_config_test.c
+++ b/drivers/gpu/drm/vkms/tests/vkms_config_test.c
@@ -24,6 +24,10 @@ static void vkms_config_test_empty_config(struct kunit *test)
dev_name = NULL;
KUNIT_EXPECT_STREQ(test, vkms_config_get_device_name(config), "test");
+ KUNIT_EXPECT_TRUE(test, list_empty(&config->planes));
Instead of testing directly a "private" field (planes), can we use
something like:
int count;
vkms_config_for_each_plane(config, plane_cfg)
count++;
ASSERT_EQ(count, 0);
So we don't make config->plane "public".
Same comment for connectors, crtc and encoders.
With this:
Reviewed-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx>
(sorry, I did not notice this on your v2)
Thanks,
Louis Chauvet
--
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com