[Intel-gfx] [PATCH] drm/i915/guc: Add host2guc notification for suspend and resume

Yu Dai yu.dai at intel.com
Wed Sep 30 08:59:21 PDT 2015



On 09/30/2015 03:46 AM, Kamble, Sagar A wrote:
> Thanks for the updated patch. Minor comment below.
>
> Thanks
> Sagar
>
> On 9/26/2015 12:16 AM, yu.dai at intel.com wrote:
> > From: Alex Dai <yu.dai at intel.com>
> >
> > Add host2guc interfaces to nofigy GuC power state changes when
> > enter or resume from power saving state.
> >
> > v2: Add GuC suspend/resume to runtime suspend/resume too
> >
> > v1: Change to a more flexible way when fill host to GuC scratch
> > data in order to remove hard coding.
> >
> > Signed-off-by: Alex Dai <yu.dai at intel.com>
> > ---
> >   drivers/gpu/drm/i915/i915_drv.c            |  5 +++
> >   drivers/gpu/drm/i915/i915_gem.c            |  2 ++
> >   drivers/gpu/drm/i915/i915_guc_submission.c | 50 ++++++++++++++++++++++++++++++
> >   drivers/gpu/drm/i915/intel_guc.h           |  2 ++
> >   drivers/gpu/drm/i915/intel_guc_fwif.h      |  8 +++++
> >   drivers/gpu/drm/i915/intel_guc_loader.c    |  4 ++-
> >   6 files changed, 70 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index e6d7a69..842eb13 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -737,6 +737,8 @@ static int i915_drm_resume(struct drm_device *dev)
> >   	}
> >   	mutex_unlock(&dev->struct_mutex);
> >
> > +	intel_guc_resume(dev);
> > +
> >   	intel_modeset_init_hw(dev);
> >
> >   	spin_lock_irq(&dev_priv->irq_lock);
> > @@ -1476,6 +1478,7 @@ static int intel_runtime_suspend(struct device *device)
> >   	i915_gem_release_all_mmaps(dev_priv);
> >   	mutex_unlock(&dev->struct_mutex);
> >
> > +	intel_guc_suspend(dev);
> >   	intel_suspend_gt_powersave(dev);
> >   	intel_runtime_pm_disable_interrupts(dev_priv);
> >
> > @@ -1535,6 +1538,8 @@ static int intel_runtime_resume(struct device *device)
> >   	intel_opregion_notify_adapter(dev, PCI_D0);
> >   	dev_priv->pm.suspended = false;
> >
> > +	intel_guc_resume(dev);
> > +
> >   	if (IS_GEN6(dev_priv))
> >   		intel_init_pch_refclk(dev);
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index bf5ef7a..679ed55 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -4460,6 +4460,8 @@ i915_gem_suspend(struct drm_device *dev)
> >   	i915_gem_stop_ringbuffers(dev);
> >   	mutex_unlock(&dev->struct_mutex);
> >
> > +	intel_guc_suspend(dev);
> > +
> Should this be called as part of i915_drm_suspend for consistency
> instead of i915_gem_suspend?
>

Yes, I will change it accordingly. i915_gem_suspend is called during 
unload, where we won't need to suspend guc - it will be unloaded anyway.

Thanks for the review,
Alex


More information about the Intel-gfx mailing list