Merge "msm: mdss: Add Rec2020 YUV conversion to CSC tables"
This commit is contained in:
commit
d01975ab44
3 changed files with 113 additions and 0 deletions
|
@ -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;
|
||||||
|
|
|
@ -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,
|
||||||
{
|
{
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Reference in a new issue