[Intel-gfx] [PATCH 1/2] drm/i915: Clear per-engine fault register as early as possible
Dave Gordon
david.s.gordon at intel.com
Thu Jul 28 10:57:02 UTC 2016
On 28/07/16 11:12, Joonas Lahtinen wrote:
> On ke, 2016-07-27 at 19:11 +0100, Chris Wilson wrote:
>> From gen6, the hardware tracks address lookup failures and so that we do
>> not trigger false positives from errors before we are initialised we
>> clear those upon startup (intel_uncore_early_sanitize()). However, this
>> is actually before we have the engines defined and this turns out to be
>> a nop. The earliest we can do so is inside intel_engine_setup().
>>
>> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
>> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
>> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
>
> Documentation I found on this was poor, so I'd prefer a Tested-by: tag
> from somebody (wide platform coverage). But codewise it's consistent
> with existing usage.
>
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
AFAICT from the BSpec, only IVB-HSW have this scheme (there are at most
four such registers 0x4[0-3]94, with 0x4494 being something different).
Thereafter (BDW+) there's just ONE fault register (0x4094) replacing all
the separate ones, with a field showing which engine the rest of the
content relates to.
So pretty much all code using this definition will be wrong on GEN8+; it
will access undefined or nonexistent registers :-(
.Dave.
More information about the Intel-gfx
mailing list