OSDN Git Service

drm/msm/dpu: Use fixed DRM DSC helper for det_thresh_flatness
authorJessica Zhang <quic_jesszhan@quicinc.com>
Wed, 24 May 2023 17:45:19 +0000 (10:45 -0700)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Thu, 15 Jun 2023 09:58:56 +0000 (12:58 +0300)
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: c110cfd1753e ("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>
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c

index 6484791..99ba7ee 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright (c) 2020-2022, Linaro Limited
  */
 
+#include <drm/display/drm_dsc_helper.h>
+
 #include "dpu_kms.h"
 #include "dpu_hw_catalog.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;
        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 |= dsc->flatness_max_qp << 5;
        data |= dsc->flatness_min_qp;