Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aee3908e authored by Benet Clark's avatar Benet Clark Committed by Rajesh Yadav
Browse files

msm: mdss: Add Rec2020 YUV conversion to CSC tables



Rec2020 CSC type will be set by hwcomposer when incoming YUV data
is of the same type.

CRs-Fixed: 1081779
Change-Id: I321bd79d04e135030764dcdf83a58fee3c4e72c8
Signed-off-by: default avatarBenet Clark <benetc@codeaurora.org>
Signed-off-by: default avatarRajesh Yadav <ryadav@codeaurora.org>
parent 67ca95e6
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -196,9 +196,13 @@ enum mdss_mdp_csc_type {
	MDSS_MDP_CSC_YUV2RGB_601L,
	MDSS_MDP_CSC_YUV2RGB_601FR,
	MDSS_MDP_CSC_YUV2RGB_709L,
	MDSS_MDP_CSC_YUV2RGB_2020L,
	MDSS_MDP_CSC_YUV2RGB_2020FR,
	MDSS_MDP_CSC_RGB2YUV_601L,
	MDSS_MDP_CSC_RGB2YUV_601FR,
	MDSS_MDP_CSC_RGB2YUV_709L,
	MDSS_MDP_CSC_RGB2YUV_2020L,
	MDSS_MDP_CSC_RGB2YUV_2020FR,
	MDSS_MDP_CSC_YUV2YUV,
	MDSS_MDP_CSC_RGB2RGB,
	MDSS_MDP_MAX_CSC
@@ -1457,6 +1461,10 @@ static inline uint8_t pp_vig_csc_pipe_val(struct mdss_mdp_pipe *pipe)
		return MDSS_MDP_CSC_YUV2RGB_601L;
	case MDP_CSC_ITU_R_601_FR:
		return MDSS_MDP_CSC_YUV2RGB_601FR;
	case MDP_CSC_ITU_R_2020:
		return MDSS_MDP_CSC_YUV2RGB_2020L;
	case MDP_CSC_ITU_R_2020_FR:
		return MDSS_MDP_CSC_YUV2RGB_2020FR;
	case MDP_CSC_ITU_R_709:
	default:
		return  MDSS_MDP_CSC_YUV2RGB_709L;
+98 −2
Original line number Diff line number Diff line
@@ -60,6 +60,30 @@ struct mdp_csc_cfg mdp_csc_8bit_convert[MDSS_MDP_MAX_CSC] = {
		{ 0x10, 0xeb, 0x10, 0xf0, 0x10, 0xf0,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
	},
	[MDSS_MDP_CSC_YUV2RGB_2020L] = {
		0,
		{
			0x0256, 0x0000, 0x035e,
			0x0256, 0xffa0, 0xfeb2,
			0x0256, 0x044c, 0x0000,
		},
		{ 0xfff0, 0xff80, 0xff80,},
		{ 0x0, 0x0, 0x0,},
		{ 0x10, 0xeb, 0x10, 0xf0, 0x10, 0xf0,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
	},
	[MDSS_MDP_CSC_YUV2RGB_2020FR] = {
		0,
		{
			0x0200, 0x0000, 0x02f3,
			0x0200, 0xffac, 0xfedb,
			0x0200, 0x03c3, 0x0000,
		},
		{ 0x0000, 0xff80, 0xff80,},
		{ 0x0, 0x0, 0x0,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
	},
	[MDSS_MDP_CSC_RGB2YUV_601L] = {
		0,
		{
@@ -96,6 +120,30 @@ struct mdp_csc_cfg mdp_csc_8bit_convert[MDSS_MDP_MAX_CSC] = {
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
		{ 0x0010, 0x00eb, 0x0010, 0x00f0, 0x0010, 0x00f0,},
	},
	[MDSS_MDP_CSC_RGB2YUV_2020L] = {
		0,
		{
			0x0073, 0x0129, 0x001a,
			0xffc1, 0xff5e, 0x00e0,
			0x00e0, 0xff32, 0xffee
		},
		{ 0x0, 0x0, 0x0,},
		{ 0x0010, 0x0080, 0x0080,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
		{ 0x0010, 0x00eb, 0x0010, 0x00f0, 0x0010, 0x00f0,},
	},
	[MDSS_MDP_CSC_RGB2YUV_2020FR] = {
		0,
		{
			0x0086, 0x015b, 0x001e,
			0xffb9, 0xff47, 0x0100,
			0x0100, 0xff15, 0xffeb
		},
		{ 0x0, 0x0, 0x0,},
		{ 0x0, 0x0080, 0x0080,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
		{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
	},
	[MDSS_MDP_CSC_YUV2YUV] = {
		0,
		{
@@ -130,7 +178,7 @@ struct mdp_csc_cfg mdp_csc_10bit_convert[MDSS_MDP_MAX_CSC] = {
			0x0254, 0xff37, 0xfe60,
			0x0254, 0x0409, 0x0000,
		},
		{ 0xffc0, 0xffe0, 0xffe0,},
		{ 0xffc0, 0xfe00, 0xfe00,},
		{ 0x0, 0x0, 0x0,},
		{ 0x40, 0x3ac, 0x40, 0x3c0, 0x40, 0x3c0,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
@@ -142,7 +190,7 @@ struct mdp_csc_cfg mdp_csc_10bit_convert[MDSS_MDP_MAX_CSC] = {
			0x0200, 0xff50, 0xfe92,
			0x0200, 0x038b, 0x0000,
		},
		{ 0x0000, 0xffe0, 0xffe0,},
		{ 0x0000, 0xfe00, 0xfe00,},
		{ 0x0, 0x0, 0x0,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
@@ -159,6 +207,30 @@ struct mdp_csc_cfg mdp_csc_10bit_convert[MDSS_MDP_MAX_CSC] = {
		{ 0x40, 0x3ac, 0x40, 0x3c0, 0x40, 0x3c0,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
	},
	[MDSS_MDP_CSC_YUV2RGB_2020L] = {
		0,
		{
			0x0256, 0x0000, 0x035e,
			0x0256, 0xffa0, 0xfeb2,
			0x0256, 0x044c, 0x0000,
		},
		{ 0xffc0, 0xfe00, 0xfe00,},
		{ 0x0, 0x0, 0x0,},
		{ 0x40, 0x3ac, 0x40, 0x3c0, 0x40, 0x3c0,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
	},
	[MDSS_MDP_CSC_YUV2RGB_2020FR] = {
		0,
		{
			0x0200, 0x0000, 0x02f3,
			0x0200, 0xffac, 0xfedb,
			0x0200, 0x03c3, 0x0000,
		},
		{ 0x0000, 0xfe00, 0xfe00,},
		{ 0x0, 0x0, 0x0,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
	},
	[MDSS_MDP_CSC_RGB2YUV_601L] = {
		0,
		{
@@ -195,6 +267,30 @@ struct mdp_csc_cfg mdp_csc_10bit_convert[MDSS_MDP_MAX_CSC] = {
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
		{ 0x0040, 0x03ac, 0x0040, 0x03c0, 0x0040, 0x03c0,},
	},
	[MDSS_MDP_CSC_RGB2YUV_2020L] = {
		0,
		{
			0x0073, 0x0129, 0x001a,
			0xffc1, 0xff5e, 0x00e0,
			0x00e0, 0xff32, 0xffee
		},
		{ 0x0, 0x0, 0x0,},
		{ 0x0040, 0x0200, 0x0200,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
		{ 0x0040, 0x03ac, 0x0040, 0x03c0, 0x0040, 0x03c0,},
	},
	[MDSS_MDP_CSC_RGB2YUV_2020FR] = {
		0,
		{
			0x0086, 0x015b, 0x001e,
			0xffb9, 0xff47, 0x0100,
			0x0100, 0xff15, 0xffeb
		},
		{ 0x0, 0x0, 0x0,},
		{ 0x0, 0x0200, 0x0200,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
		{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
	},
	[MDSS_MDP_CSC_YUV2YUV] = {
		0,
		{
+9 −0
Original line number Diff line number Diff line
@@ -1368,12 +1368,21 @@ enum {
	MDP_WRITEBACK_MIRROR_RESUME,
};

/*
 * The enum values are continued below as preprocessor macro definitions
 */
enum mdp_color_space {
	MDP_CSC_ITU_R_601,
	MDP_CSC_ITU_R_601_FR,
	MDP_CSC_ITU_R_709,
};

/*
 * These definitions are a continuation of the mdp_color_space enum above
 */
#define MDP_CSC_ITU_R_2020	(MDP_CSC_ITU_R_709 + 1)
#define MDP_CSC_ITU_R_2020_FR	(MDP_CSC_ITU_R_2020 + 1)

enum {
	mdp_igc_v1_7 = 1,
	mdp_igc_vmax,