drm/msm/dpu: Use fixed DRM DSC helper for det_thresh_flatness

The current dpu_hw_dsc calculation for det_thresh_flatness does not
match the downstream calculation or the DSC spec.

Use the DRM DSC helper for det_thresh_flatness to match downstream
implementation and the DSC spec.

Fixes: c110cfd175 ("drm/msm/disp/dpu1: Add support for DSC")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/539275/
Link: https://lore.kernel.org/r/20230329-rfc-msm-dsc-helper-v14-6-bafc7be95691@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
This commit is contained in:
Jessica Zhang 2023-05-24 10:45:19 -07:00 committed by Dmitry Baryshkov
parent b50f06f83e
commit 44346191a2
1 changed files with 3 additions and 1 deletions

View File

@ -3,6 +3,8 @@
* Copyright (c) 2020-2022, Linaro Limited * Copyright (c) 2020-2022, Linaro Limited
*/ */
#include <drm/display/drm_dsc_helper.h>
#include "dpu_kms.h" #include "dpu_kms.h"
#include "dpu_hw_catalog.h" #include "dpu_hw_catalog.h"
#include "dpu_hwio.h" #include "dpu_hwio.h"
@ -102,7 +104,7 @@ static void dpu_hw_dsc_config(struct dpu_hw_dsc *hw_dsc,
data |= dsc->final_offset; data |= dsc->final_offset;
DPU_REG_WRITE(c, DSC_DSC_OFFSET, data); DPU_REG_WRITE(c, DSC_DSC_OFFSET, data);
det_thresh_flatness = 7 + 2 * (dsc->bits_per_component - 8); det_thresh_flatness = drm_dsc_flatness_det_thresh(dsc);
data = det_thresh_flatness << 10; data = det_thresh_flatness << 10;
data |= dsc->flatness_max_qp << 5; data |= dsc->flatness_max_qp << 5;
data |= dsc->flatness_min_qp; data |= dsc->flatness_min_qp;