drm/i915: take a reference to uncore in the engine and use it
A few advantages: - Prepares us for the planned split of display uncore from GT uncore - Improves our engine-centric view of the world in the engine code and allows us to avoid jumping back to dev_priv. - Allows us to wrap accesses to engine register in nice macros that automatically pick the right mmio base. Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-10-daniele.ceraolospurio@intel.com
This commit is contained in:

committed by
Chris Wilson

parent
97a04e0d07
commit
baba6e572b
@@ -1173,19 +1173,24 @@ static void i915_reset_device(struct drm_i915_private *i915,
|
||||
kobject_uevent_env(kobj, KOBJ_CHANGE, reset_done_event);
|
||||
}
|
||||
|
||||
static void clear_register(struct drm_i915_private *dev_priv, i915_reg_t reg)
|
||||
{
|
||||
I915_WRITE(reg, I915_READ(reg));
|
||||
}
|
||||
|
||||
void i915_clear_error_registers(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
u32 eir;
|
||||
|
||||
if (!IS_GEN(dev_priv, 2))
|
||||
I915_WRITE(PGTBL_ER, I915_READ(PGTBL_ER));
|
||||
clear_register(dev_priv, PGTBL_ER);
|
||||
|
||||
if (INTEL_GEN(dev_priv) < 4)
|
||||
I915_WRITE(IPEIR, I915_READ(IPEIR));
|
||||
clear_register(dev_priv, IPEIR(RENDER_RING_BASE));
|
||||
else
|
||||
I915_WRITE(IPEIR_I965, I915_READ(IPEIR_I965));
|
||||
clear_register(dev_priv, IPEIR_I965);
|
||||
|
||||
I915_WRITE(EIR, I915_READ(EIR));
|
||||
clear_register(dev_priv, EIR);
|
||||
eir = I915_READ(EIR);
|
||||
if (eir) {
|
||||
/*
|
||||
|
Reference in New Issue
Block a user