diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2014-04-16 22:37:38 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-05-05 03:08:47 -0400 |
commit | 85f9b5f9c48abdbcbeacdd5a6daf76c63eba8c83 (patch) | |
tree | 8dcf5407c2fcf1dd89fb054780647c8ecdc5e7ef /drivers/gpu/drm/i915/i915_irq.c | |
parent | 845f74a701541662bf7d4880a0f4d492b28f2d18 (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.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"); |