Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Medium] drm/amd/display: broken KUnit test dm_test_get_plane_formats()
--

commit f2e839f51941e28c7b37c695841346e690a5a04b
Author: MuXian Chen <[email protected]>

drm/amd/display: drop RGBA8888 from plane format lists

This commit removes DRM_FORMAT_RGBA8888 from rgb_formats[] and
overlay_formats[] because DC lacks a corresponding surface pixel format,
causing fill_dc_plane_info_and_addr() to fail with -EINVAL when a
compositor selects it.

Link: https://gitlab.freedesktop.org/drm/amd/-/work_items/5339

> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c 
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> index 06d9ff2c32c52..931c4ad677c7e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> @@ -48,11 +48,13 @@
>   * For future use cases we should either initialize them dynamically based on
>   * plane capabilities, or initialize this array to all formats, so internal 
> drm
>   * check will succeed, and let DC implement proper check
> + *
> + * DC has no surface format for DRM_FORMAT_RGBA8888, so it must not be
> + * advertised here or in overlay_formats.
>   */
>  static const uint32_t rgb_formats[] = {
>       DRM_FORMAT_XRGB8888,
>       DRM_FORMAT_ARGB8888,
> -     DRM_FORMAT_RGBA8888,
>       DRM_FORMAT_XRGB2101010,
>       DRM_FORMAT_XBGR2101010,
>       DRM_FORMAT_ARGB2101010,
> @@ -69,7 +71,6 @@ static const uint32_t rgb_formats[] = {
>  static const uint32_t overlay_formats[] = {
>       DRM_FORMAT_XRGB8888,
>       DRM_FORMAT_ARGB8888,
> -     DRM_FORMAT_RGBA8888,

[Severity: Medium]
As reported by Sashiko on v1 [1], removing DRM_FORMAT_RGBA8888 reduces
ARRAY_SIZE(rgb_formats) from 14 to 13 and ARRAY_SIZE(overlay_formats) from
9 to 8.

In drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c,
dm_test_get_plane_formats() calls amdgpu_dm_plane_get_plane_formats() and
checks the returned format counts:

        plane->type = DRM_PLANE_TYPE_PRIMARY;
        KUNIT_EXPECT_EQ(test, amdgpu_dm_plane_get_plane_formats(plane, NULL, 
formats, 32), 14);

        cap->pixel_format_support.nv12 = true;
        cap->pixel_format_support.p010 = true;
        cap->pixel_format_support.fp16 = true;
        KUNIT_EXPECT_EQ(test, amdgpu_dm_plane_get_plane_formats(plane, cap, 
formats, 32), 20);

        plane->type = DRM_PLANE_TYPE_OVERLAY;
        KUNIT_EXPECT_EQ(test, amdgpu_dm_plane_get_plane_formats(plane, NULL, 
formats, 32), 9);

        universal_cap->type = DC_PLANE_TYPE_DCN_UNIVERSAL;
        KUNIT_EXPECT_EQ(test,
                        amdgpu_dm_plane_get_plane_formats(plane, universal_cap, 
formats, 32),
                        14);

Should these four KUNIT_EXPECT_EQ assertions in dm_test_get_plane_formats()
be updated to expect 13, 19, 8, and 13 so the amdgpu_dm_plane KUnit test
suite does not fail?

[1] https://lore.kernel.org/r/[email protected]

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=1

Reply via email to