]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: Set up pixel encoding for YCBCR422
authorMario Limonciello <Mario.Limonciello@amd.com>
Wed, 27 Aug 2025 01:18:22 +0000 (20:18 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 15 Sep 2025 21:00:55 +0000 (17:00 -0400)
[Why]
fill_stream_properties_from_drm_display_mode() will not configure pixel
encoding to YCBCR422 when the DRM color format supports YCBCR422 but not
YCBCR420 or YCBCR4444.  Instead it will fallback to RGB.

[How]
Add support for YCBCR422 in pixel encoding mapping.

Suggested-by: Mauri Carvalho <mcarvalho3@lenovo.com>
Reviewed-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Mario Limonciello <Mario.Limonciello@amd.com>
Signed-off-by: Ray Wu <ray.wu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index b088cb8ae7804854397f4c6c706abbf1f2bbf54b..cb22cad279be2f8ddcfb9abaf9166c342134496b 100644 (file)
@@ -6406,6 +6406,9 @@ static void fill_stream_properties_from_drm_display_mode(
                        && aconnector
                        && aconnector->force_yuv420_output)
                timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR420;
+       else if ((connector->display_info.color_formats & DRM_COLOR_FORMAT_YCBCR422)
+                       && stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
+               timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR422;
        else if ((connector->display_info.color_formats & DRM_COLOR_FORMAT_YCBCR444)
                        && stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
                timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR444;