media: hantro: HEVC: unconditionnaly set pps_{cb/cr}_qp_offset values
authorBenjamin Gaignard <benjamin.gaignard@collabora.com>
Tue, 3 May 2022 15:19:20 +0000 (17:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:22:37 +0000 (10:22 +0200)
[ Upstream commit 46c836569196f377f87a3657b330cffaf94bd727 ]

Always set pps_cb_qp_offset and pps_cr_qp_offset values in Hantro/G2
register whatever is V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT
flag value.
The vendor code does the same to set these values.
This fixes conformance test CAINIT_G_SHARP_3.

Fluster HEVC score is increase by one with this patch.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/media/hantro/hantro_g2_hevc_dec.c

index 340efb5..ee06956 100644 (file)
@@ -194,13 +194,8 @@ static void set_params(struct hantro_ctx *ctx)
                hantro_reg_write(vpu, &g2_max_cu_qpd_depth, 0);
        }
 
-       if (pps->flags & V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT) {
-               hantro_reg_write(vpu, &g2_cb_qp_offset, pps->pps_cb_qp_offset);
-               hantro_reg_write(vpu, &g2_cr_qp_offset, pps->pps_cr_qp_offset);
-       } else {
-               hantro_reg_write(vpu, &g2_cb_qp_offset, 0);
-               hantro_reg_write(vpu, &g2_cr_qp_offset, 0);
-       }
+       hantro_reg_write(vpu, &g2_cb_qp_offset, pps->pps_cb_qp_offset);
+       hantro_reg_write(vpu, &g2_cr_qp_offset, pps->pps_cr_qp_offset);
 
        hantro_reg_write(vpu, &g2_filt_offset_beta, pps->pps_beta_offset_div2);
        hantro_reg_write(vpu, &g2_filt_offset_tc, pps->pps_tc_offset_div2);