All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.