• Chris Wilson's avatar
    drm/i915: Check whitelist registers across resets · f4ecfbfc
    Chris Wilson authored
    Add a selftest to ensure that we restore the whitelisted registers after
    rewrite the registers everytime they might be scrubbed, e.g. module
    load, reset and resume. For the other volatile workaround registers, we
    export their presence via debugfs and check in igt/gem_workarounds.
    However, we don't export the whitelist and rather than do so, let's test
    them directly in the kernel.
    
    The test we use is to read the registers back from the CS (this helps us
    be sure that the registers will be valid for MI_LRI etc). In order to
    generate the expected list, we split intel_whitelist_workarounds_emit
    into two phases, the first to build the list and the second to apply.
    Inside the test, we only build the list and then check that list against
    the hw.
    
    v2: Filter out pre-gen8 as they do not have RING_NONPRIV.
    v3: Drop unused engine parameter, no plans to use it now or future.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Oscar Mateo <oscar.mateo@intel.com>
    Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Reviewed-by: default avatarOscar Mateo <oscar.mateo@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180414122754.569-1-chris@chris-wilson.co.uk
    f4ecfbfc
intel_workarounds.c 5.97 KB