From 0b7cf07695228d787368efb41134f3d0bbd853a3 Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Thu, 21 Aug 2025 09:47:34 +0800 Subject: [PATCH] drm/rockchip: Fix error in rgb2rgb matrix calculation The variable 'T' in the calculation formula 'output = T * M1 * N_y2r * M0 * N_r2y' has been omitted. Change-Id: I347eca9786729de0ce35c35f483b55a7cb62bd7e Signed-off-by: Algea Cao --- drivers/gpu/drm/rockchip/rockchip_post_csc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_post_csc.c b/drivers/gpu/drm/rockchip/rockchip_post_csc.c index 98efbbc70b4b..cf4b5df5401d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_post_csc.c +++ b/drivers/gpu/drm/rockchip/rockchip_post_csc.c @@ -1424,9 +1424,12 @@ static int csc_calc_adjust_output_coef(bool is_input_yuv, bool is_output_yuv, csc_matrix_element_right_shift(&temp0, PQ_CSC_PARAM_FIX_BIT_WIDTH); csc_matrix_multiply(&temp1, &temp0, &saturation_matrix); csc_matrix_element_right_shift(&temp1, PQ_CSC_PARAM_HALF_FIX_BIT_WIDTH); - csc_matrix_multiply(out_matrix, &temp1, r2y_matrix); + csc_matrix_multiply(&temp0, &temp1, r2y_matrix); + csc_matrix_element_right_shift(&temp0, PQ_CSC_PARAM_FIX_BIT_WIDTH); + csc_matrix_multiply(out_matrix, csc_mode_cfg->pst_csc_coef, &temp0); csc_matrix_element_right_shift_with_simple_round(out_matrix, - PQ_CSC_PARAM_FIX_BIT_WIDTH + PQ_CALC_ENHANCE_BIT); + PQ_CSC_PARAM_FIX_BIT_WIDTH + + PQ_CALC_ENHANCE_BIT); dc_in_ventor.csc_offset0 = dc_in_offset; dc_in_ventor.csc_offset1 = dc_in_offset;