All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oscar Mateo <oscar.mateo@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: [RFC PATCH 16/20] drm/i915/bxt: Move GT and Display workarounds from init_clock_gating
Date: Fri,  3 Nov 2017 11:09:44 -0700	[thread overview]
Message-ID: <1509732588-10599-17-git-send-email-oscar.mateo@intel.com> (raw)
In-Reply-To: <1509732588-10599-1-git-send-email-oscar.mateo@intel.com>

To their rightful place inside intel_workarounds.c

v2: Classify WaDisableSDEUnitClockGating as GT WA
v3: Static tables (Joonas)

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v1)
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c          | 26 ++------------------------
 drivers/gpu/drm/i915/intel_workarounds.c | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 046553b..98e976e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -57,27 +57,6 @@
 #define INTEL_RC6p_ENABLE			(1<<1)
 #define INTEL_RC6pp_ENABLE			(1<<2)
 
-static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
-{
-	/* WaDisableSDEUnitClockGating:bxt */
-	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
-		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
-
-	/*
-	 * FIXME:
-	 * GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ applies on 3x6 GT SKUs only.
-	 */
-	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
-		   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ);
-
-	/*
-	 * Wa: Backlight PWM may stop in the asserted state, causing backlight
-	 * to stay fully on.
-	 */
-	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
-		   PWM1_GATING_DIS | PWM2_GATING_DIS);
-}
-
 static void i915_pineview_get_mem_freq(struct drm_i915_private *dev_priv)
 {
 	u32 tmp;
@@ -8898,12 +8877,11 @@ static void nop_init_clock_gating(struct drm_i915_private *dev_priv)
 void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv)
 {
 	if (IS_CANNONLAKE(dev_priv) || IS_COFFEELAKE(dev_priv) ||
-	    IS_GEMINILAKE(dev_priv) || IS_KABYLAKE(dev_priv))
+	    IS_GEMINILAKE(dev_priv) || IS_KABYLAKE(dev_priv)   ||
+	    IS_BROXTON(dev_priv))
 		dev_priv->display.init_clock_gating = nop_init_clock_gating;
 	else if (IS_SKYLAKE(dev_priv))
 		dev_priv->display.init_clock_gating = skl_init_clock_gating;
-	else if (IS_BROXTON(dev_priv))
-		dev_priv->display.init_clock_gating = bxt_init_clock_gating;
 	else if (IS_BROADWELL(dev_priv))
 		dev_priv->display.init_clock_gating = bdw_init_clock_gating;
 	else if (IS_CHERRYVIEW(dev_priv))
diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
index 396399b..1ebe56d 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/intel_workarounds.c
@@ -723,6 +723,10 @@ static uint mmio_workarounds_apply(struct drm_i915_private *dev_priv,
 	{ WA_GT("WaInPlaceDecompressionHang"),
 	  REVS(BXT_REVID_C0, REVID_FOREVER), REG(GEN9_GAMT_ECO_REG_RW_IA),
 	  SET_BIT(GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS) },
+
+	{ WA_GT("WaDisableSDEUnitClockGating"),
+	  ALL_REVS, REG(GEN8_UCGCTL6),
+	  SET_BIT(GEN8_SDEUNIT_CLOCK_GATE_DISABLE) },
 };
 
 static struct i915_wa_reg kbl_gt_was[] = {
@@ -931,6 +935,21 @@ void intel_gt_workarounds_apply(struct drm_i915_private *dev_priv)
 };
 
 static struct i915_wa_reg bxt_disp_was[] = {
+	/*
+	 * FIXME:
+	 * GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ applies on 3x6 GT SKUs only.
+	 */
+	{ WA_DISP(""),
+	  ALL_REVS, REG(GEN8_UCGCTL6),
+	  SET_BIT(GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ) },
+
+	/*
+	 * Backlight PWM may stop in the asserted state, causing backlight
+	 * to stay fully on.
+	 */
+	{ WA_DISP(""),
+	  ALL_REVS, REG(GEN9_CLKGATE_DIS_0),
+	  SET_BIT(PWM1_GATING_DIS | PWM2_GATING_DIS) },
 };
 
 static struct i915_wa_reg kbl_disp_was[] = {
-- 
1.9.1

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

  parent reply	other threads:[~2017-11-03 18:09 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-03 18:09 [RFC PATCH v5 00/20] Refactor HW workaround code Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 01/20] drm/i915: Remove Gen9 WAs with no effect Oscar Mateo
2017-11-06 12:40   ` Chris Wilson
2017-11-03 18:09 ` [RFC PATCH 02/20] drm/i915: Move a bunch of workaround-related code to its own file Oscar Mateo
2017-11-06 12:42   ` Chris Wilson
2017-11-06 12:47     ` Joonas Lahtinen
2017-11-03 18:09 ` [RFC PATCH 03/20] drm/i915: Split out functions for different kinds of workarounds Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 04/20] drm/i915: Transform context WAs into static tables Oscar Mateo
2017-11-06 11:59   ` Joonas Lahtinen
2017-11-06 18:54     ` Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 05/20] drm/i915: Transform GT " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 06/20] drm/i915: Transform Whitelist " Oscar Mateo
2017-11-03 20:43   ` [RFC PATCH v2] " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 07/20] drm/i915: Create a new category of display WAs Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 08/20] drm/i915: Print all workaround types correctly in debugfs Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 09/20] drm/i915: Do not store the total counts of WAs Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 10/20] drm/i915: Move WA BB stuff to the workarounds file as well Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 11/20] drm/i915/cnl: Move GT and Display workarounds from init_clock_gating Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 12/20] drm/i915/gen9: " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 13/20] drm/i915/cfl: " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 14/20] drm/i915/glk: " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 15/20] drm/i915/kbl: " Oscar Mateo
2017-11-03 18:09 ` Oscar Mateo [this message]
2017-11-03 18:09 ` [RFC PATCH 17/20] drm/i915/skl: " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 18/20] drm/i915/chv: " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 19/20] drm/i915/bdw: " Oscar Mateo
2017-11-03 18:09 ` [RFC PATCH 20/20] drm/i915: Document the i915_workarounds file Oscar Mateo
2017-11-03 18:37 ` ✗ Fi.CI.BAT: failure for Refactor HW workaround code (rev5) Patchwork
2017-11-03 21:05 ` ✗ Fi.CI.BAT: failure for Refactor HW workaround code (rev6) Patchwork
2017-11-03 21:51 ` [RFC PATCH v5 00/20] Refactor HW workaround code Oscar Mateo

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=1509732588-10599-17-git-send-email-oscar.mateo@intel.com \
    --to=oscar.mateo@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.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 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.