[PATCH v2 17/21] drm/amd/display: Format input and output CSC matrix

Leo Li sunpeng.li at amd.com
Tue Jan 24 15:12:57 UTC 2023



On 1/13/23 11:24, Harry Wentland wrote:
> Format the input and output CSC matrix so they
> look like 3x4 matrixes. This will make parsing them
> much easier and allows us to quickly spot potential
> mistakes.
> 
> 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: Leo Li <sunpeng.li at amd.com>

> ---
>   .../drm/amd/display/dc/core/dc_hw_sequencer.c | 38 ++++++++-----
>   drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h   | 54 +++++++++++--------
>   2 files changed, 56 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
> index 471078fc3900..a70f045fc5c1 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
> @@ -73,28 +73,38 @@ struct out_csc_color_matrix_type {
>   
>   static const struct out_csc_color_matrix_type output_csc_matrix[] = {
>   	{ COLOR_SPACE_RGB_TYPE,
> -		{ 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} },
> +		{ 0x2000, 0,      0,      0,
> +		  0,      0x2000, 0,      0,
> +		  0,      0,      0x2000, 0} },
>   	{ COLOR_SPACE_RGB_LIMITED_TYPE,
> -		{ 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} },
> +		{ 0x1B67, 0,      0,      0x201,
> +		  0,      0x1B67, 0,      0x201,
> +		  0,      0,      0x1B67, 0x201} },
>   	{ COLOR_SPACE_YCBCR601_TYPE,
> -		{ 0xE04, 0xF444, 0xFDB9, 0x1004, 0x831, 0x1016, 0x320, 0x201, 0xFB45,
> -				0xF6B7, 0xE04, 0x1004} },
> +		{ 0xE04,  0xF444, 0xFDB9, 0x1004,
> +		  0x831,  0x1016, 0x320,  0x201,
> +		  0xFB45, 0xF6B7, 0xE04,  0x1004} },
>   	{ COLOR_SPACE_YCBCR709_TYPE,
> -		{ 0xE04, 0xF345, 0xFEB7, 0x1004, 0x5D3, 0x1399, 0x1FA,
> -				0x201, 0xFCCA, 0xF533, 0xE04, 0x1004} },
> +		{ 0xE04,  0xF345, 0xFEB7, 0x1004,
> +		  0x5D3,  0x1399, 0x1FA,  0x201,
> +		  0xFCCA, 0xF533, 0xE04,  0x1004} },
>   	/* TODO: correct values below */
>   	{ COLOR_SPACE_YCBCR601_LIMITED_TYPE,
> -		{ 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991,
> -				0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} },
> +		{ 0xE00,  0xF447, 0xFDB9, 0x1000,
> +		  0x991,  0x12C9, 0x3A6,  0x200,
> +		  0xFB47, 0xF6B9, 0xE00,  0x1000} },
>   	{ COLOR_SPACE_YCBCR709_LIMITED_TYPE,
> -		{ 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3,
> -				0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} },
> +		{ 0xE00, 0xF349, 0xFEB7, 0x1000,
> +		  0x6CE, 0x16E3, 0x24F,  0x200,
> +		  0xFCCB, 0xF535, 0xE00, 0x1000} },
>   	{ COLOR_SPACE_YCBCR2020_TYPE,
> -		{ 0x1000, 0xF149, 0xFEB7, 0x0000, 0x0868, 0x15B2,
> -				0x01E6, 0x0000, 0xFB88, 0xF478, 0x1000, 0x0000} },
> +		{ 0x1000, 0xF149, 0xFEB7, 0x0000,
> +		  0x0868, 0x15B2, 0x01E6, 0x0000,
> +		  0xFB88, 0xF478, 0x1000, 0x0000} },
>   	{ COLOR_SPACE_YCBCR709_BLACK_TYPE,
> -		{ 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000,
> -				0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x1000} },
> +		{ 0x0000, 0x0000, 0x0000, 0x1000,
> +		  0x0000, 0x0000, 0x0000, 0x0200,
> +		  0x0000, 0x0000, 0x0000, 0x1000} },
>   };
>   
>   static bool is_rgb_type(
> diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
> index 131fcfa28bca..f4aa76e02518 100644
> --- a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
> +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
> @@ -70,28 +70,38 @@ struct dpp_input_csc_matrix {
>   };
>   
>   static const struct dpp_input_csc_matrix __maybe_unused dpp_input_csc_matrix[] = {
> -	{COLOR_SPACE_SRGB,
> -		{0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} },
> -	{COLOR_SPACE_SRGB_LIMITED,
> -		{0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} },
> -	{COLOR_SPACE_YCBCR601,
> -		{0x2cdd, 0x2000, 0, 0xe991, 0xe926, 0x2000, 0xf4fd, 0x10ef,
> -						0, 0x2000, 0x38b4, 0xe3a6} },
> -	{COLOR_SPACE_YCBCR601_LIMITED,
> -		{0x3353, 0x2568, 0, 0xe400, 0xe5dc, 0x2568, 0xf367, 0x1108,
> -						0, 0x2568, 0x40de, 0xdd3a} },
> -	{COLOR_SPACE_YCBCR709,
> -		{0x3265, 0x2000, 0, 0xe6ce, 0xf105, 0x2000, 0xfa01, 0xa7d, 0,
> -						0x2000, 0x3b61, 0xe24f} },
> -	{COLOR_SPACE_YCBCR709_LIMITED,
> -		{0x39a6, 0x2568, 0, 0xe0d6, 0xeedd, 0x2568, 0xf925, 0x9a8, 0,
> -						0x2568, 0x43ee, 0xdbb2} },
> -	{COLOR_SPACE_2020_YCBCR,
> -		{0x2F30, 0x2000, 0, 0xE869, 0xEDB7, 0x2000, 0xFABC, 0xBC6, 0,
> -						0x2000, 0x3C34, 0xE1E6} },
> -	{COLOR_SPACE_2020_RGB_LIMITEDRANGE,
> -		{0x35E0, 0x255F, 0, 0xE2B3, 0xEB20, 0x255F, 0xF9FD, 0xB1E, 0,
> -						0x255F, 0x44BD, 0xDB43} }
> +	{ COLOR_SPACE_SRGB,
> +		{ 0x2000, 0,      0,      0,
> +		  0,      0x2000, 0,      0,
> +		  0,      0,      0x2000, 0 } },
> +	{ COLOR_SPACE_SRGB_LIMITED,
> +		{ 0x2000, 0,      0,      0,
> +		  0,      0x2000, 0,      0,
> +		  0,      0,      0x2000, 0 } },
> +	{ COLOR_SPACE_YCBCR601,
> +		{ 0x2cdd, 0x2000, 0,      0xe991,
> +		  0xe926, 0x2000, 0xf4fd, 0x10ef,
> +		  0,      0x2000, 0x38b4, 0xe3a6 } },
> +	{ COLOR_SPACE_YCBCR601_LIMITED,
> +		{ 0x3353, 0x2568, 0,      0xe400,
> +		  0xe5dc, 0x2568, 0xf367, 0x1108,
> +		  0,      0x2568, 0x40de, 0xdd3a } },
> +	{ COLOR_SPACE_YCBCR709,
> +		{ 0x3265, 0x2000, 0,      0xe6ce,
> +		  0xf105, 0x2000, 0xfa01, 0xa7d,
> +		  0,      0x2000, 0x3b61, 0xe24f } },
> +	{ COLOR_SPACE_YCBCR709_LIMITED,
> +		{ 0x39a6, 0x2568, 0,      0xe0d6,
> +		  0xeedd, 0x2568, 0xf925, 0x9a8,
> +		  0,      0x2568, 0x43ee, 0xdbb2 } },
> +	{ COLOR_SPACE_2020_YCBCR,
> +		{ 0x2F30, 0x2000, 0,      0xE869,
> +		  0xEDB7, 0x2000, 0xFABC, 0xBC6,
> +		  0,      0x2000, 0x3C34, 0xE1E6 } },
> +	{ COLOR_SPACE_2020_RGB_LIMITEDRANGE,
> +		{ 0x35E0, 0x255F, 0,      0xE2B3,
> +		  0xEB20, 0x255F, 0xF9FD, 0xB1E,
> +		  0,      0x255F, 0x44BD, 0xDB43 } }
>   };
>   
>   struct dpp_grph_csc_adjustment {


More information about the dri-devel mailing list