]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
drm/msm/dsi: Use existing per-interface slice count in DSC timing
authorMarijn Suijten <marijn.suijten@somainline.org>
Mon, 17 Feb 2025 11:17:41 +0000 (12:17 +0100)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Wed, 26 Feb 2025 10:15:48 +0000 (12:15 +0200)
commit14ad809ceb66d0874cbe4bd5ca9edf0de8d9ad96
tree4dc46c24025350c07b8c2b1b95295824d5f61405
parentb39e7014ed3121f980d55097ec2bd9ecee3adc83
drm/msm/dsi: Use existing per-interface slice count in DSC timing

When configuring the timing of DSI hosts (interfaces) in
dsi_timing_setup() all values written to registers are taking
bonded-mode into account by dividing the original mode width by 2
(half the data is sent over each of the two DSI hosts), but the full
width instead of the interface width is passed as hdisplay parameter to
dsi_update_dsc_timing().

Currently only msm_dsc_get_slices_per_intf() is called within
dsi_update_dsc_timing() with the `hdisplay` argument which clearly
documents that it wants the width of a single interface (which, again,
in bonded DSI mode is half the total width of the mode) resulting in all
subsequent values to be completely off.

However, as soon as we start to pass the halved hdisplay
into dsi_update_dsc_timing() we might as well discard
msm_dsc_get_slices_per_intf() since the value it calculates is already
available in dsc->slice_count which is per-interface by the current
design of MSM DPU/DSI implementations and their use of the DRM DSC
helpers.

Fixes: 08802f515c3c ("drm/msm/dsi: Add support for DSC configuration")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Patchwork: https://patchwork.freedesktop.org/patch/637648/
Link: https://lore.kernel.org/r/20250217-drm-msm-initial-dualpipe-dsc-fixes-v3-1-913100d6103f@somainline.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/dsi/dsi_host.c
drivers/gpu/drm/msm/msm_dsc_helper.h