diff mbox

[4/4] drm/i915: Skip gunit save/restore for cherryview

Message ID 1418374096-26561-4-git-send-email-deepak.s@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

deepak.s@linux.intel.com Dec. 12, 2014, 8:48 a.m. UTC
From: Deepak S <deepak.s@linux.intel.com>

With cherryview onwards, Gunit hardware itself save and restore all the
Gunit registers. Skipping the "vlv_save_gunit_s0ix_state" &
"vlv_restore_gunit_s0ix_state" for cherryview in S3/S0ix sequence.

Signed-off-by: Deepak S <deepak.s@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Ville Syrjälä Dec. 11, 2014, 12:02 p.m. UTC | #1
On Fri, Dec 12, 2014 at 02:18:16PM +0530, deepak.s@linux.intel.com wrote:
> From: Deepak S <deepak.s@linux.intel.com>
> 
> With cherryview onwards, Gunit hardware itself save and restore all the
> Gunit registers. Skipping the "vlv_save_gunit_s0ix_state" &
> "vlv_restore_gunit_s0ix_state" for cherryview in S3/S0ix sequence.
> 
> Signed-off-by: Deepak S <deepak.s@linux.intel.com>

I had the same patch tucked away somewhere, but didn't bother to send it
since I've not yet looked into s0ix. In any case the docs agree with
this so:

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/i915_drv.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 6c09bf8..6257f66 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1299,7 +1299,9 @@ static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
>  	err = vlv_allow_gt_wake(dev_priv, false);
>  	if (err)
>  		goto err2;
> -	vlv_save_gunit_s0ix_state(dev_priv);
> +
> +	if (!IS_CHERRYVIEW(dev_priv->dev))
> +		vlv_save_gunit_s0ix_state(dev_priv);
>  
>  	err = vlv_force_gfx_clock(dev_priv, false);
>  	if (err)
> @@ -1330,7 +1332,8 @@ static int vlv_resume_prepare(struct drm_i915_private *dev_priv,
>  	 */
>  	ret = vlv_force_gfx_clock(dev_priv, true);
>  
> -	vlv_restore_gunit_s0ix_state(dev_priv);
> +	if (!IS_CHERRYVIEW(dev_priv->dev))
> +		vlv_restore_gunit_s0ix_state(dev_priv);
>  
>  	err = vlv_allow_gt_wake(dev_priv, true);
>  	if (!ret)
> -- 
> 1.9.1
Daniel Vetter Dec. 15, 2014, 3:16 p.m. UTC | #2
On Thu, Dec 11, 2014 at 02:02:52PM +0200, Ville Syrjälä wrote:
> On Fri, Dec 12, 2014 at 02:18:16PM +0530, deepak.s@linux.intel.com wrote:
> > From: Deepak S <deepak.s@linux.intel.com>
> > 
> > With cherryview onwards, Gunit hardware itself save and restore all the
> > Gunit registers. Skipping the "vlv_save_gunit_s0ix_state" &
> > "vlv_restore_gunit_s0ix_state" for cherryview in S3/S0ix sequence.
> > 
> > Signed-off-by: Deepak S <deepak.s@linux.intel.com>
> 
> I had the same patch tucked away somewhere, but didn't bother to send it
> since I've not yet looked into s0ix. In any case the docs agree with
> this so:
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Merged patch 1&4 from this series, thanks.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 6c09bf8..6257f66 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1299,7 +1299,9 @@  static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
 	err = vlv_allow_gt_wake(dev_priv, false);
 	if (err)
 		goto err2;
-	vlv_save_gunit_s0ix_state(dev_priv);
+
+	if (!IS_CHERRYVIEW(dev_priv->dev))
+		vlv_save_gunit_s0ix_state(dev_priv);
 
 	err = vlv_force_gfx_clock(dev_priv, false);
 	if (err)
@@ -1330,7 +1332,8 @@  static int vlv_resume_prepare(struct drm_i915_private *dev_priv,
 	 */
 	ret = vlv_force_gfx_clock(dev_priv, true);
 
-	vlv_restore_gunit_s0ix_state(dev_priv);
+	if (!IS_CHERRYVIEW(dev_priv->dev))
+		vlv_restore_gunit_s0ix_state(dev_priv);
 
 	err = vlv_allow_gt_wake(dev_priv, true);
 	if (!ret)