Message ID | 1359132802-1247-2-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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))
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 --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))
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(-)