[Intel-gfx] [PATCH 05/15] drm/i915: Extract skl_allocate_plane_ddb()
Lisovskiy, Stanislav
stanislav.lisovskiy at intel.com
Thu Jan 27 08:24:00 UTC 2022
On Tue, Jan 18, 2022 at 11:23:44AM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Replace some copy-pasta with a function.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy at 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
>
More information about the Intel-gfx
mailing list