aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index afa55199b829..2b3d852acb04 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1347,13 +1347,16 @@ static irqreturn_t gen8_gt_irq_handler(struct drm_device *dev,
1347 DRM_ERROR("The master control interrupt lied (GT0)!\n"); 1347 DRM_ERROR("The master control interrupt lied (GT0)!\n");
1348 } 1348 }
1349 1349
1350 if (master_ctl & GEN8_GT_VCS1_IRQ) { 1350 if (master_ctl & (GEN8_GT_VCS1_IRQ | GEN8_GT_VCS2_IRQ)) {
1351 tmp = I915_READ(GEN8_GT_IIR(1)); 1351 tmp = I915_READ(GEN8_GT_IIR(1));
1352 if (tmp) { 1352 if (tmp) {
1353 ret = IRQ_HANDLED; 1353 ret = IRQ_HANDLED;
1354 vcs = tmp >> GEN8_VCS1_IRQ_SHIFT; 1354 vcs = tmp >> GEN8_VCS1_IRQ_SHIFT;
1355 if (vcs & GT_RENDER_USER_INTERRUPT) 1355 if (vcs & GT_RENDER_USER_INTERRUPT)
1356 notify_ring(dev, &dev_priv->ring[VCS]); 1356 notify_ring(dev, &dev_priv->ring[VCS]);
1357 vcs = tmp >> GEN8_VCS2_IRQ_SHIFT;
1358 if (vcs & GT_RENDER_USER_INTERRUPT)
1359 notify_ring(dev, &dev_priv->ring[VCS2]);
1357 I915_WRITE(GEN8_GT_IIR(1), tmp); 1360 I915_WRITE(GEN8_GT_IIR(1), tmp);
1358 } else 1361 } else
1359 DRM_ERROR("The master control interrupt lied (GT1)!\n"); 1362 DRM_ERROR("The master control interrupt lied (GT1)!\n");