diff mbox series

[10/11] drm/i915/tgl: Wa_1607030317, Wa_1607186500, Wa_1607297627

Message ID 20191015154449.10338-10-mika.kuoppala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [01/11] drm/i915/tgl: Add IS_TGL_REVID | expand

Commit Message

Mika Kuoppala Oct. 15, 2019, 3:44 p.m. UTC
Disable semaphore idle messages and wait for event
power downs.

Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 8 ++++++++
 drivers/gpu/drm/i915/i915_reg.h             | 1 +
 2 files changed, 9 insertions(+)

Comments

Chris Wilson Oct. 15, 2019, 4:08 p.m. UTC | #1
Quoting Mika Kuoppala (2019-10-15 16:44:48)
> Disable semaphore idle messages and wait for event
> power downs.
> 
> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 8 ++++++++
>  drivers/gpu/drm/i915/i915_reg.h             | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 3bacf3d9684e..73fc168d7f60 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -1281,6 +1281,14 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>                 wa_write_or(wal,
>                             GEN9_CTX_PREEMPT_REG,
>                             GEN12_DISABLE_POSH_BUSY_FF_DOP_CG);
> +
> +               /* Wa_1607030317:tgl */
> +               /* Wa_1607186500:tgl */
> +               /* Wa_1607297627:tgl */
> +               wa_masked_en(wal,
> +                            GEN6_RC_SLEEP_PSMI_CONTROL,
> +                            GEN12_WAIT_FOR_EVENT_POWER_DOWN_DISABLE |
> +                            GEN8_RC_SEMA_IDLE_MSG_DISABLE);

rcs only, ack.

>         }
>  
>         if (IS_GEN(i915, 11)) {
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 19ac01057528..b50ec878a0b5 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2885,6 +2885,7 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
>  
>  #define GEN6_RC_SLEEP_PSMI_CONTROL     _MMIO(0x2050)
>  #define   GEN6_PSMI_SLEEP_MSG_DISABLE  (1 << 0)
> +#define   GEN12_WAIT_FOR_EVENT_POWER_DOWN_DISABLE (1 << 7)
REG_BIT(7)

>  #define   GEN8_RC_SEMA_IDLE_MSG_DISABLE        (1 << 12)
>  #define   GEN8_FF_DOP_CLOCK_GATE_DISABLE       (1 << 10)

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 3bacf3d9684e..73fc168d7f60 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1281,6 +1281,14 @@  rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
 		wa_write_or(wal,
 			    GEN9_CTX_PREEMPT_REG,
 			    GEN12_DISABLE_POSH_BUSY_FF_DOP_CG);
+
+		/* Wa_1607030317:tgl */
+		/* Wa_1607186500:tgl */
+		/* Wa_1607297627:tgl */
+		wa_masked_en(wal,
+			     GEN6_RC_SLEEP_PSMI_CONTROL,
+			     GEN12_WAIT_FOR_EVENT_POWER_DOWN_DISABLE |
+			     GEN8_RC_SEMA_IDLE_MSG_DISABLE);
 	}
 
 	if (IS_GEN(i915, 11)) {
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 19ac01057528..b50ec878a0b5 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2885,6 +2885,7 @@  static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 
 #define GEN6_RC_SLEEP_PSMI_CONTROL	_MMIO(0x2050)
 #define   GEN6_PSMI_SLEEP_MSG_DISABLE	(1 << 0)
+#define   GEN12_WAIT_FOR_EVENT_POWER_DOWN_DISABLE (1 << 7)
 #define   GEN8_RC_SEMA_IDLE_MSG_DISABLE	(1 << 12)
 #define   GEN8_FF_DOP_CLOCK_GATE_DISABLE	(1 << 10)