diff mbox

[1/4] drm/i915: move modeset checks out of save/restore_modeset_reg

Message ID 1359132802-1247-2-git-send-email-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Jan. 25, 2013, 4:53 p.m. UTC
That way the control flow is clearer, and it prepares the stage
to extract these ums functions and hide them somewhere.

There's still tons of display stuff outside of these, but that
requires more work.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_suspend.c | 38 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 23 deletions(-)

Comments

Imre Deak Jan. 28, 2013, 10:54 a.m. UTC | #1
On Fri, 2013-01-25 at 17:53 +0100, Daniel Vetter wrote:
> That way the control flow is clearer, and it prepares the stage
> to extract these ums functions and hide them somewhere.
> 
> There's still tons of display stuff outside of these, but that
> requires more work.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/i915_suspend.c | 38 +++++++++++++++----------------------
>  1 file changed, 15 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
> index 63d4d30..2e3a8a6 100644
> --- a/drivers/gpu/drm/i915/i915_suspend.c
> +++ b/drivers/gpu/drm/i915/i915_suspend.c
> @@ -240,9 +240,6 @@ static void i915_save_modeset_reg(struct drm_device *dev)
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	int i;
>  
> -	if (drm_core_check_feature(dev, DRIVER_MODESET))
> -		return;
> -
>  	/* Cursor state */
>  	dev_priv->regfile.saveCURACNTR = I915_READ(_CURACNTR);
>  	dev_priv->regfile.saveCURAPOS = I915_READ(_CURAPOS);
> @@ -410,8 +407,17 @@ static void i915_restore_modeset_reg(struct drm_device *dev)
>  	int dpll_b_reg, fpb0_reg, fpb1_reg;
>  	int i;
>  
> -	if (drm_core_check_feature(dev, DRIVER_MODESET))
> -		return;
> +	/* Display port ratios (must be done before clock is set) */
> +	if (SUPPORTS_INTEGRATED_DP(dev)) {
> +		I915_WRITE(_PIPEA_GMCH_DATA_M, dev_priv->regfile.savePIPEA_GMCH_DATA_M);
> +		I915_WRITE(_PIPEB_GMCH_DATA_M, dev_priv->regfile.savePIPEB_GMCH_DATA_M);
> +		I915_WRITE(_PIPEA_GMCH_DATA_N, dev_priv->regfile.savePIPEA_GMCH_DATA_N);
> +		I915_WRITE(_PIPEB_GMCH_DATA_N, dev_priv->regfile.savePIPEB_GMCH_DATA_N);
> +		I915_WRITE(_PIPEA_DP_LINK_M, dev_priv->regfile.savePIPEA_DP_LINK_M);
> +		I915_WRITE(_PIPEB_DP_LINK_M, dev_priv->regfile.savePIPEB_DP_LINK_M);
> +		I915_WRITE(_PIPEA_DP_LINK_N, dev_priv->regfile.savePIPEA_DP_LINK_N);
> +		I915_WRITE(_PIPEB_DP_LINK_N, dev_priv->regfile.savePIPEB_DP_LINK_N);
> +	}
>  
>  	/* Fences */
>  	switch (INTEL_INFO(dev)->gen) {
> @@ -624,7 +630,8 @@ static void i915_save_display(struct drm_device *dev)
>  
>  	/* This is only meaningful in non-KMS mode */
>  	/* Don't regfile.save them in KMS mode */
> -	i915_save_modeset_reg(dev);
> +	if (!drm_core_check_feature(dev, DRIVER_MODESET))
> +		i915_save_modeset_reg(dev);
>  
>  	/* LVDS state */
>  	if (HAS_PCH_SPLIT(dev)) {
> @@ -709,23 +716,8 @@ static void i915_restore_display(struct drm_device *dev)
>  	/* Display arbitration */
>  	I915_WRITE(DSPARB, dev_priv->regfile.saveDSPARB);
>  
> -	if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
> -		/* Display port ratios (must be done before clock is set) */
> -		if (SUPPORTS_INTEGRATED_DP(dev)) {
> -			I915_WRITE(_PIPEA_GMCH_DATA_M, dev_priv->regfile.savePIPEA_GMCH_DATA_M);
> -			I915_WRITE(_PIPEB_GMCH_DATA_M, dev_priv->regfile.savePIPEB_GMCH_DATA_M);
> -			I915_WRITE(_PIPEA_GMCH_DATA_N, dev_priv->regfile.savePIPEA_GMCH_DATA_N);
> -			I915_WRITE(_PIPEB_GMCH_DATA_N, dev_priv->regfile.savePIPEB_GMCH_DATA_N);
> -			I915_WRITE(_PIPEA_DP_LINK_M, dev_priv->regfile.savePIPEA_DP_LINK_M);
> -			I915_WRITE(_PIPEB_DP_LINK_M, dev_priv->regfile.savePIPEB_DP_LINK_M);
> -			I915_WRITE(_PIPEA_DP_LINK_N, dev_priv->regfile.savePIPEA_DP_LINK_N);
> -			I915_WRITE(_PIPEB_DP_LINK_N, dev_priv->regfile.savePIPEB_DP_LINK_N);
> -		}
> -	}
> -
> -	/* This is only meaningful in non-KMS mode */
> -	/* Don't restore them in KMS mode */
> -	i915_restore_modeset_reg(dev);
> +	if (!drm_core_check_feature(dev, DRIVER_MODESET))
> +		i915_restore_modeset_reg(dev);

s/modeset/display/ as discussed on IRC. Also would be nice to use
format-patch -C for things like patch 2/4 in the future, as that'd make
reviewing easier imo. Otherwise on the series:

Reviewed-by: Imre Deak <imre.deak@intel.com>

>  
>  	/* LVDS state */
>  	if (INTEL_INFO(dev)->gen >= 4 && !HAS_PCH_SPLIT(dev))
Daniel Vetter Jan. 28, 2013, 9:54 p.m. UTC | #2
On Mon, Jan 28, 2013 at 12:54:26PM +0200, Imre Deak wrote:
> On Fri, 2013-01-25 at 17:53 +0100, Daniel Vetter wrote:
> > That way the control flow is clearer, and it prepares the stage
> > to extract these ums functions and hide them somewhere.
> > 
> > There's still tons of display stuff outside of these, but that
> > requires more work.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> s/modeset/display/ as discussed on IRC. Also would be nice to use
> format-patch -C for things like patch 2/4 in the future, as that'd make
> reviewing easier imo. Otherwise on the series:
> 
> Reviewed-by: Imre Deak <imre.deak@intel.com>

Ok, slurped in the entire series, with your suggestion applied to patch 2
(less conflicts that way to resolve). Thanks for the review.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 63d4d30..2e3a8a6 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -240,9 +240,6 @@  static void i915_save_modeset_reg(struct drm_device *dev)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int i;
 
-	if (drm_core_check_feature(dev, DRIVER_MODESET))
-		return;
-
 	/* Cursor state */
 	dev_priv->regfile.saveCURACNTR = I915_READ(_CURACNTR);
 	dev_priv->regfile.saveCURAPOS = I915_READ(_CURAPOS);
@@ -410,8 +407,17 @@  static void i915_restore_modeset_reg(struct drm_device *dev)
 	int dpll_b_reg, fpb0_reg, fpb1_reg;
 	int i;
 
-	if (drm_core_check_feature(dev, DRIVER_MODESET))
-		return;
+	/* Display port ratios (must be done before clock is set) */
+	if (SUPPORTS_INTEGRATED_DP(dev)) {
+		I915_WRITE(_PIPEA_GMCH_DATA_M, dev_priv->regfile.savePIPEA_GMCH_DATA_M);
+		I915_WRITE(_PIPEB_GMCH_DATA_M, dev_priv->regfile.savePIPEB_GMCH_DATA_M);
+		I915_WRITE(_PIPEA_GMCH_DATA_N, dev_priv->regfile.savePIPEA_GMCH_DATA_N);
+		I915_WRITE(_PIPEB_GMCH_DATA_N, dev_priv->regfile.savePIPEB_GMCH_DATA_N);
+		I915_WRITE(_PIPEA_DP_LINK_M, dev_priv->regfile.savePIPEA_DP_LINK_M);
+		I915_WRITE(_PIPEB_DP_LINK_M, dev_priv->regfile.savePIPEB_DP_LINK_M);
+		I915_WRITE(_PIPEA_DP_LINK_N, dev_priv->regfile.savePIPEA_DP_LINK_N);
+		I915_WRITE(_PIPEB_DP_LINK_N, dev_priv->regfile.savePIPEB_DP_LINK_N);
+	}
 
 	/* Fences */
 	switch (INTEL_INFO(dev)->gen) {
@@ -624,7 +630,8 @@  static void i915_save_display(struct drm_device *dev)
 
 	/* This is only meaningful in non-KMS mode */
 	/* Don't regfile.save them in KMS mode */
-	i915_save_modeset_reg(dev);
+	if (!drm_core_check_feature(dev, DRIVER_MODESET))
+		i915_save_modeset_reg(dev);
 
 	/* LVDS state */
 	if (HAS_PCH_SPLIT(dev)) {
@@ -709,23 +716,8 @@  static void i915_restore_display(struct drm_device *dev)
 	/* Display arbitration */
 	I915_WRITE(DSPARB, dev_priv->regfile.saveDSPARB);
 
-	if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
-		/* Display port ratios (must be done before clock is set) */
-		if (SUPPORTS_INTEGRATED_DP(dev)) {
-			I915_WRITE(_PIPEA_GMCH_DATA_M, dev_priv->regfile.savePIPEA_GMCH_DATA_M);
-			I915_WRITE(_PIPEB_GMCH_DATA_M, dev_priv->regfile.savePIPEB_GMCH_DATA_M);
-			I915_WRITE(_PIPEA_GMCH_DATA_N, dev_priv->regfile.savePIPEA_GMCH_DATA_N);
-			I915_WRITE(_PIPEB_GMCH_DATA_N, dev_priv->regfile.savePIPEB_GMCH_DATA_N);
-			I915_WRITE(_PIPEA_DP_LINK_M, dev_priv->regfile.savePIPEA_DP_LINK_M);
-			I915_WRITE(_PIPEB_DP_LINK_M, dev_priv->regfile.savePIPEB_DP_LINK_M);
-			I915_WRITE(_PIPEA_DP_LINK_N, dev_priv->regfile.savePIPEA_DP_LINK_N);
-			I915_WRITE(_PIPEB_DP_LINK_N, dev_priv->regfile.savePIPEB_DP_LINK_N);
-		}
-	}
-
-	/* This is only meaningful in non-KMS mode */
-	/* Don't restore them in KMS mode */
-	i915_restore_modeset_reg(dev);
+	if (!drm_core_check_feature(dev, DRIVER_MODESET))
+		i915_restore_modeset_reg(dev);
 
 	/* LVDS state */
 	if (INTEL_INFO(dev)->gen >= 4 && !HAS_PCH_SPLIT(dev))