[Intel-gfx] [PATCH 14/15] drm/i915: VLV/CHV PSR debugfs.

R, Durgadoss durgadoss.r at intel.com
Tue Nov 18 19:40:24 CET 2014


>-----Original Message-----
>From: Intel-gfx [mailto:intel-gfx-bounces at lists.freedesktop.org] On Behalf Of Rodrigo Vivi
>Sent: Friday, November 14, 2014 10:23 PM
>To: intel-gfx at lists.freedesktop.org
>Cc: Vivi, Rodrigo
>Subject: [Intel-gfx] [PATCH 14/15] drm/i915: VLV/CHV PSR debugfs.
>
>Add debugfs support for Valleyview and Cherryview considering that
>we have PSR per pipe and  we don't have any kind of
>performance counter as we have on other platforms that support PSR.
>
>Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>---
> drivers/gpu/drm/i915/i915_debugfs.c | 34 +++++++++++++++++++++++++++++-----
> 1 file changed, 29 insertions(+), 5 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>index 319da61..d9b27f8 100644
>--- a/drivers/gpu/drm/i915/i915_debugfs.c
>+++ b/drivers/gpu/drm/i915/i915_debugfs.c
>@@ -2126,6 +2126,8 @@ static int i915_edp_psr_status(struct seq_file *m, void *data)
> 	struct drm_device *dev = node->minor->dev;
> 	struct drm_i915_private *dev_priv = dev->dev_private;
> 	u32 psrperf = 0;
>+	u32 stat[3];
>+	enum pipe pipe;
> 	bool enabled = false;
>
> 	intel_runtime_pm_get(dev_priv);
>@@ -2140,14 +2142,36 @@ static int i915_edp_psr_status(struct seq_file *m, void *data)
> 	seq_printf(m, "Re-enable work scheduled: %s\n",
> 		   yesno(work_busy(&dev_priv->psr.work.work)));
>
>-	enabled = HAS_PSR(dev) &&
>-		I915_READ(EDP_PSR_CTL(dev)) & EDP_PSR_ENABLE;
>-	seq_printf(m, "HW Enabled & Active bit: %s\n", yesno(enabled));
>+	if (HAS_PSR(dev)) {
>+		if (HAS_DDI(dev))
>+			enabled = I915_READ(EDP_PSR_CTL(dev)) & EDP_PSR_ENABLE;
>+		else {
>+			for_each_pipe(dev_priv, pipe) {
>+				stat[pipe] = I915_READ(VLV_PSRSTAT(pipe)) &
>+					VLV_EDP_PSR_CURR_STATE_MASK;
>+				if ((stat[pipe] == VLV_EDP_PSR_ACTIVE_NORFB_UP) ||
>+				    (stat[pipe] == VLV_EDP_PSR_ACTIVE_SF_UPDATE))
>+					enabled = true;
>+			}
>+		}
>+	}

Reviewed-by: Durgadoss R <durgadoss.r at intel.com>

Thanks,
Durga

>+	seq_printf(m, "HW Enabled & Active bit: %s", yesno(enabled));
>
>-	if (HAS_PSR(dev))
>+	if (!HAS_DDI(dev))
>+		for_each_pipe(dev_priv, pipe) {
>+			if ((stat[pipe] == VLV_EDP_PSR_ACTIVE_NORFB_UP) ||
>+			    (stat[pipe] == VLV_EDP_PSR_ACTIVE_SF_UPDATE))
>+				seq_printf(m, " pipe %c", pipe_name(pipe));
>+		}
>+	seq_puts(m, "\n");
>+
>+	/* CHV PSR has no kind of performance counter */
>+	if (HAS_PSR(dev) && HAS_DDI(dev)) {
> 		psrperf = I915_READ(EDP_PSR_PERF_CNT(dev)) &
> 			EDP_PSR_PERF_CNT_MASK;
>-	seq_printf(m, "Performance_Counter: %u\n", psrperf);
>+
>+		seq_printf(m, "Performance_Counter: %u\n", psrperf);
>+	}
> 	mutex_unlock(&dev_priv->psr.lock);
>
> 	intel_runtime_pm_put(dev_priv);
>--
>1.9.3
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx at lists.freedesktop.org
>http://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list