All of lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 1/4] drm/i915: move modeset checks out of save/restore_modeset_reg
Date: Mon, 28 Jan 2013 12:54:26 +0200	[thread overview]
Message-ID: <1359370466.3592.7.camel@ideak-mobl> (raw)
In-Reply-To: <1359132802-1247-2-git-send-email-daniel.vetter@ffwll.ch>

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))

  reply	other threads:[~2013-01-28 10:54 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-25 16:53 [PATCH 0/4] disable more register safe/restore code for kms Daniel Vetter
2013-01-25 16:53 ` [PATCH 1/4] drm/i915: move modeset checks out of save/restore_modeset_reg Daniel Vetter
2013-01-28 10:54   ` Imre Deak [this message]
2013-01-28 21:54     ` Daniel Vetter
2013-01-25 16:53 ` [PATCH 2/4] drm/i915: extract ums suspend/resume into i915_ums.c Daniel Vetter
2013-01-25 16:53 ` [PATCH 3/4] drm/i915: dont save/restore VGA state for kms Daniel Vetter
2013-01-25 19:09   ` Ville Syrjälä
2013-01-25 19:25     ` Daniel Vetter
2013-01-25 16:53 ` [PATCH 4/4] drm/i915: move DP save/restore into i915_ums.c Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1359370466.3592.7.camel@ideak-mobl \
    --to=imre.deak@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.