]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/i915/dp: Calculate DSC slice count based on per-slice peak throughput
authorImre Deak <imre.deak@intel.com>
Tue, 30 Sep 2025 18:24:47 +0000 (21:24 +0300)
committerImre Deak <imre.deak@intel.com>
Thu, 2 Oct 2025 15:51:36 +0000 (18:51 +0300)
commitb3797460fd3024f4c0458027f453f52926853e3f
treef99c4d798160a5a0e773a1e0cd170c2337f81f4a
parent1f95871207db4439a3116e9a86f5b5658a5157c4
drm/i915/dp: Calculate DSC slice count based on per-slice peak throughput

Use the DSC sink device's actual per-slice peak throughput to calculate
the minimum number of required DSC slices, falling back to the
hard-coded throughput values (as suggested by the DP Standard) if the
device's reported throughput value is 0.

For now use the minimum of the two throughput values, which is ok,
potentially resulting in a higher than required minimum slice count.
This doesn't change the current way of using the same minimum throughput
value regardless of the RGB/YUV output format used.

While at it add a TODO comment for MST tiled displays to calculate the
slice count for these based on the total pixel rate of all the tiles.

v2: Use drm helpers to query the throughput caps. (Ville)
v3: Add TODO comment to account for MST tiled displays. (Ville)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reported-and-tested-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://lore.kernel.org/r/20250930182450.563016-4-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp.c