public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Paulo Zanoni <przanoni@gmail.com>
Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: Re: [PATCH 06/11] drm/i915: get/put runtime PM in more places at i915_debugfs.c
Date: Fri, 21 Feb 2014 09:41:48 -0800	[thread overview]
Message-ID: <20140221094148.729c35da@jbarnes-desktop> (raw)
In-Reply-To: <1393001548-2883-7-git-send-email-przanoni@gmail.com>

On Fri, 21 Feb 2014 13:52:23 -0300
Paulo Zanoni <przanoni@gmail.com> wrote:

> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
> 
> These are places where we read (not write) registers while we're
> runtime suspended.
> 
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index d90a707..34e347f 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1348,6 +1348,8 @@ static int i915_fbc_status(struct seq_file *m, void *unused)
>  		return 0;
>  	}
>  
> +	intel_runtime_pm_get(dev_priv);
> +
>  	if (intel_fbc_enabled(dev)) {
>  		seq_puts(m, "FBC enabled\n");
>  	} else {
> @@ -1391,6 +1393,9 @@ static int i915_fbc_status(struct seq_file *m, void *unused)
>  		}
>  		seq_putc(m, '\n');
>  	}
> +
> +	intel_runtime_pm_put(dev_priv);
> +
>  	return 0;
>  }
>  
> @@ -1405,11 +1410,15 @@ static int i915_ips_status(struct seq_file *m, void *unused)
>  		return 0;
>  	}
>  
> +	intel_runtime_pm_get(dev_priv);
> +
>  	if (IS_BROADWELL(dev) || I915_READ(IPS_CTL) & IPS_ENABLE)
>  		seq_puts(m, "enabled\n");
>  	else
>  		seq_puts(m, "disabled\n");
>  
> +	intel_runtime_pm_put(dev_priv);
> +
>  	return 0;
>  }
>  
> @@ -1420,6 +1429,8 @@ static int i915_sr_status(struct seq_file *m, void *unused)
>  	drm_i915_private_t *dev_priv = dev->dev_private;
>  	bool sr_enabled = false;
>  
> +	intel_runtime_pm_get(dev_priv);
> +
>  	if (HAS_PCH_SPLIT(dev))
>  		sr_enabled = I915_READ(WM1_LP_ILK) & WM1_LP_SR_EN;
>  	else if (IS_CRESTLINE(dev) || IS_I945G(dev) || IS_I945GM(dev))
> @@ -1429,6 +1440,8 @@ static int i915_sr_status(struct seq_file *m, void *unused)
>  	else if (IS_PINEVIEW(dev))
>  		sr_enabled = I915_READ(DSPFW3) & PINEVIEW_SELF_REFRESH_EN;
>  
> +	intel_runtime_pm_put(dev_priv);
> +
>  	seq_printf(m, "self-refresh: %s\n",
>  		   sr_enabled ? "enabled" : "disabled");
>  
> @@ -1972,12 +1985,16 @@ static int i915_energy_uJ(struct seq_file *m, void *data)
>  	if (INTEL_INFO(dev)->gen < 6)
>  		return -ENODEV;
>  
> +	intel_runtime_pm_get(dev_priv);
> +
>  	rdmsrl(MSR_RAPL_POWER_UNIT, power);
>  	power = (power & 0x1f00) >> 8;
>  	units = 1000000 / (1 << power); /* convert to uJ */
>  	power = I915_READ(MCH_SECP_NRG_STTS);
>  	power *= units;
>  
> +	intel_runtime_pm_put(dev_priv);
> +
>  	seq_printf(m, "%llu", (long long unsigned)power);
>  
>  	return 0;

Looks like there are more places we need this too.. wonder if it would
be better to put the get into some wrapper around our sysfs files...

But these bits look correct, if not sufficient, so:

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center

  reply	other threads:[~2014-02-21 17:41 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-21 16:52 [PATCH 00/11] Runtime PM fixes Paulo Zanoni
2014-02-21 16:52 ` [PATCH 01/11] drm/i915: Accurately track when we mark the hardware as idle/busy Paulo Zanoni
2014-02-21 16:55   ` Chris Wilson
2014-02-21 17:04     ` Paulo Zanoni
2014-02-21 17:27       ` Chris Wilson
2014-02-21 19:34         ` Paulo Zanoni
2014-03-05 13:13           ` Daniel Vetter
2014-03-05 13:15             ` Chris Wilson
2014-02-21 16:52 ` [PATCH 02/11] drm/i915: put runtime PM only at the end of intel_mark_idle Paulo Zanoni
2014-02-21 17:28   ` Jesse Barnes
2014-03-05 13:14     ` Daniel Vetter
2014-02-21 16:52 ` [PATCH 03/11] drm/i915: put runtime PM only when we actually release force_wake Paulo Zanoni
2014-02-21 17:34   ` Jesse Barnes
2014-02-21 20:08     ` Paulo Zanoni
2014-02-21 20:16       ` Jesse Barnes
2014-02-21 20:58         ` Paulo Zanoni
2014-03-05 13:17         ` Daniel Vetter
2014-02-21 16:52 ` [PATCH 04/11] drm/i915: get runtime PM at intel_set_mode Paulo Zanoni
2014-02-21 17:35   ` Jesse Barnes
2014-02-24 11:23   ` Imre Deak
2014-02-24 14:34     ` Paulo Zanoni
2014-02-28 13:07       ` Imre Deak
2014-03-05 13:25   ` Daniel Vetter
2014-03-06 16:30     ` Paulo Zanoni
2014-02-21 16:52 ` [PATCH 05/11] drm/i915: get runtime PM while trying to detect CRT Paulo Zanoni
2014-02-21 17:37   ` Jesse Barnes
2014-02-24 11:33   ` Imre Deak
2014-02-24 14:36     ` Paulo Zanoni
2014-02-21 16:52 ` [PATCH 06/11] drm/i915: get/put runtime PM in more places at i915_debugfs.c Paulo Zanoni
2014-02-21 17:41   ` Jesse Barnes [this message]
2014-02-21 17:46     ` Paulo Zanoni
2014-03-05 13:29       ` Daniel Vetter
2014-02-21 16:52 ` [PATCH 07/11] drm/i915: kill dev_priv->pc8.gpu_idle Paulo Zanoni
2014-02-28 13:50   ` Imre Deak
2014-02-28 20:11     ` Paulo Zanoni
2014-03-05 13:31       ` Daniel Vetter
2014-02-21 16:52 ` [PATCH 08/11] drm/i915: call assert_device_not_suspended at gen6_force_wake_work Paulo Zanoni
2014-02-21 18:05   ` Paulo Zanoni
2014-02-28 14:12     ` Imre Deak
2014-02-21 16:52 ` [PATCH 09/11] drm/i915: assert force wake is disabled when we runtime suspend Paulo Zanoni
2014-02-28 14:32   ` Imre Deak
2014-02-21 16:52 ` [PATCH 10/11] drm/i915: don't get/put runtime PM at the debugfs forcewake file Paulo Zanoni
2014-02-28 14:34   ` Imre Deak
2014-03-05 13:41   ` Daniel Vetter
2014-02-21 16:52 ` [PATCH 11/11] drm/i915: assert we're not runtime suspended when writing registers Paulo Zanoni
2014-02-28 15:16   ` Imre Deak
2014-03-05 13:44     ` Daniel Vetter
2014-03-05 13:46       ` 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=20140221094148.729c35da@jbarnes-desktop \
    --to=jbarnes@virtuousgeek.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=paulo.r.zanoni@intel.com \
    --cc=przanoni@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox