On Tue, Jan 18, 2022 at 11:23:44AM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> Replace some copy-pasta with a function.
> 
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

Reviewed-by: Stanislav Lisovskiy <stanislav.lisovs...@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_pm.c | 41 +++++++++++++++++++--------------
>  1 file changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index cd1b5f09f241..93ff07f6ef26 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5073,9 +5073,24 @@ struct skl_plane_ddb_iter {
>       u16 start, size;
>  };
>  
> +static u16
> +skl_allocate_plane_ddb(struct skl_plane_ddb_iter *iter,
> +                    const struct skl_wm_level *wm,
> +                    u64 data_rate)
> +{
> +     u16 extra;
> +
> +     extra = min_t(u16, iter->size,
> +                   DIV64_U64_ROUND_UP(iter->size * data_rate, 
> iter->data_rate));
> +     iter->size -= extra;
> +     iter->data_rate -= data_rate;
> +
> +     return wm->min_ddb_alloc + extra;
> +}
> +
>  static int
> -skl_allocate_plane_ddb(struct intel_atomic_state *state,
> -                    struct intel_crtc *crtc)
> +skl_crtc_allocate_plane_ddb(struct intel_atomic_state *state,
> +                         struct intel_crtc *crtc)
>  {
>       struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>       struct intel_crtc_state *crtc_state =
> @@ -5160,8 +5175,6 @@ skl_allocate_plane_ddb(struct intel_atomic_state *state,
>       for_each_plane_id_on_crtc(crtc, plane_id) {
>               const struct skl_plane_wm *wm =
>                       &crtc_state->wm.skl.optimal.planes[plane_id];
> -             u64 data_rate;
> -             u16 extra;
>  
>               if (plane_id == PLANE_CURSOR)
>                       continue;
> @@ -5173,22 +5186,16 @@ skl_allocate_plane_ddb(struct intel_atomic_state 
> *state,
>               if (iter.data_rate == 0)
>                       break;
>  
> -             data_rate = crtc_state->plane_data_rate[plane_id];
> -             extra = min_t(u16, iter.size,
> -                           DIV64_U64_ROUND_UP(iter.size * data_rate, 
> iter.data_rate));
> -             iter.total[plane_id] = wm->wm[level].min_ddb_alloc + extra;
> -             iter.size -= extra;
> -             iter.data_rate -= data_rate;
> +             iter.total[plane_id] =
> +                     skl_allocate_plane_ddb(&iter, &wm->wm[level],
> +                                            
> crtc_state->plane_data_rate[plane_id]);
>  
>               if (iter.data_rate == 0)
>                       break;
>  
> -             data_rate = crtc_state->uv_plane_data_rate[plane_id];
> -             extra = min_t(u16, iter.size,
> -                           DIV64_U64_ROUND_UP(iter.size * data_rate, 
> iter.data_rate));
> -             iter.uv_total[plane_id] = wm->uv_wm[level].min_ddb_alloc + 
> extra;
> -             iter.size -= extra;
> -             iter.data_rate -= data_rate;
> +             iter.uv_total[plane_id] =
> +                     skl_allocate_plane_ddb(&iter, &wm->uv_wm[level],
> +                                            
> crtc_state->uv_plane_data_rate[plane_id]);
>       }
>       drm_WARN_ON(&dev_priv->drm, iter.size != 0 || iter.data_rate != 0);
>  
> @@ -6136,7 +6143,7 @@ skl_compute_ddb(struct intel_atomic_state *state)
>  
>       for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
>                                           new_crtc_state, i) {
> -             ret = skl_allocate_plane_ddb(state, crtc);
> +             ret = skl_crtc_allocate_plane_ddb(state, crtc);
>               if (ret)
>                       return ret;
>  
> -- 
> 2.32.0
> 

Reply via email to