public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: deepak.s@linux.intel.com
To: intel-gfx@lists.freedesktop.org
Cc: daniel.vetter@ffwll.ch
Subject: [PATCH 2/4] drm/i915/chv: Populate total EU count on Cherryview
Date: Fri, 12 Dec 2014 14:18:14 +0530	[thread overview]
Message-ID: <1418374096-26561-2-git-send-email-deepak.s@linux.intel.com> (raw)
In-Reply-To: <1418374096-26561-1-git-send-email-deepak.s@linux.intel.com>

From: Deepak S <deepak.s@linux.intel.com>

Starting with Cherryview, devices may have a varying number of EU for
a given ID due to creative fusing. Punit support different frequency for
different fuse data. We use this patch to help get total eu enabled and
read the right offset to get RP0

Based upon a patch from Jeff, but reworked to only store eu_total and
avoid sending info to userspace

Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
---
 drivers/gpu/drm/i915/i915_dma.c | 11 +++++++++++
 drivers/gpu/drm/i915/i915_drv.h |  1 +
 drivers/gpu/drm/i915/i915_reg.h | 11 +++++++++++
 3 files changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 887d88f..2bd36b6 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -598,6 +598,17 @@ static void intel_device_info_runtime_init(struct drm_device *dev)
 			info->num_pipes = 0;
 		}
 	}
+
+	if (IS_CHERRYVIEW(dev)) {
+		u32 fuse, mask_eu;
+
+		fuse = I915_READ(CHV_FUSE_GT);
+		mask_eu = fuse & (CHV_FGT_EU_DIS_SS0_R0_MASK |
+				  CHV_FGT_EU_DIS_SS0_R1_MASK |
+				  CHV_FGT_EU_DIS_SS1_R0_MASK |
+				  CHV_FGT_EU_DIS_SS1_R1_MASK);
+		info->eu_total = 16 - hweight32(mask_eu);
+	}
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9381504..b58bad4 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -624,6 +624,7 @@ struct intel_device_info {
 	int trans_offsets[I915_MAX_TRANSCODERS];
 	int palette_offsets[I915_MAX_PIPES];
 	int cursor_offsets[I915_MAX_PIPES];
+	unsigned int eu_total;
 };
 
 #undef DEFINE_FLAG
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 93fdad8..b57cba3 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1466,6 +1466,17 @@ enum punit_power_well {
 #define   GEN8_RC_SEMA_IDLE_MSG_DISABLE	(1 << 12)
 #define   GEN8_FF_DOP_CLOCK_GATE_DISABLE	(1<<10)
 
+/* Fuse readout registers for GT */
+#define CHV_FUSE_GT			0x182168
+#define   CHV_FGT_EU_DIS_SS0_R0_SHIFT	16
+#define   CHV_FGT_EU_DIS_SS0_R0_MASK	(0xf<<CHV_FGT_EU_DIS_SS0_R0_SHIFT)
+#define   CHV_FGT_EU_DIS_SS0_R1_SHIFT	20
+#define   CHV_FGT_EU_DIS_SS0_R1_MASK	(0xf<<CHV_FGT_EU_DIS_SS0_R1_SHIFT)
+#define   CHV_FGT_EU_DIS_SS1_R0_SHIFT	24
+#define   CHV_FGT_EU_DIS_SS1_R0_MASK	(0xf<<CHV_FGT_EU_DIS_SS1_R0_SHIFT)
+#define   CHV_FGT_EU_DIS_SS1_R1_SHIFT	28
+#define   CHV_FGT_EU_DIS_SS1_R1_MASK	(0xf<<CHV_FGT_EU_DIS_SS1_R1_SHIFT)
+
 #define GEN6_BSD_SLEEP_PSMI_CONTROL	0x12050
 #define   GEN6_BSD_SLEEP_MSG_DISABLE	(1 << 0)
 #define   GEN6_BSD_SLEEP_FLUSH_DISABLE	(1 << 2)
-- 
1.9.1

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

  reply	other threads:[~2014-12-11  8:51 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-12  8:48 [PATCH 1/4] drm/i915/chv: Use timeout mode for RC6 on chv deepak.s
2014-12-12  8:48 ` deepak.s [this message]
2014-12-11 12:09   ` [PATCH 2/4] drm/i915/chv: Populate total EU count on Cherryview Jani Nikula
2014-12-12 12:10     ` Deepak S
2014-12-12 12:33       ` [PATCH v2] " deepak.s
2014-12-12  8:48 ` [PATCH 3/4] drm/i915: New offset for reading frequencies on CHV deepak.s
2014-12-12 19:09   ` Ville Syrjälä
2014-12-15  6:51     ` Jani Nikula
2014-12-16 12:11       ` Deepak S
2015-01-16 15:12         ` [PATCH v2 0/3] Use new turbo offset for chv production system deepak.s
2015-01-16 15:12           ` [PATCH v2 1/3] drm/i915/chv: Populate total EU count on Cherryview deepak.s
2015-01-16 16:06             ` Jeff McGee
2015-01-16 17:11             ` Ville Syrjälä
2015-01-19  9:44             ` Daniel Vetter
2015-01-20  3:07               ` Deepak S
2015-01-20  9:06                 ` Daniel Vetter
2015-01-16 15:12           ` [PATCH v2 2/3] drm/i915: Increase the range of sideband address deepak.s
2015-01-16 17:11             ` Ville Syrjälä
2015-01-16 15:12           ` [PATCH v2 3/3] drm/i915: New offset for reading frequencies on CHV deepak.s
2015-01-16 17:09             ` Ville Syrjälä
2015-01-17  5:34               ` Deepak S
2015-01-17  5:35                 ` [PATCH v3] " deepak.s
2015-01-19  9:47                   ` Daniel Vetter
2014-12-12  8:48 ` [PATCH 4/4] drm/i915: Skip gunit save/restore for cherryview deepak.s
2014-12-11 12:02   ` Ville Syrjälä
2014-12-15 15:16     ` Daniel Vetter
2014-12-13  6:13 ` [PATCH v2] drm/i915/chv: Use timeout mode for RC6 on chv deepak.s
2014-12-12 16:34   ` Ville Syrjälä
2014-12-16 12:09     ` Deepak S
2014-12-15 15:12       ` 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=1418374096-26561-2-git-send-email-deepak.s@linux.intel.com \
    --to=deepak.s@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox