* [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
* 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
* [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 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox