Message ID | 20250326162544.3642-4-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm/i915: sagv/bw cleanup | expand |
On Wed, 26 Mar 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Extract the struct intel_dbuf_bw comparison into a small > helper. We'll get more users later. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bw.c | 23 +++++++++++++++++------ > 1 file changed, 17 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c > index b34db55f5a7e..898ddaf7e76b 100644 > --- a/drivers/gpu/drm/i915/display/intel_bw.c > +++ b/drivers/gpu/drm/i915/display/intel_bw.c > @@ -1150,6 +1150,21 @@ static int intel_bw_check_qgv_points(struct intel_display *display, > old_bw_state, new_bw_state); > } > > +static bool intel_dbuf_bw_changed(struct intel_display *display, > + const struct intel_dbuf_bw *old_dbuf_bw, > + const struct intel_dbuf_bw *new_dbuf_bw) > +{ > + enum dbuf_slice slice; > + > + for_each_dbuf_slice(display, slice) { > + if (old_dbuf_bw->max_bw[slice] != new_dbuf_bw->max_bw[slice] || > + old_dbuf_bw->active_planes[slice] != new_dbuf_bw->active_planes[slice]) > + return true; > + } > + > + return false; > +} > + > static bool intel_bw_state_changed(struct intel_display *display, > const struct intel_bw_state *old_bw_state, > const struct intel_bw_state *new_bw_state) > @@ -1161,13 +1176,9 @@ static bool intel_bw_state_changed(struct intel_display *display, > &old_bw_state->dbuf_bw[pipe]; > const struct intel_dbuf_bw *new_dbuf_bw = > &new_bw_state->dbuf_bw[pipe]; > - enum dbuf_slice slice; > > - for_each_dbuf_slice(display, slice) { > - if (old_dbuf_bw->max_bw[slice] != new_dbuf_bw->max_bw[slice] || > - old_dbuf_bw->active_planes[slice] != new_dbuf_bw->active_planes[slice]) > - return true; > - } > + if (intel_dbuf_bw_changed(display, old_dbuf_bw, new_dbuf_bw)) > + return true; > > if (intel_bw_crtc_min_cdclk(display, old_bw_state->data_rate[pipe]) != > intel_bw_crtc_min_cdclk(display, new_bw_state->data_rate[pipe]))
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c index b34db55f5a7e..898ddaf7e76b 100644 --- a/drivers/gpu/drm/i915/display/intel_bw.c +++ b/drivers/gpu/drm/i915/display/intel_bw.c @@ -1150,6 +1150,21 @@ static int intel_bw_check_qgv_points(struct intel_display *display, old_bw_state, new_bw_state); } +static bool intel_dbuf_bw_changed(struct intel_display *display, + const struct intel_dbuf_bw *old_dbuf_bw, + const struct intel_dbuf_bw *new_dbuf_bw) +{ + enum dbuf_slice slice; + + for_each_dbuf_slice(display, slice) { + if (old_dbuf_bw->max_bw[slice] != new_dbuf_bw->max_bw[slice] || + old_dbuf_bw->active_planes[slice] != new_dbuf_bw->active_planes[slice]) + return true; + } + + return false; +} + static bool intel_bw_state_changed(struct intel_display *display, const struct intel_bw_state *old_bw_state, const struct intel_bw_state *new_bw_state) @@ -1161,13 +1176,9 @@ static bool intel_bw_state_changed(struct intel_display *display, &old_bw_state->dbuf_bw[pipe]; const struct intel_dbuf_bw *new_dbuf_bw = &new_bw_state->dbuf_bw[pipe]; - enum dbuf_slice slice; - for_each_dbuf_slice(display, slice) { - if (old_dbuf_bw->max_bw[slice] != new_dbuf_bw->max_bw[slice] || - old_dbuf_bw->active_planes[slice] != new_dbuf_bw->active_planes[slice]) - return true; - } + if (intel_dbuf_bw_changed(display, old_dbuf_bw, new_dbuf_bw)) + return true; if (intel_bw_crtc_min_cdclk(display, old_bw_state->data_rate[pipe]) != intel_bw_crtc_min_cdclk(display, new_bw_state->data_rate[pipe]))