mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	drm/amd/display: color space ycbcr709 support
Signed-off-by: Charlene Liu <charlene.liu@amd.com> Reviewed-by: Duke Du <Duke.Du@amd.com> Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									2f482c4f90
								
							
						
					
					
						commit
						40df2f809e
					
				| @ -45,8 +45,10 @@ enum dc_color_space_type { | ||||
| 	COLOR_SPACE_RGB_LIMITED_TYPE, | ||||
| 	COLOR_SPACE_YCBCR601_TYPE, | ||||
| 	COLOR_SPACE_YCBCR709_TYPE, | ||||
| 	COLOR_SPACE_YCBCR2020_TYPE, | ||||
| 	COLOR_SPACE_YCBCR601_LIMITED_TYPE, | ||||
| 	COLOR_SPACE_YCBCR709_LIMITED_TYPE | ||||
| 	COLOR_SPACE_YCBCR709_LIMITED_TYPE, | ||||
| 	COLOR_SPACE_YCBCR709_BLACK_TYPE, | ||||
| }; | ||||
| 
 | ||||
| static const struct tg_color black_color_format[] = { | ||||
| @ -80,7 +82,6 @@ static const struct out_csc_color_matrix_type output_csc_matrix[] = { | ||||
| 	{ COLOR_SPACE_YCBCR709_TYPE, | ||||
| 		{ 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, | ||||
| @ -88,6 +89,12 @@ static const struct out_csc_color_matrix_type output_csc_matrix[] = { | ||||
| 	{ COLOR_SPACE_YCBCR709_LIMITED_TYPE, | ||||
| 		{ 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} }, | ||||
| 	{ COLOR_SPACE_YCBCR709_BLACK_TYPE, | ||||
| 		{ 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, | ||||
| 				0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x1000} }, | ||||
| }; | ||||
| 
 | ||||
| static bool is_rgb_type( | ||||
| @ -149,6 +156,16 @@ static bool is_ycbcr709_type( | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| static bool is_ycbcr2020_type( | ||||
| 	enum dc_color_space color_space) | ||||
| { | ||||
| 	bool ret = false; | ||||
| 
 | ||||
| 	if (color_space == COLOR_SPACE_2020_YCBCR) | ||||
| 		ret = true; | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| static bool is_ycbcr709_limited_type( | ||||
| 		enum dc_color_space color_space) | ||||
| { | ||||
| @ -174,7 +191,12 @@ enum dc_color_space_type get_color_space_type(enum dc_color_space color_space) | ||||
| 		type = COLOR_SPACE_YCBCR601_LIMITED_TYPE; | ||||
| 	else if (is_ycbcr709_limited_type(color_space)) | ||||
| 		type = COLOR_SPACE_YCBCR709_LIMITED_TYPE; | ||||
| 
 | ||||
| 	else if (is_ycbcr2020_type(color_space)) | ||||
| 		type = COLOR_SPACE_YCBCR2020_TYPE; | ||||
| 	else if (color_space == COLOR_SPACE_YCBCR709) | ||||
| 		type = COLOR_SPACE_YCBCR709_BLACK_TYPE; | ||||
| 	else if (color_space == COLOR_SPACE_YCBCR709_BLACK) | ||||
| 		type = COLOR_SPACE_YCBCR709_BLACK_TYPE; | ||||
| 	return type; | ||||
| } | ||||
| 
 | ||||
| @ -206,6 +228,7 @@ void color_space_to_black_color( | ||||
| 	switch (colorspace) { | ||||
| 	case COLOR_SPACE_YCBCR601: | ||||
| 	case COLOR_SPACE_YCBCR709: | ||||
| 	case COLOR_SPACE_YCBCR709_BLACK: | ||||
| 	case COLOR_SPACE_YCBCR601_LIMITED: | ||||
| 	case COLOR_SPACE_YCBCR709_LIMITED: | ||||
| 	case COLOR_SPACE_2020_YCBCR: | ||||
|  | ||||
| @ -534,6 +534,7 @@ enum dc_color_space { | ||||
| 	COLOR_SPACE_DOLBYVISION, | ||||
| 	COLOR_SPACE_APPCTRL, | ||||
| 	COLOR_SPACE_CUSTOMPOINTS, | ||||
| 	COLOR_SPACE_YCBCR709_BLACK, | ||||
| }; | ||||
| 
 | ||||
| enum dc_dither_option { | ||||
|  | ||||
| @ -418,6 +418,7 @@ static void dce110_stream_encoder_dp_set_stream_attribute( | ||||
| 			break; | ||||
| 		case COLOR_SPACE_YCBCR709: | ||||
| 		case COLOR_SPACE_YCBCR709_LIMITED: | ||||
| 		case COLOR_SPACE_YCBCR709_BLACK: | ||||
| 			misc0 = misc0 | 0x18; /* bit3=1, bit4=1 */ | ||||
| 			misc1 = misc1 & ~0x80; /* bit7 = 0*/ | ||||
| 			dynamic_range_ycbcr = 1; /*bt709*/ | ||||
|  | ||||
| @ -415,6 +415,7 @@ void enc1_stream_encoder_dp_set_stream_attribute( | ||||
| 	case COLOR_SPACE_APPCTRL: | ||||
| 	case COLOR_SPACE_CUSTOMPOINTS: | ||||
| 	case COLOR_SPACE_UNKNOWN: | ||||
| 	case COLOR_SPACE_YCBCR709_BLACK: | ||||
| 		/* do nothing */ | ||||
| 		break; | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Charlene Liu
						Charlene Liu