diff --git a/drivers/media/i2c/rk628/rk628_post_process.c b/drivers/media/i2c/rk628/rk628_post_process.c index d1197444b076..66bf979fa568 100644 --- a/drivers/media/i2c/rk628/rk628_post_process.c +++ b/drivers/media/i2c/rk628/rk628_post_process.c @@ -80,6 +80,8 @@ enum rk_pq_csc_mode { RK_PQ_CSC_RGBL2RGBL, /* RGB LIMIT->RGB LIMIT */ RK_PQ_CSC_RGB2RGB, /* RGB FULL->RGB FULL */ RK_PQ_CSC_YUV2RGB_2020, /* YUV 2020 FULL->RGB 2020 FULL */ + RK_PQ_CSC_YUV2RGB_2020_LIMIT2FULL, /* YUV 2020 LIMIT->RGB 2020 FULL */ + RK_PQ_CSC_YUV2RGB_2020_LIMIT, /* YUV 2020 LIMIT->RGB 2020 LIMIT */ RK_PQ_CSC_RGB2YUV2020_LIMIT2FULL, /* BT2020RGBLIMIT -> BT2020YUVFULL */ RK_PQ_CSC_RGB2YUV2020_LIMIT, /* BT2020RGBLIMIT -> BT2020YUVLIMIT */ RK_PQ_CSC_RGB2YUV2020_FULL2LIMIT, /* BT2020RGBFULL -> BT2020YUVLIMIT */ @@ -713,6 +715,27 @@ static const struct rk_pq_csc_dc_coef rk_dc_csc_table_adobe_yuv_limit_to_yuv_lim -64, -512, -512, 64, 512, 512 }; +// 2020 YUV LIMIT -> RGB FULL +static const struct rk_pq_csc_coef rk_csc_table_identity_yuv_limit_to_rgb_full_2020 = { + 1196, 0, 1724, + 1196, -192, -668, + 1196, 2200, 0, +}; +static const struct rk_pq_csc_dc_coef rk_dc_csc_table_identity_yuv_limit_to_rgb_full_2020 = { + -64, -512, -512, + 0, 0, 0 +}; + +// 2020 YUV LIMIT -> RGB LIMIT +static const struct rk_pq_csc_coef rk_csc_table_identity_yuv_limit_to_rgb_limit_2020 = { + 1024, 0, 1476, + 1024, -165, -572, + 1024, 1884, 0, +}; +static const struct rk_pq_csc_dc_coef rk_dc_csc_table_identity_yuv_limit_to_rgb_limit_2020 = { + -64, -512, -512, + 64, 64, 64 +}; /* *CSC Param Struct */ @@ -981,6 +1004,22 @@ static const struct rk_csc_mode_coef g_mode_csc_coef[] = { OPTM_CS_E_XV_YCC_2020, OPTM_CS_E_RGB_2020, true, true } }, + { + RK_PQ_CSC_YUV2RGB_2020_LIMIT2FULL, "YUV2020 L->RGB2020 F", + &rk_csc_table_identity_yuv_limit_to_rgb_full_2020, + &rk_dc_csc_table_identity_yuv_limit_to_rgb_full_2020, + { + OPTM_CS_E_XV_YCC_2020, OPTM_CS_E_RGB_2020, false, true + } + }, + { + RK_PQ_CSC_YUV2RGB_2020_LIMIT, "YUV2020 L->RGB2020 L", + &rk_csc_table_identity_yuv_limit_to_rgb_limit_2020, + &rk_dc_csc_table_identity_yuv_limit_to_rgb_limit_2020, + { + OPTM_CS_E_XV_YCC_2020, OPTM_CS_E_RGB_2020, false, false + } + }, { RK_PQ_CSC_RGB2YUV2020_LIMIT2FULL, "RGB2020 L->YUV2020 F", &rk_csc_table_identity_rgb_limit_to_yuv_full_2020,