[PATCH v3 15/17] drm/amd/display: Add default case for output_color_space switch

Pekka Paalanen ppaalanen at gmail.com
Wed Mar 8 09:35:10 UTC 2023


On Tue, 7 Mar 2023 10:11:05 -0500
Harry Wentland <harry.wentland at amd.com> wrote:

> Signed-off-by: Harry Wentland <harry.wentland at amd.com>
> Cc: Pekka Paalanen <ppaalanen at gmail.com>
> Cc: Sebastian Wick <sebastian.wick at redhat.com>
> Cc: Vitaly.Prosyak at amd.com
> Cc: Joshua Ashton <joshua at froggi.es>
> Cc: dri-devel at lists.freedesktop.org
> Cc: amd-gfx at lists.freedesktop.org
> Reviewed-By: Joshua Ashton <joshua at froggi.es>

Hi,

why?

Isn't the bitmask of supported values supposed to stop arbitrary values
from coming through?

Why handle unsupported values like DEFAULT instead of as a kernel bug?

If this is only to stop compiler warnings of not handling all enum
values in a switch, is the commit ordering in this series even
bisectable?


Thanks,
pq

> ---
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 43 ++++++++++---------
>  1 file changed, 22 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 7f77e226f1eb..a15b26962496 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -5308,7 +5308,29 @@ get_output_color_space(const struct dc_crtc_timing *dc_crtc_timing,
>  	enum dc_color_space color_space = COLOR_SPACE_SRGB;
>  
>  	switch (connector_state->colorspace) {
> +	case DRM_MODE_COLORIMETRY_BT601_YCC:
> +		if (dc_crtc_timing->flags.Y_ONLY)
> +			color_space = COLOR_SPACE_YCBCR601_LIMITED;
> +		else
> +			color_space = COLOR_SPACE_YCBCR601;
> +		break;
> +	case DRM_MODE_COLORIMETRY_BT709_YCC:
> +		if (dc_crtc_timing->flags.Y_ONLY)
> +			color_space = COLOR_SPACE_YCBCR709_LIMITED;
> +		else
> +			color_space = COLOR_SPACE_YCBCR709;
> +		break;
> +	case DRM_MODE_COLORIMETRY_OPRGB:
> +		color_space = COLOR_SPACE_ADOBERGB;
> +		break;
> +	case DRM_MODE_COLORIMETRY_BT2020:
> +		color_space = COLOR_SPACE_2020_RGB_FULLRANGE;
> +		break;
> +	case DRM_MODE_COLORIMETRY_BT2020_DEPRECATED:
> +		color_space = COLOR_SPACE_2020_YCBCR;
> +		break;
>  	case DRM_MODE_COLORIMETRY_DEFAULT: // ITU601
> +	default:
>  		if (dc_crtc_timing->pixel_encoding == PIXEL_ENCODING_RGB) {
>  			color_space = COLOR_SPACE_SRGB;
>  		/*
> @@ -5330,27 +5352,6 @@ get_output_color_space(const struct dc_crtc_timing *dc_crtc_timing,
>  				color_space = COLOR_SPACE_YCBCR601;
>  		}
>  		break;
> -	case DRM_MODE_COLORIMETRY_BT601_YCC:
> -		if (dc_crtc_timing->flags.Y_ONLY)
> -			color_space = COLOR_SPACE_YCBCR601_LIMITED;
> -		else
> -			color_space = COLOR_SPACE_YCBCR601;
> -		break;
> -	case DRM_MODE_COLORIMETRY_BT709_YCC:
> -		if (dc_crtc_timing->flags.Y_ONLY)
> -			color_space = COLOR_SPACE_YCBCR709_LIMITED;
> -		else
> -			color_space = COLOR_SPACE_YCBCR709;
> -		break;
> -	case DRM_MODE_COLORIMETRY_OPRGB:
> -		color_space = COLOR_SPACE_ADOBERGB;
> -		break;
> -	case DRM_MODE_COLORIMETRY_BT2020:
> -		color_space = COLOR_SPACE_2020_RGB_FULLRANGE;
> -		break;
> -	case DRM_MODE_COLORIMETRY_BT2020_DEPRECATED:
> -		color_space = COLOR_SPACE_2020_YCBCR;
> -		break;
>  	}
>  
>  	return color_space;

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20230308/8b0349e8/attachment-0001.sig>


More information about the dri-devel mailing list