On Thu, 2025-11-27 at 19:50 +0200, Imre Deak wrote:
> Add tracking for the DSI DSC pipes-per-line and slices-per-stream
> value
> in the slice config state and compute the current slices-per-line
> value
> using this slice config state. The slices-per-line value used atm
> will
> be removed by a follow-up change after converting all the places
> using
> it to use the detailed slice config instead.
> 
> Signed-off-by: Imre Deak <[email protected]>

Reviewed-by: Jouni Högander <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_bios.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c
> b/drivers/gpu/drm/i915/display/intel_bios.c
> index e69fac4f5bdfe..479c5f0158800 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -41,6 +41,7 @@
>  #include "intel_display_utils.h"
>  #include "intel_gmbus.h"
>  #include "intel_rom.h"
> +#include "intel_vdsc.h"
>  
>  #define _INTEL_BIOS_PRIVATE
>  #include "intel_vbt_defs.h"
> @@ -3519,12 +3520,14 @@ static void fill_dsc(struct intel_crtc_state
> *crtc_state,
>        *
>        * FIXME: split only when necessary
>        */
> +     crtc_state->dsc.slice_config.pipes_per_line = 1;
> +
>       if (dsc->slices_per_line & BIT(2)) {
>               crtc_state->dsc.slice_config.streams_per_pipe = 2;
> -             crtc_state->dsc.slice_count = 4;
> +             crtc_state->dsc.slice_config.slices_per_stream = 2;
>       } else if (dsc->slices_per_line & BIT(1)) {
>               crtc_state->dsc.slice_config.streams_per_pipe = 2;
> -             crtc_state->dsc.slice_count = 2;
> +             crtc_state->dsc.slice_config.slices_per_stream = 1;
>       } else {
>               /* FIXME */
>               if (!(dsc->slices_per_line & BIT(0)))
> @@ -3532,9 +3535,11 @@ static void fill_dsc(struct intel_crtc_state
> *crtc_state,
>                                   "VBT: Unsupported DSC slice
> count for DSI\n");
>  
>               crtc_state->dsc.slice_config.streams_per_pipe = 1;
> -             crtc_state->dsc.slice_count = 1;
> +             crtc_state->dsc.slice_config.slices_per_stream = 1;
>       }
>  
> +     crtc_state->dsc.slice_count =
> intel_dsc_line_slice_count(&crtc_state->dsc.slice_config);
> +
>       if (crtc_state->hw.adjusted_mode.crtc_hdisplay %
>           crtc_state->dsc.slice_count != 0)
>               drm_dbg_kms(display->drm,

Reply via email to