On Sun, Feb 09, 2025 at 10:42:52PM +0100, Marijn Suijten wrote: > 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") > Signed-off-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx> > --- > drivers/gpu/drm/msm/dsi/dsi_host.c | 8 ++++---- > drivers/gpu/drm/msm/msm_dsc_helper.h | 11 ----------- > 2 files changed, 4 insertions(+), 15 deletions(-) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> -- With best wishes Dmitry