Re: [Intel-gfx] [PATCH] drm/i915: Don't use WaGsvRC0ResidenncyMethod on chv
On Friday 29 August 2014 04:44 PM, ville.syrj...@linux.intel.com wrote: From: Ville Syrjälä ville.syrj...@linux.intel.com WaGsvRC0ResidenncyMethod is for vlv, it doesn't deal with chv appropriately (eg. doesn't limit rps values to even numbers). Fix a typo in the w/a name while at it. Cc: Deepak S deepa...@linux.intel.com Signed-off-by: Ville Syrjälä ville.syrj...@linux.intel.com --- drivers/gpu/drm/i915/i915_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 8a54870..6d5ae82 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -4692,8 +4692,8 @@ void intel_irq_init(struct drm_device *dev) INIT_WORK(dev_priv-l3_parity.error_work, ivybridge_parity_work); /* Let's track the enabled rps events */ - if (IS_VALLEYVIEW(dev)) - /* WaGsvRC0ResidenncyMethod:VLV */ + if (IS_VALLEYVIEW(dev) !IS_CHERRYVIEW(dev)) + /* WaGsvRC0ResidencyMethod:vlv */ dev_priv-pm_rps_events = GEN6_PM_RP_UP_EI_EXPIRED; else dev_priv-pm_rps_events = GEN6_PM_RPS_EVENTS; Reviewed-by: Deepak S deepa...@linux.intel.com ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] igt/gem_workarounds: igt to test workaround registers
On Tue, Aug 26, 2014 at 02:50:28PM +0100, Arun Siluvery wrote: + igt_subtest(check-workaround-data-after-suspend-resume) { + if (IS_BROADWELL(devid)) + check_workarounds(SUSPEND_RESUME, num_wa_regs); + else + igt_skip_on(No Workaround table available!!\n); + } This kind of check needs updating for each platform. That generates a lot of stupid work. And indeed, it's already out of date (CHV). We should be able to use some information from the debugfs file directly to do the right thing. With your current format for the debugfs file, I don't think we need a platform test at all. platforms that don't have a list will just expose: Workarounds applied: 0\n and we can happily pass the test. -- Damien ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] igt/gem_workarounds: igt to test workaround registers
On Tue, Aug 26, 2014 at 02:50:28PM +0100, Arun Siluvery wrote: + igt_fixture { [...] + + fd = igt_debugfs_open(intel_wa_registers, O_RDONLY); + igt_assert(fd = 0); This will make the test fail on kernels that don't have your kernel work exposing that debugfs file. It should skip instead. -- Damien ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 3/5] drm/i915: Don't silently discard workarounds
If we happen to emit more than I915_MAX_WA_REGS workarounds, we will currently discard them, not even emit the LRI. Not really what we want, so warn loudly. Signed-off-by: Damien Lespiau damien.lesp...@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 96618c0..5ef0f99 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -663,7 +663,7 @@ static inline void intel_ring_emit_wa(struct intel_engine_cs *ring, struct drm_device *dev = ring-dev; struct drm_i915_private *dev_priv = dev-dev_private; - if (dev_priv-num_wa_regs = I915_MAX_WA_REGS) + if (WARN_ON(dev_priv-num_wa_regs = I915_MAX_WA_REGS)) return; intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); -- 1.8.3.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 1/5] drm/i915: Rename intel_wa_registers with a i915_ prefix
Those debugfs files are prefixed by i915, the name of the kernel module, presumably to make the difference with files exposed by core DRM. Also, add a ',' at the end of the last entry. This is to ease the conflict resolution when rebasing internal patches that add a member at the end of the array. Without it, wiggle can't do its job as we need to modify an existing line (appending the ','). Signed-off-by: Damien Lespiau damien.lesp...@intel.com --- drivers/gpu/drm/i915/i915_debugfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 1467cc1..fc3d582a 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2628,7 +2628,7 @@ static int i915_shared_dplls_info(struct seq_file *m, void *unused) return 0; } -static int intel_wa_registers(struct seq_file *m, void *unused) +static int i915_wa_registers(struct seq_file *m, void *unused) { int i; int ret; @@ -4198,7 +4198,7 @@ static const struct drm_info_list i915_debugfs_list[] = { {i915_semaphore_status, i915_semaphore_status, 0}, {i915_shared_dplls_info, i915_shared_dplls_info, 0}, {i915_dp_mst_info, i915_dp_mst_info, 0}, - {intel_wa_registers, intel_wa_registers, 0} + {i915_wa_registers, i915_wa_registers, 0}, }; #define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list) -- 1.8.3.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 4/5] drm/i915: Remove unneeded brackets
Signed-off-by: Damien Lespiau damien.lesp...@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 5ef0f99..f8aadc3 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -671,7 +671,7 @@ static inline void intel_ring_emit_wa(struct intel_engine_cs *ring, intel_ring_emit(ring, value); dev_priv-intel_wa_regs[dev_priv-num_wa_regs].addr = addr; - dev_priv-intel_wa_regs[dev_priv-num_wa_regs].mask = (value) 0x; + dev_priv-intel_wa_regs[dev_priv-num_wa_regs].mask = value 0x; /* value is updated with the status of remaining bits of this * register when it is read from debugfs file */ -- 1.8.3.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 0/5] A few fixes on top of the wa_regs patches
Hi Arun, I've compiled a few patches that I think solve some small-ish issues around your wa_regs series. Could you please have a look at them and comment/give your r-b tag if you judge appropriate? On top of those patches, I'd love some comments on the issues I raised in the other mail and possible follow up patches to address them. http://lists.freedesktop.org/archives/intel-gfx/2014-August/051514.html At some point, we'll also need a bit of coherence with what Mika has been doing: http://lists.freedesktop.org/archives/intel-gfx/2014-August/05.html -- Damien Damien Lespiau (5): drm/i915: Rename intel_wa_registers with a i915_ prefix drm/i915: Don't overrun the intel_wa_regs array drm/i915: Don't silently discard workarounds drm/i915: Remove unneeded brackets drm/i915: Don't restrict i915_wa_registers to BDW drivers/gpu/drm/i915/i915_debugfs.c | 9 ++--- drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++-- 2 files changed, 4 insertions(+), 9 deletions(-) -- 1.8.3.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/5] drm/i915: Don't overrun the intel_wa_regs array
When entering intel_ring_emit_wa() with num_wa_regs equal to I915_MAX_WA_REGS, we end up indexing the intel_wa_regs array beyond its allocation. Fix the check then. Signed-off-by: Damien Lespiau damien.lesp...@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 12135ef..96618c0 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -663,7 +663,7 @@ static inline void intel_ring_emit_wa(struct intel_engine_cs *ring, struct drm_device *dev = ring-dev; struct drm_i915_private *dev_priv = dev-dev_private; - if (dev_priv-num_wa_regs I915_MAX_WA_REGS) + if (dev_priv-num_wa_regs = I915_MAX_WA_REGS) return; intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); -- 1.8.3.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH igt] gem_workarounds: intel_wa_registers is now prefixed with i915
Signed-off-by: Damien Lespiau damien.lesp...@intel.com --- tests/gem_workarounds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c index 6826562..32156d2 100644 --- a/tests/gem_workarounds.c +++ b/tests/gem_workarounds.c @@ -184,7 +184,7 @@ igt_main devid = intel_get_drm_devid(drm_fd); batch = intel_batchbuffer_alloc(bufmgr, devid); - fd = igt_debugfs_open(intel_wa_registers, O_RDONLY); + fd = igt_debugfs_open(i915_wa_registers, O_RDONLY); igt_assert(fd = 0); file = fdopen(fd, r); -- 1.8.3.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx