[Intel-gfx] [PATCH 6/6] drm/i915/bxt: Print out if we allow DC9 in debugfs

Damien Lespiau damien.lespiau at intel.com
Tue Jun 30 11:28:59 PDT 2015


Just like the DC5/DC6 states on SKL, but this time for BXT's DC9.

Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c     |  1 +
 drivers/gpu/drm/i915/i915_drv.h         |  2 +-
 drivers/gpu/drm/i915/intel_runtime_pm.c | 10 ++++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 878cc7f..0bc8b37 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2626,6 +2626,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
 	mutex_lock(&csr->lock);
 	seq_printf(m, "DC5 allowed: %s\n", yesno(csr->dc5_allowed));
 	seq_printf(m, "DC6 allowed: %s\n", yesno(csr->dc6_allowed));
+	seq_printf(m, "DC9 allowed: %s\n", yesno(csr->dc9_allowed));
 	mutex_unlock(&csr->lock);
 
 	if (IS_SKYLAKE(dev) && csr->version >= CSR_VERSION(1, 6)) {
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 99a09dd..129e148 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -751,7 +751,7 @@ struct intel_csr {
 	uint32_t mmioaddr[8];
 	uint32_t mmiodata[8];
 	enum csr_state state;
-	bool dc5_allowed, dc6_allowed;
+	bool dc5_allowed, dc6_allowed, dc9_allowed;
 };
 
 #define DEV_INFO_FOR_EACH_FLAG(func, sep) \
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index bfcc990..31f003a4 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -415,6 +415,7 @@ static void assert_can_disable_dc9(struct drm_i915_private *dev_priv)
 
 void bxt_enable_dc9(struct drm_i915_private *dev_priv)
 {
+	struct intel_csr *csr = &dev_priv->csr;
 	uint32_t val;
 
 	assert_can_enable_dc9(dev_priv);
@@ -425,10 +426,15 @@ void bxt_enable_dc9(struct drm_i915_private *dev_priv)
 	val |= DC_STATE_EN_DC9;
 	I915_WRITE(DC_STATE_EN, val);
 	POSTING_READ(DC_STATE_EN);
+
+	mutex_lock(&csr->lock);
+	csr->dc9_allowed = true;
+	mutex_unlock(&csr->lock);
 }
 
 void bxt_disable_dc9(struct drm_i915_private *dev_priv)
 {
+	struct intel_csr *csr = &dev_priv->csr;
 	uint32_t val;
 
 	assert_can_disable_dc9(dev_priv);
@@ -439,6 +445,10 @@ void bxt_disable_dc9(struct drm_i915_private *dev_priv)
 	val &= ~DC_STATE_EN_DC9;
 	I915_WRITE(DC_STATE_EN, val);
 	POSTING_READ(DC_STATE_EN);
+
+	mutex_lock(&csr->lock);
+	csr->dc9_allowed = false;
+	mutex_unlock(&csr->lock);
 }
 
 static void gen9_set_dc_state_debugmask_memory_up(
-- 
2.1.0



More information about the Intel-gfx mailing list