Commit eaa7d830 authored by Joshua Ashton's avatar Joshua Ashton Committed by Alex Deucher

drm/amd/display: Refactor avi_info_frame colorimetry determination

Replace the messy two if-else chains here that were
on the same value with a switch on the enum.
Signed-off-by: default avatarJoshua Ashton <joshua@froggi.es>
Signed-off-by: default avatarHarry Wentland <harry.wentland@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>

Cc: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Sebastian Wick <sebastian.wick@redhat.com>
Cc: Vitaly.Prosyak@amd.com
Cc: Joshua Ashton <joshua@froggi.es>
Cc: Simon Ser <contact@emersion.fr>
Cc: Melissa Wen <mwen@igalia.com>
Cc: dri-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent fd45b654
...@@ -3035,23 +3035,29 @@ static void set_avi_info_frame( ...@@ -3035,23 +3035,29 @@ static void set_avi_info_frame(
hdmi_info.bits.S0_S1 = scan_type; hdmi_info.bits.S0_S1 = scan_type;
/* C0, C1 : Colorimetry */ /* C0, C1 : Colorimetry */
if (color_space == COLOR_SPACE_YCBCR709 || switch (color_space) {
color_space == COLOR_SPACE_YCBCR709_LIMITED) case COLOR_SPACE_YCBCR709:
case COLOR_SPACE_YCBCR709_LIMITED:
hdmi_info.bits.C0_C1 = COLORIMETRY_ITU709; hdmi_info.bits.C0_C1 = COLORIMETRY_ITU709;
else if (color_space == COLOR_SPACE_YCBCR601 || break;
color_space == COLOR_SPACE_YCBCR601_LIMITED) case COLOR_SPACE_YCBCR601:
case COLOR_SPACE_YCBCR601_LIMITED:
hdmi_info.bits.C0_C1 = COLORIMETRY_ITU601; hdmi_info.bits.C0_C1 = COLORIMETRY_ITU601;
else { break;
hdmi_info.bits.C0_C1 = COLORIMETRY_NO_DATA; case COLOR_SPACE_2020_RGB_FULLRANGE:
} case COLOR_SPACE_2020_RGB_LIMITEDRANGE:
if (color_space == COLOR_SPACE_2020_RGB_FULLRANGE || case COLOR_SPACE_2020_YCBCR:
color_space == COLOR_SPACE_2020_RGB_LIMITEDRANGE ||
color_space == COLOR_SPACE_2020_YCBCR) {
hdmi_info.bits.EC0_EC2 = COLORIMETRYEX_BT2020RGBYCBCR; hdmi_info.bits.EC0_EC2 = COLORIMETRYEX_BT2020RGBYCBCR;
hdmi_info.bits.C0_C1 = COLORIMETRY_EXTENDED; hdmi_info.bits.C0_C1 = COLORIMETRY_EXTENDED;
} else if (color_space == COLOR_SPACE_ADOBERGB) { break;
case COLOR_SPACE_ADOBERGB:
hdmi_info.bits.EC0_EC2 = COLORIMETRYEX_ADOBERGB; hdmi_info.bits.EC0_EC2 = COLORIMETRYEX_ADOBERGB;
hdmi_info.bits.C0_C1 = COLORIMETRY_EXTENDED; hdmi_info.bits.C0_C1 = COLORIMETRY_EXTENDED;
break;
case COLOR_SPACE_SRGB:
default:
hdmi_info.bits.C0_C1 = COLORIMETRY_NO_DATA;
break;
} }
if (pixel_encoding && color_space == COLOR_SPACE_2020_YCBCR && if (pixel_encoding && color_space == COLOR_SPACE_2020_YCBCR &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment