On Wed, Jul 19, 2023 at 01:48:33PM +0300, Stanislav Lisovskiy wrote: > BSpec clearly instructs us to use plane scale factor when calculating > relative data rate to be used when allocating DDB blocks for each plane. > For some reason we use scale factor for data_rate calculation, which is > used for BW calculations, however we are not using it for DDB calculations. > So lets fix it as described in BSpec 68907. > > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_atomic_plane.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c > index 7d9578ebae556..60a492e186ab8 100644 > --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c > +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c > @@ -212,6 +212,7 @@ intel_plane_relative_data_rate(const struct intel_crtc_state *crtc_state, > struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); > const struct drm_framebuffer *fb = plane_state->hw.fb; > int width, height; > + unsigned int rel_data_rate; > > if (plane->id == PLANE_CURSOR) > return 0; > @@ -241,7 +242,11 @@ intel_plane_relative_data_rate(const struct intel_crtc_state *crtc_state, > height /= 2; > } > > - return width * height * fb->format->cpp[color_plane]; > + rel_data_rate = width * height * fb->format->cpp[color_plane]; > + > + return intel_adjusted_rate(&plane_state->uapi.src, > + &plane_state->uapi.dst, > + rel_data_rate); > } > > int intel_plane_calc_min_cdclk(struct intel_atomic_state *state, > -- > 2.37.3 > IGT failures are irrelevant here(test is aborted due to some timeout issue).