On Tue, 30 Mar 2021, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Extract a small helper to calculate the downscaling > adjusted pixel rate/data rate/etc. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > .../gpu/drm/i915/display/intel_atomic_plane.c | 27 +++++++++++++------ > 1 file changed, 19 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c > index c3f2962aa1eb..3f830b70b0c1 100644 > --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c > +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c > @@ -133,25 +133,36 @@ intel_plane_destroy_state(struct drm_plane *plane, > kfree(plane_state); > } > > -unsigned int intel_plane_pixel_rate(const struct intel_crtc_state *crtc_state, > - const struct intel_plane_state *plane_state) > +static unsigned int intel_adjusted_rate(const struct drm_rect *src, > + const struct drm_rect *dst, > + unsigned int rate) > { > unsigned int src_w, src_h, dst_w, dst_h; > - unsigned int pixel_rate = crtc_state->pixel_rate; > > - src_w = drm_rect_width(&plane_state->uapi.src) >> 16; > - src_h = drm_rect_height(&plane_state->uapi.src) >> 16; > - dst_w = drm_rect_width(&plane_state->uapi.dst); > - dst_h = drm_rect_height(&plane_state->uapi.dst); > + src_w = drm_rect_width(src) >> 16; > + src_h = drm_rect_height(src) >> 16; > + dst_w = drm_rect_width(dst); > + dst_h = drm_rect_height(dst); > > /* Downscaling limits the maximum pixel rate */ > dst_w = min(src_w, dst_w); > dst_h = min(src_h, dst_h); > > - return DIV_ROUND_UP_ULL(mul_u32_u32(pixel_rate, src_w * src_h), > + return DIV_ROUND_UP_ULL(mul_u32_u32(rate, src_w * src_h), > dst_w * dst_h); > } > > +unsigned int intel_plane_pixel_rate(const struct intel_crtc_state *crtc_state, > + const struct intel_plane_state *plane_state) > +{ > + if (!plane_state->uapi.visible) Potential functional change not covered in the commit message? Makes sense, but the rabbit hole is too deep to find out if this could actually make a difference. If mentioned in the commit message, Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > + return 0; > + > + return intel_adjusted_rate(&plane_state->uapi.src, > + &plane_state->uapi.dst, > + crtc_state->pixel_rate); > +} > + > unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state, > const struct intel_plane_state *plane_state) > { -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx