* [PATCH 0/3] drm/i915: A few BDW workarounds
@ 2014-02-27 19:59 ville.syrjala
2014-02-27 19:59 ` [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW ville.syrjala
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: ville.syrjala @ 2014-02-27 19:59 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
I was trawling the w/a database today and came across a few things
we seem to be missing on BDW.
Ville Syrjälä (3):
drm/i915: Disable semaphore wait event idle message on BDW
drm/i915: Implement WaDisableSDEUnitClockGating:bdw
drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw
drivers/gpu/drm/i915/i915_reg.h | 6 ++++++
drivers/gpu/drm/i915/intel_pm.c | 7 +++++++
drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +-
3 files changed, 14 insertions(+), 1 deletion(-)
--
1.8.3.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW
2014-02-27 19:59 [PATCH 0/3] drm/i915: A few BDW workarounds ville.syrjala
@ 2014-02-27 19:59 ` ville.syrjala
2014-03-04 12:02 ` Mika Kuoppala
2014-02-27 19:59 ` [PATCH 2/3] drm/i915: Implement WaDisableSDEUnitClockGating:bdw ville.syrjala
2014-02-27 19:59 ` [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw ville.syrjala
2 siblings, 1 reply; 7+ messages in thread
From: ville.syrjala @ 2014-02-27 19:59 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
According to BSpec we need to always set this magic bit in ring buffer
mode.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 3 +++
drivers/gpu/drm/i915/intel_pm.c | 3 +++
2 files changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 2f564ce..b47fff7 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -944,6 +944,9 @@
#define GEN6_BLITTER_LOCK_SHIFT 16
#define GEN6_BLITTER_FBC_NOTIFY (1<<3)
+#define GEN6_RC_SLEEP_PSMI_CONTROL 0x2050
+#define GEN8_RC_SEMA_IDLE_MSG_DISABLE (1 << 12)
+
#define GEN6_BSD_SLEEP_PSMI_CONTROL 0x12050
#define GEN6_BSD_SLEEP_MSG_DISABLE (1 << 0)
#define GEN6_BSD_SLEEP_FLUSH_DISABLE (1 << 2)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index a6b877a..0257cc9 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4841,6 +4841,9 @@ static void gen8_init_clock_gating(struct drm_device *dev)
I915_WRITE(GEN7_FF_THREAD_MODE,
I915_READ(GEN7_FF_THREAD_MODE) &
~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
+
+ I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
+ _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
}
static void haswell_init_clock_gating(struct drm_device *dev)
--
1.8.3.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] drm/i915: Implement WaDisableSDEUnitClockGating:bdw
2014-02-27 19:59 [PATCH 0/3] drm/i915: A few BDW workarounds ville.syrjala
2014-02-27 19:59 ` [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW ville.syrjala
@ 2014-02-27 19:59 ` ville.syrjala
2014-02-27 19:59 ` [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw ville.syrjala
2 siblings, 0 replies; 7+ messages in thread
From: ville.syrjala @ 2014-02-27 19:59 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 3 +++
drivers/gpu/drm/i915/intel_pm.c | 4 ++++
2 files changed, 7 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index b47fff7..367362b 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4901,6 +4901,9 @@
#define GEN7_UCGCTL4 0x940c
#define GEN7_L3BANK2X_CLOCK_GATE_DISABLE (1<<25)
+#define GEN8_UCGCTL6 0x9430
+#define GEN8_SDEUNIT_CLOCK_GATE_DISABLE (1<<14)
+
#define GEN6_RPNSWREQ 0xA008
#define GEN6_TURBO_DISABLE (1<<31)
#define GEN6_FREQUENCY(x) ((x)<<25)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 0257cc9..8a33345 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4844,6 +4844,10 @@ static void gen8_init_clock_gating(struct drm_device *dev)
I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
_MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
+
+ /* WaDisableSDEUnitClockGating:bdw */
+ I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
+ GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
}
static void haswell_init_clock_gating(struct drm_device *dev)
--
1.8.3.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw
2014-02-27 19:59 [PATCH 0/3] drm/i915: A few BDW workarounds ville.syrjala
2014-02-27 19:59 ` [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW ville.syrjala
2014-02-27 19:59 ` [PATCH 2/3] drm/i915: Implement WaDisableSDEUnitClockGating:bdw ville.syrjala
@ 2014-02-27 19:59 ` ville.syrjala
2014-02-27 23:10 ` Ben Widawsky
2 siblings, 1 reply; 7+ messages in thread
From: ville.syrjala @ 2014-02-27 19:59 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index b340c75..a83ff91 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -571,7 +571,7 @@ static int init_render_ring(struct intel_ring_buffer *ring)
* to use MI_WAIT_FOR_EVENT within the CS. It should already be
* programmed to '1' on all products.
*
- * WaDisableAsyncFlipPerfMode:snb,ivb,hsw,vlv
+ * WaDisableAsyncFlipPerfMode:snb,ivb,hsw,vlv,bdw
*/
if (INTEL_INFO(dev)->gen >= 6)
I915_WRITE(MI_MODE, _MASKED_BIT_ENABLE(ASYNC_FLIP_PERF_DISABLE));
--
1.8.3.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw
2014-02-27 19:59 ` [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw ville.syrjala
@ 2014-02-27 23:10 ` Ben Widawsky
2014-03-05 15:26 ` Daniel Vetter
0 siblings, 1 reply; 7+ messages in thread
From: Ben Widawsky @ 2014-02-27 23:10 UTC (permalink / raw)
To: ville.syrjala; +Cc: intel-gfx
On Thu, Feb 27, 2014 at 09:59:03PM +0200, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index b340c75..a83ff91 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -571,7 +571,7 @@ static int init_render_ring(struct intel_ring_buffer *ring)
> * to use MI_WAIT_FOR_EVENT within the CS. It should already be
> * programmed to '1' on all products.
> *
> - * WaDisableAsyncFlipPerfMode:snb,ivb,hsw,vlv
> + * WaDisableAsyncFlipPerfMode:snb,ivb,hsw,vlv,bdw
> */
> if (INTEL_INFO(dev)->gen >= 6)
> I915_WRITE(MI_MODE, _MASKED_BIT_ENABLE(ASYNC_FLIP_PERF_DISABLE));
Patch 2, and 3 are:
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
--
Ben Widawsky, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW
2014-02-27 19:59 ` [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW ville.syrjala
@ 2014-03-04 12:02 ` Mika Kuoppala
0 siblings, 0 replies; 7+ messages in thread
From: Mika Kuoppala @ 2014-03-04 12:02 UTC (permalink / raw)
To: ville.syrjala, intel-gfx
ville.syrjala@linux.intel.com writes:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> According to BSpec we need to always set this magic bit in ring buffer
> mode.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw
2014-02-27 23:10 ` Ben Widawsky
@ 2014-03-05 15:26 ` Daniel Vetter
0 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2014-03-05 15:26 UTC (permalink / raw)
To: Ben Widawsky; +Cc: intel-gfx
On Thu, Feb 27, 2014 at 03:10:50PM -0800, Ben Widawsky wrote:
> On Thu, Feb 27, 2014 at 09:59:03PM +0200, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > index b340c75..a83ff91 100644
> > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > @@ -571,7 +571,7 @@ static int init_render_ring(struct intel_ring_buffer *ring)
> > * to use MI_WAIT_FOR_EVENT within the CS. It should already be
> > * programmed to '1' on all products.
> > *
> > - * WaDisableAsyncFlipPerfMode:snb,ivb,hsw,vlv
> > + * WaDisableAsyncFlipPerfMode:snb,ivb,hsw,vlv,bdw
> > */
> > if (INTEL_INFO(dev)->gen >= 6)
> > I915_WRITE(MI_MODE, _MASKED_BIT_ENABLE(ASYNC_FLIP_PERF_DISABLE));
>
> Patch 2, and 3 are:
> Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
All three merged, thanks for patches&review.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-03-05 15:26 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-27 19:59 [PATCH 0/3] drm/i915: A few BDW workarounds ville.syrjala
2014-02-27 19:59 ` [PATCH 1/3] drm/i915: Disable semaphore wait event idle message on BDW ville.syrjala
2014-03-04 12:02 ` Mika Kuoppala
2014-02-27 19:59 ` [PATCH 2/3] drm/i915: Implement WaDisableSDEUnitClockGating:bdw ville.syrjala
2014-02-27 19:59 ` [PATCH 3/3] drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw ville.syrjala
2014-02-27 23:10 ` Ben Widawsky
2014-03-05 15:26 ` Daniel Vetter
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.