drm/i915/dp: Fix DSC line buffer depth programming
authorImre Deak <imre.deak@intel.com>
Tue, 16 Apr 2024 22:10:00 +0000 (01:10 +0300)
committerImre Deak <imre.deak@intel.com>
Fri, 19 Apr 2024 14:05:35 +0000 (17:05 +0300)
commitf1d6aec41f13aad3c3ff8daa9fddb38539afe8f6
tree6b36cd763d21fe88f2b7fb173a1f46ba09663f10
parentaaba7a95ddffbf609261a8ba6c5d344b7cc6dca9
drm/i915/dp: Fix DSC line buffer depth programming

Fix the calculation of the DSC line buffer depth. This is limited both
by the source's and sink's maximum line buffer depth, but the former one
was not taken into account. On all Intel platform's the source's maximum
buffer depth is 13, so the overall limit is simply the minimum of the
source/sink's limit, regardless of the DSC version.

This leaves the DSI DSC line buffer depth calculation as-is, trusting
VBT.

On DSC version 1.2 for sinks reporting a maximum line buffer depth of 16
the line buffer depth was incorrectly programmed as 0, leading to a
corruption in color gradients / lines on the decompressed screen image.

Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Manasi Navare <navaremanasi@chromium.org>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240416221010.376865-2-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp.c
include/drm/display/drm_dsc.h