diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 5 |
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"); |