Message ID | 20230329-rfc-msm-dsc-helper-v7-5-df48a2c54421@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduce MSM-specific DSC helpers | expand |
Title suggestion: Use **fixed** MSM DSC helper... To make it clear that this is a bugfix without having to read the commit description first. - Marijn On 2023-05-09 15:06:51, Jessica Zhang wrote: > 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> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c > index 4e1396575e6a..1e11c0fb0545 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c > @@ -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_calculate_flatness_det_thresh(dsc); > data = det_thresh_flatness << 10; > data |= dsc->flatness_max_qp << 5; > data |= dsc->flatness_min_qp; > > -- > 2.40.1 >
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c index 4e1396575e6a..1e11c0fb0545 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c @@ -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_calculate_flatness_det_thresh(dsc); data = det_thresh_flatness << 10; data |= dsc->flatness_max_qp << 5; data |= dsc->flatness_min_qp;