All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 5/5] drm/i915: Notify Coarse Power Gating changes to GuC
Date: Sun, 23 Aug 2015 17:52:51 +0530	[thread overview]
Message-ID: <1440332571-20761-6-git-send-email-sagar.a.kamble@intel.com> (raw)
In-Reply-To: <1440332571-20761-1-git-send-email-sagar.a.kamble@intel.com>

From: Alex Dai <yu.dai@intel.com>

Signed-off-by: Alex Dai <yu.dai@intel.com>
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
 drivers/gpu/drm/i915/i915_guc_submission.c | 18 ++++++++++++++++++
 drivers/gpu/drm/i915/intel_guc.h           |  1 +
 drivers/gpu/drm/i915/intel_pm.c            | 16 ++++++++++++----
 3 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
index ec70393..462c679 100644
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
@@ -877,6 +877,24 @@ int i915_guc_submission_enable(struct drm_device *dev)
 	return 0;
 }
 
+void i915_guc_sample_forcewake(struct drm_device *dev, u32 fw_data)
+{
+	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct intel_guc *guc = &dev_priv->guc;
+	struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
+
+	/* Notify GuC about CPG changes. */
+	if (guc_fw->guc_fw_fetch_status == GUC_FIRMWARE_SUCCESS) {
+		u32 data[2];
+
+		data[0] = HOST2GUC_ACTION_SAMPLE_FORCEWAKE;
+		data[1] = fw_data;
+
+		if (host2guc_action(guc, data, 2))
+			DRM_ERROR("Unable to notify GuC of CPG change\n");
+	}
+}
+
 void i915_guc_submission_disable(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h
index 4ec2d27..691574d 100644
--- a/drivers/gpu/drm/i915/intel_guc.h
+++ b/drivers/gpu/drm/i915/intel_guc.h
@@ -118,5 +118,6 @@ int i915_guc_submit(struct i915_guc_client *client,
 		    struct drm_i915_gem_request *rq);
 void i915_guc_submission_disable(struct drm_device *dev);
 void i915_guc_submission_fini(struct drm_device *dev);
+void i915_guc_sample_forcewake(struct drm_device *dev, u32 fw_data);
 
 #endif
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index c0345d2..4a0483c 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4616,6 +4616,9 @@ static void gen9_disable_rps(struct drm_device *dev)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
 	I915_WRITE(GEN6_RC_CONTROL, 0);
+
+	i915_guc_sample_forcewake(dev, 0);
+
 	I915_WRITE(GEN9_PG_ENABLE, 0);
 }
 
@@ -4804,6 +4807,7 @@ static void gen9_enable_rc6(struct drm_device *dev)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_engine_cs *ring;
 	uint32_t rc6_mask = 0;
+	uint32_t cpg_data = 0;
 	int unused;
 
 	/* 1a: Software RC state - RC0 */
@@ -4843,11 +4847,15 @@ static void gen9_enable_rc6(struct drm_device *dev)
 	 * WaRsDisableCoarsePowerGating:skl,bxt - Render/Media PG need to be disabled with RC6.
 	 */
 	if ((IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) ||
-		(IS_SKYLAKE(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0)))
+		(IS_SKYLAKE(dev) && (INTEL_REVID(dev) <= SKL_REVID_E0))) {
+		i915_guc_sample_forcewake(dev, 0);
 		I915_WRITE(GEN9_PG_ENABLE, 0);
-	else
-		I915_WRITE(GEN9_PG_ENABLE, (rc6_mask & GEN6_RC_CTL_RC6_ENABLE) ?
-				(GEN9_RENDER_PG_ENABLE | GEN9_MEDIA_PG_ENABLE) : 0);
+	} else {
+		cpg_data = (rc6_mask & GEN6_RC_CTL_RC6_ENABLE)?
+				(GEN9_RENDER_PG_ENABLE | GEN9_MEDIA_PG_ENABLE):0;
+		i915_guc_sample_forcewake(dev, cpg_data);
+		I915_WRITE(GEN9_PG_ENABLE, cpg_data);
+	}
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2015-08-23 12:21 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-23 12:22 [PATCH 0/5] RC6/Forcewake/Turbo related changes for Gen9 Sagar Arun Kamble
2015-08-23 12:22 ` [PATCH 1/5] drm/i915: Increase maximum polling time to 50ms for forcewake request/clear ack Sagar Arun Kamble
2015-08-26  9:26   ` Daniel Vetter
2015-09-22  9:06     ` Tvrtko Ursulin
2015-09-22  9:15       ` Chris Wilson
2015-09-22  9:48         ` Tvrtko Ursulin
2015-09-21 16:43   ` Yu Dai
2015-09-23  8:04     ` Daniel Vetter
2015-08-23 12:22 ` [PATCH 2/5] drm/i915/bxt: WaGsvDisableTurbo Sagar Arun Kamble
2015-09-11  6:23   ` Kamble, Sagar A
2015-09-11 12:24     ` Kamble, Sagar A
2015-09-21 16:43   ` Yu Dai
2015-09-23  7:46     ` Daniel Vetter
2015-08-23 12:22 ` [PATCH 3/5] drm/i915: WaRsDisableCoarsePowerGating Sagar Arun Kamble
2015-09-11  6:22   ` Kamble, Sagar A
2015-09-11  9:11     ` [PATCH 1/2] drm/i915: Add IS_SKL_GT3 and IS_SKL_GT4 macro Sagar Arun Kamble
2015-09-11  9:11       ` [PATCH 2/2] drm/i915: WaRsDisableCoarsePowerGating Sagar Arun Kamble
2015-09-11 11:46         ` [PATCH v2 1/1] " Sagar Arun Kamble
2015-09-21 16:43   ` [PATCH 3/5] " Yu Dai
2015-09-23  7:47     ` Daniel Vetter
2015-08-23 12:22 ` [PATCH 4/5] drm/i915: Use only blitter forcewake Sagar Arun Kamble
2015-08-23 12:30   ` Chris Wilson
2015-09-11 13:23     ` Kamble, Sagar A
2015-09-11 13:37   ` Ville Syrjälä
2015-09-11 13:54     ` Kamble, Sagar A
2015-09-11 14:02       ` Ville Syrjälä
2015-09-12 18:15         ` Kamble, Sagar A
2015-08-23 12:22 ` Sagar Arun Kamble [this message]
2015-08-27 19:55   ` [PATCH 5/5] drm/i915: Notify Coarse Power Gating changes to GuC O'Rourke, Tom
2015-09-11  6:16     ` Kamble, Sagar A
2015-09-11 17:17       ` Yu Dai

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=1440332571-20761-6-git-send-email-sagar.a.kamble@intel.com \
    --to=sagar.a.kamble@intel.com \
    --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.