[Intel-gfx] [PATCH] drm/i915/gen9: Give one extra block per line for SKL plane WM calculations
Zanoni, Paulo R
paulo.r.zanoni at intel.com
Mon Aug 8 18:25:49 UTC 2016
Em Qui, 2016-08-04 às 16:51 -0700, Matt Roper escreveu:
> On Thu, Aug 04, 2016 at 07:36:15PM -0400, Lyude wrote:
> >
> > Reviewed-by: Lyude <cpaul at redhat.com>
>
> Merged to dinq. Thanks for the quick review.
Regression? This patch makes my SKL machine fail any modesets. I now
boot to a blinking screen where X keeps trying to start and fails.
Xorg.0.log gives me:
[ 273.512] (EE) modeset(0): failed to set mode: Invalid argument
On the dmesg side, these are the more suspicious messages:
[ 273.583659] [drm:skl_compute_plane_wm] Requested display
configuration exceeds system watermark limitations
[ 273.583663] [drm:skl_compute_plane_wm] Plane 1.0: blocks required =
4/0, lines required = 1/31
I tried applying Lyude's series to nightly to see if it fixes
something, but it looks like patch 2 doesn't apply.
>
>
> Matt
>
> >
> >
> > On Thu, 2016-08-04 at 14:08 -0700, Matt Roper wrote:
> > >
> > > The bspec was updated a couple weeks ago to add an extra block
> > > per
> > > line
> > > to plane watermark calculations for linear pixel formats.
> > >
> > > Bspec update 115327 description:
> > > "Gen9+ - Updated the plane blocks per line calculation for
> > > linear
> > > cases. Adds +1 for all linear cases to handle the non-block
> > > aligned
> > > stride cases."
> > >
> > > Cc: Lyude <cpaul at redhat.com>
> > > Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_pm.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> > > b/drivers/gpu/drm/i915/intel_pm.c
> > > index 4317cdf..6bd352a 100644
> > > --- a/drivers/gpu/drm/i915/intel_pm.c
> > > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > > @@ -3352,6 +3352,8 @@ static uint32_t skl_wm_method2(uint32_t
> > > pixel_rate, uint32_t pipe_htotal,
> > > plane_bytes_per_line *= 4;
> > > plane_blocks_per_line =
> > > DIV_ROUND_UP(plane_bytes_per_line, 512);
> > > plane_blocks_per_line /= 4;
> > > + } else if (tiling == DRM_FORMAT_MOD_NONE) {
> > > + plane_blocks_per_line =
> > > DIV_ROUND_UP(plane_bytes_per_line, 512) + 1;
> > > } else {
> > > plane_blocks_per_line =
> > > DIV_ROUND_UP(plane_bytes_per_line, 512);
> > > }
> > --
> > Cheers,
> > Lyude
>
More information about the Intel-gfx
mailing list