[Intel-gfx] [PATCH v6] drm/i915: Use intel_plane_data_rate for min_cdclk calculation
Ville Syrjälä
ville.syrjala at linux.intel.com
Mon Mar 2 17:34:53 UTC 2020
On Thu, Feb 27, 2020 at 05:09:35PM +0200, Stanislav Lisovskiy wrote:
> There seems to be a bit of confusing redundancy in a way, how
> plane data rate/min cdclk are calculated.
> In fact both min cdclk, pixel rate and plane data rate are all
> part of the same formula as per BSpec.
>
> However currently we have intel_plane_data_rate, which is used
> to calculate plane data rate and which is also used in bandwidth
> calculations. However for calculating min_cdclk we have another
> piece of code, doing almost same calculation, but a bit differently
> and in a different place. However as both are actually part of same
> formula, probably would be wise to use plane data rate calculations
> as a basis anyway, thus avoiding code duplication and possible bugs
> related to this.
>
> Another thing is that I've noticed that during min_cdclk calculations
> we account for plane scaling, while for plane data rate, we don't.
> crtc->pixel_rate seems to account only for pipe ratio, however it is
> clearly stated in BSpec that plane data rate also need to account
> plane ratio as well.
>
> So what this commit does is:
> - Adds a plane ratio calculation to intel_plane_data_rate
> - Removes redundant calculations from skl_plane_min_cdclk which is
> used for gen9+ and now uses intel_plane_data_rate as a basis from
> there as well.
>
> v2: - Don't use 64 division if not needed(Ville Syrjälä)
> - Now use intel_plane_pixel_rate as a basis for calculations both
> at intel_plane_data_rate and skl_plane_min_cdclk(Ville Syrjälä)
>
> v3: - Again fix the division macro
> - Fix plane_pixel_rate to pixel_rate at intel_plane_pixel_rate
> callsites
>
> v4: - Renamed skl_plane_ratio function back(Ville Syrjälä)
>
> v5: - Don't precalculate plane pixel rate for invisible plane,
> check for visibility first, as in invisible case it will
> have dst_w and dst_h equal to zero, causing divide error.
>
> v6: - Removed useless warn in intel_plane_pixel_rate(Ville Syrjälä)
> - Fixed alignment in intel_plane_data_rate(Ville Syrjälä)
> - Changed pixel_rate type to be unsigned int in
> skl_plane_min_cdclk(Ville Syrjälä)
>
> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
Thanks. Pushed to dinq.
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list