[Intel-gfx] [PATCH v2] drm/i915: Fix dbuf slice mask when turning off all the pipes

Chris Wilson chris at chris-wilson.co.uk
Mon May 18 13:14:15 UTC 2020


Quoting Ville Syrjala (2020-05-18 13:13:54)
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> The current dbuf slice computation only happens when there are
> active pipes. If we are turning off all the pipes we just leave
> the dbuf slice mask at it's previous value, which may be something
> other that BIT(S1). If runtime PM will kick in it will however
> turn off everything but S1. Then on the next atomic commit (if
> the new dbuf slice mask matches the stale value we left behind)
> the code will not turn on the other slices we now need. This will
> lead to underruns as the planes are trying to use a dbuf slice
> that's not powered up.
> 
> To work around let's just just explicitly set the dbuf slice mask
> to BIT(S1) when we are turning off all the pipes. Really the code
> should just calculate this stuff the same way regardless whether
> the pipes are on or off, but we're not quite there yet (need a
> bit more work on the dbuf state for that).
> 
> v2: Let's not put the fix into dead code
> 
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> Acked-by: Chris Wilson <chris at chris-wilson.co.uk> #v1
Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
> Fixes: 3cf43cdc63fb ("drm/i915: Introduce proper dbuf state")
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
-Chris


More information about the Intel-gfx mailing list