Re: [Intel-gfx] [PATCH] drm/i915: Don't use WaGsvRC0ResidenncyMethod on chv

2014-08-30 Thread Deepak S


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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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

2014-08-30 Thread Damien Lespiau
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