aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_irq.c
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2014-04-16 22:37:38 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-05-05 03:08:47 -0400
commit85f9b5f9c48abdbcbeacdd5a6daf76c63eba8c83 (patch)
tree8dcf5407c2fcf1dd89fb054780647c8ecdc5e7ef /drivers/gpu/drm/i915/i915_irq.c
parent845f74a701541662bf7d4880a0f4d492b28f2d18 (diff)
drm/i915:Handle the irq interrupt for the second BSD ring
Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
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");