On Thu, Feb 03, 2022 at 08:38:22PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> Return both the master and slave pipe bitmasks from
> enabled_bigjoiner_pipes(). We'll have use for both during
> readout soon.
> 
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

This looks good, can this be just combined with the patch that would use the 
slave and mastr pipes
in the readout ?

Either way,

Reviewed-by: Manasi Navare <manasi.d.nav...@intel.com>

Manasi

> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 25 +++++++++++---------
>  1 file changed, 14 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 6df498fc720a..34b6b4ab3a1b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4064,11 +4064,14 @@ static bool transcoder_ddi_func_is_enabled(struct 
> drm_i915_private *dev_priv,
>       return tmp & TRANS_DDI_FUNC_ENABLE;
>  }
>  
> -static u8 enabled_bigjoiner_pipes(struct drm_i915_private *dev_priv)
> +static void enabled_bigjoiner_pipes(struct drm_i915_private *dev_priv,
> +                                 u8 *master_pipes, u8 *slave_pipes)
>  {
> -     u8 master_pipes = 0, slave_pipes = 0;
>       struct intel_crtc *crtc;
>  
> +     *master_pipes = 0;
> +     *slave_pipes = 0;
> +
>       for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, crtc,
>                                        bigjoiner_pipes(dev_priv)) {
>               enum intel_display_power_domain power_domain;
> @@ -4083,9 +4086,9 @@ static u8 enabled_bigjoiner_pipes(struct 
> drm_i915_private *dev_priv)
>                               continue;
>  
>                       if (tmp & MASTER_BIG_JOINER_ENABLE)
> -                             master_pipes |= BIT(pipe);
> +                             *master_pipes |= BIT(pipe);
>                       else
> -                             slave_pipes |= BIT(pipe);
> +                             *slave_pipes |= BIT(pipe);
>               }
>  
>               if (DISPLAY_VER(dev_priv) < 13)
> @@ -4096,18 +4099,16 @@ static u8 enabled_bigjoiner_pipes(struct 
> drm_i915_private *dev_priv)
>                       u32 tmp = intel_de_read(dev_priv, 
> ICL_PIPE_DSS_CTL1(pipe));
>  
>                       if (tmp & UNCOMPRESSED_JOINER_MASTER)
> -                             master_pipes |= BIT(pipe);
> +                             *master_pipes |= BIT(pipe);
>                       if (tmp & UNCOMPRESSED_JOINER_SLAVE)
> -                             slave_pipes |= BIT(pipe);
> +                             *slave_pipes |= BIT(pipe);
>               }
>       }
>  
>       /* Bigjoiner pipes should always be consecutive master and slave */
> -     drm_WARN(&dev_priv->drm, slave_pipes != master_pipes << 1,
> +     drm_WARN(&dev_priv->drm, *slave_pipes != *master_pipes << 1,
>                "Bigjoiner misconfigured (master pipes 0x%x, slave pipes 
> 0x%x)\n",
> -              master_pipes, slave_pipes);
> -
> -     return slave_pipes;
> +              *master_pipes, *slave_pipes);
>  }
>  
>  static u8 hsw_panel_transcoders(struct drm_i915_private *i915)
> @@ -4126,6 +4127,7 @@ static u8 hsw_enabled_transcoders(struct intel_crtc 
> *crtc)
>       struct drm_i915_private *dev_priv = to_i915(dev);
>       u8 panel_transcoder_mask = hsw_panel_transcoders(dev_priv);
>       enum transcoder cpu_transcoder;
> +     u8 master_pipes, slave_pipes;
>       u8 enabled_transcoders = 0;
>  
>       /*
> @@ -4177,7 +4179,8 @@ static u8 hsw_enabled_transcoders(struct intel_crtc 
> *crtc)
>               enabled_transcoders |= BIT(cpu_transcoder);
>  
>       /* bigjoiner slave -> consider the master pipe's transcoder as well */
> -     if (enabled_bigjoiner_pipes(dev_priv) & BIT(crtc->pipe)) {
> +     enabled_bigjoiner_pipes(dev_priv, &master_pipes, &slave_pipes);
> +     if (slave_pipes & BIT(crtc->pipe)) {
>               cpu_transcoder = (enum transcoder) crtc->pipe - 1;
>               if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
>                       enabled_transcoders |= BIT(cpu_transcoder);
> -- 
> 2.34.1
> 

Reply via email to