Merge "msm: mdss: Add Rec2020 YUV conversion to CSC tables"

This commit is contained in:
Linux Build Service Account 2016-10-31 20:14:59 -07:00 committed by Gerrit - the friendly Code Review server
commit d01975ab44
3 changed files with 113 additions and 0 deletions

View file

@ -235,9 +235,13 @@ enum mdss_mdp_csc_type {
MDSS_MDP_CSC_YUV2RGB_601L, MDSS_MDP_CSC_YUV2RGB_601L,
MDSS_MDP_CSC_YUV2RGB_601FR, MDSS_MDP_CSC_YUV2RGB_601FR,
MDSS_MDP_CSC_YUV2RGB_709L, MDSS_MDP_CSC_YUV2RGB_709L,
MDSS_MDP_CSC_YUV2RGB_2020L,
MDSS_MDP_CSC_YUV2RGB_2020FR,
MDSS_MDP_CSC_RGB2YUV_601L, MDSS_MDP_CSC_RGB2YUV_601L,
MDSS_MDP_CSC_RGB2YUV_601FR, MDSS_MDP_CSC_RGB2YUV_601FR,
MDSS_MDP_CSC_RGB2YUV_709L, MDSS_MDP_CSC_RGB2YUV_709L,
MDSS_MDP_CSC_RGB2YUV_2020L,
MDSS_MDP_CSC_RGB2YUV_2020FR,
MDSS_MDP_CSC_YUV2YUV, MDSS_MDP_CSC_YUV2YUV,
MDSS_MDP_CSC_RGB2RGB, MDSS_MDP_CSC_RGB2RGB,
MDSS_MDP_MAX_CSC MDSS_MDP_MAX_CSC
@ -1408,6 +1412,10 @@ static inline uint8_t pp_vig_csc_pipe_val(struct mdss_mdp_pipe *pipe)
return MDSS_MDP_CSC_YUV2RGB_601L; return MDSS_MDP_CSC_YUV2RGB_601L;
case MDP_CSC_ITU_R_601_FR: case MDP_CSC_ITU_R_601_FR:
return MDSS_MDP_CSC_YUV2RGB_601FR; 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: case MDP_CSC_ITU_R_709:
default: default:
return MDSS_MDP_CSC_YUV2RGB_709L; return MDSS_MDP_CSC_YUV2RGB_709L;

View file

@ -60,6 +60,30 @@ struct mdp_csc_cfg mdp_csc_8bit_convert[MDSS_MDP_MAX_CSC] = {
{ 0x10, 0xeb, 0x10, 0xf0, 0x10, 0xf0,}, { 0x10, 0xeb, 0x10, 0xf0, 0x10, 0xf0,},
{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,}, { 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] = { [MDSS_MDP_CSC_RGB2YUV_601L] = {
0, 0,
{ {
@ -96,6 +120,30 @@ struct mdp_csc_cfg mdp_csc_8bit_convert[MDSS_MDP_MAX_CSC] = {
{ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,}, { 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,},
{ 0x0010, 0x00eb, 0x0010, 0x00f0, 0x0010, 0x00f0,}, { 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] = { [MDSS_MDP_CSC_YUV2YUV] = {
0, 0,
{ {
@ -159,6 +207,30 @@ struct mdp_csc_cfg mdp_csc_10bit_convert[MDSS_MDP_MAX_CSC] = {
{ 0x40, 0x3ac, 0x40, 0x3c0, 0x40, 0x3c0,}, { 0x40, 0x3ac, 0x40, 0x3c0, 0x40, 0x3c0,},
{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,}, { 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] = { [MDSS_MDP_CSC_RGB2YUV_601L] = {
0, 0,
{ {
@ -195,6 +267,30 @@ struct mdp_csc_cfg mdp_csc_10bit_convert[MDSS_MDP_MAX_CSC] = {
{ 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,}, { 0x0, 0x3ff, 0x0, 0x3ff, 0x0, 0x3ff,},
{ 0x0040, 0x03ac, 0x0040, 0x03c0, 0x0040, 0x03c0,}, { 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] = { [MDSS_MDP_CSC_YUV2YUV] = {
0, 0,
{ {

View file

@ -1406,12 +1406,21 @@ enum {
MDP_WRITEBACK_MIRROR_RESUME, MDP_WRITEBACK_MIRROR_RESUME,
}; };
/*
* The enum values are continued below as preprocessor macro definitions
*/
enum mdp_color_space { enum mdp_color_space {
MDP_CSC_ITU_R_601, MDP_CSC_ITU_R_601,
MDP_CSC_ITU_R_601_FR, MDP_CSC_ITU_R_601_FR,
MDP_CSC_ITU_R_709, 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 { enum {
mdp_igc_v1_7 = 1, mdp_igc_v1_7 = 1,
mdp_igc_vmax, mdp_igc_vmax,