summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_irq.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2017-08-18 21:37:02 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2017-09-14 17:18:54 +0300
commit5190707e7a4fc701e94cd7e152d15dbba90b63ff (patch)
tree82da0ee0283e917e536922bc96118537499bdb80 /drivers/gpu/drm/i915/i915_irq.c
parentaf722d280e8551e918b22e96f487824935470c9a (diff)
downloadop-kernel-dev-5190707e7a4fc701e94cd7e152d15dbba90b63ff.zip
op-kernel-dev-5190707e7a4fc701e94cd7e152d15dbba90b63ff.tar.gz
drm/i915: Gen3 HWSTAM is actually 32 bits
Bspec claims that HWSTAM is only 16 bits on gen3, but the other interrupts registers are 32 bits and there are 18 valid interrupt bits. Hence a 16 bit HWSTAM wouldn't be able to contain all the bits, so it seems the spec is incorrect about the size of the register. And indeed I can clear bits 16 and 17 just fine with a 32 bit write. So let's adjust the code to treat the register as 32 bits. Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170818183705.27850-14-ville.syrjala@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 26569a0..003a928 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -3755,7 +3755,7 @@ static void i915_irq_preinstall(struct drm_device * dev)
i9xx_pipestat_irq_reset(dev_priv);
- I915_WRITE16(HWSTAM, 0xeffe);
+ I915_WRITE(HWSTAM, 0xffffeffe);
GEN3_IRQ_RESET();
}
@@ -3862,7 +3862,7 @@ static void i915_irq_uninstall(struct drm_device * dev)
i9xx_pipestat_irq_reset(dev_priv);
- I915_WRITE16(HWSTAM, 0xffff);
+ I915_WRITE(HWSTAM, 0xffffffff);
GEN3_IRQ_RESET();
}
OpenPOWER on IntegriCloud