On Wed, Aug 27, 2014 at 05:44:55PM +0200, Daniel Vetter wrote: > > static inline void intel_ring_emit_wa(struct intel_engine_cs *ring, > > u32 addr, u32 value) > > { > > + 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) > > + return; > > + > > intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); > > intel_ring_emit(ring, addr); > > 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) & 0xFFFF; > > + /* value is updated with the status of remaining bits of this > > + * register when it is read from debugfs file > > + */ > > + dev_priv->intel_wa_regs[dev_priv->num_wa_regs].value = value; > > + dev_priv->num_wa_regs++; This is bogus. The idea of this function is be called many times during the system uptime. The idea of the existing tool is to be able to probe whether the workaround has taken effect without the aid of a kernel (except for having to work with the kernel in case of forcewake etc). -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx