On Wed, Jun 29, 2022 at 06:47:21AM -0700, José Roberto de Souza wrote: > Display is turned off by i915_drm_suspend() during the suspend > procedure, removing the last reference of some gem objects that were > used by display. > > The issue is that those objects are only actually freed when > mm.free_work executed and that can happen very late in the suspend > process causing issues. > So here draining all freed objects released by display fixing suspend > issues. > Reviewed-by: Matt Atwood <matthew.s.atwood@xxxxxxxxx> > Signed-off-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_driver.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c > index 6e5849c1086f6..aa2a5ea30c7bb 100644 > --- a/drivers/gpu/drm/i915/i915_driver.c > +++ b/drivers/gpu/drm/i915/i915_driver.c > @@ -1186,6 +1186,8 @@ static int i915_drm_suspend(struct drm_device *dev) > > enable_rpm_wakeref_asserts(&dev_priv->runtime_pm); > > + i915_gem_drain_freed_objects(dev_priv); > + > return 0; > } > > -- > 2.37.0 >