aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-02-07 20:08:10 -0500
committerDave Airlie <airlied@redhat.com>2013-02-07 20:08:10 -0500
commitcd17ef4114ad5c514b17e6a0bb02a309ab90b692 (patch)
tree9c162eaa96931597b83e165702e3483ba5c6bb1e /drivers/gpu/drm/i915/intel_ringbuffer.c
parent67c964000236497e00c646472cd6b70b5c5109c8 (diff)
parent7d37beaaf3dbc6ff16f4d32a4dd6f8c557c6ab50 (diff)
Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Daniel writes: "Probably the last feature pull for 3.9, there's some fixes outstanding thought that I'd like to sneak in. And maybe 3.8 takes a bit longer ... Anyway, highlights of this pull: - Kill the horrible IS_DISPLAYREG hack to handle the mmio offset movements on vlv, big thanks to Ville. - Dynamic power well support for Haswell, shaves away a bit when only using the eDP port on pipe A (Paulo). Plus unclaimed register fixes uncovered by this. - Clarifications of the gpu hang/reset state transitions, hopefully fixing a few spurious -EIO deaths in userspace. - Haswell ELD fixes. - Some more (pp)gtt cleanups from Ben. - A few smaller things all over. Plus all the stuff from the previous rather small pull request: - Broadcast RBG improvements and reduced color range fixes from Ville. - Ben is on a "kill legacy gtt code for good" spree, first pile of patches included. - No-relocs and bo lut improvements for faster execbuf from Chris. - Some refactorings from Imre." * tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel: (101 commits) GPU/i915: Fix acpi_bus_get_device() check in drivers/gpu/drm/i915/intel_opregion.c drm/i915: Set the SR01 "screen off" bit in i915_redisable_vga() too drm/i915: Kill IS_DISPLAYREG() drm/i915: Introduce i915_vgacntrl_reg() drm/i915: gen6_gmch_remove can be static drm/i915: dynamic Haswell display power well support drm/i915: check the power down well on assert_pipe() drm/i915: don't send DP "idle" pattern before "normal" on HSW PORT_A drm/i915: don't run hsw power well code on !hsw drm/i915: kill cargo-culted locking from power well code drm/i915: Only run idle processing from i915_gem_retire_requests_worker drm/i915: Fix CAGF for HSW drm/i915: Reclaim GTT space for failed PPGTT drm/i915: remove intel_gtt structure drm/i915: Add probe and remove to the gtt ops drm/i915: extract hw ppgtt setup/cleanup code drm/i915: pte_encode is gen6+ drm/i915: vfuncs for ppgtt drm/i915: vfuncs for gtt_clear_range/insert_entries drm/i915: Error state should print /sys/kernel/debug ...
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 59e02691baf3..dc6ae2fa1cee 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1203,7 +1203,7 @@ static int intel_init_ring_buffer(struct drm_device *dev,
1203 goto err_unpin; 1203 goto err_unpin;
1204 1204
1205 ring->virtual_start = 1205 ring->virtual_start =
1206 ioremap_wc(dev_priv->mm.gtt->gma_bus_addr + obj->gtt_offset, 1206 ioremap_wc(dev_priv->gtt.mappable_base + obj->gtt_offset,
1207 ring->size); 1207 ring->size);
1208 if (ring->virtual_start == NULL) { 1208 if (ring->virtual_start == NULL) {
1209 DRM_ERROR("Failed to map ringbuffer.\n"); 1209 DRM_ERROR("Failed to map ringbuffer.\n");
@@ -1223,8 +1223,6 @@ static int intel_init_ring_buffer(struct drm_device *dev,
1223 if (IS_I830(ring->dev) || IS_845G(ring->dev)) 1223 if (IS_I830(ring->dev) || IS_845G(ring->dev))
1224 ring->effective_size -= 128; 1224 ring->effective_size -= 128;
1225 1225
1226 intel_ring_init_seqno(ring, dev_priv->last_seqno);
1227
1228 return 0; 1226 return 0;
1229 1227
1230err_unmap: 1228err_unmap:
@@ -1371,7 +1369,8 @@ static int ring_wait_for_space(struct intel_ring_buffer *ring, int n)
1371 1369
1372 msleep(1); 1370 msleep(1);
1373 1371
1374 ret = i915_gem_check_wedge(dev_priv, dev_priv->mm.interruptible); 1372 ret = i915_gem_check_wedge(&dev_priv->gpu_error,
1373 dev_priv->mm.interruptible);
1375 if (ret) 1374 if (ret)
1376 return ret; 1375 return ret;
1377 } while (!time_after(jiffies, end)); 1376 } while (!time_after(jiffies, end));
@@ -1460,7 +1459,8 @@ int intel_ring_begin(struct intel_ring_buffer *ring,
1460 drm_i915_private_t *dev_priv = ring->dev->dev_private; 1459 drm_i915_private_t *dev_priv = ring->dev->dev_private;
1461 int ret; 1460 int ret;
1462 1461
1463 ret = i915_gem_check_wedge(dev_priv, dev_priv->mm.interruptible); 1462 ret = i915_gem_check_wedge(&dev_priv->gpu_error,
1463 dev_priv->mm.interruptible);
1464 if (ret) 1464 if (ret)
1465 return ret; 1465 return ret;
1466 1466
@@ -1491,7 +1491,7 @@ void intel_ring_advance(struct intel_ring_buffer *ring)
1491 struct drm_i915_private *dev_priv = ring->dev->dev_private; 1491 struct drm_i915_private *dev_priv = ring->dev->dev_private;
1492 1492
1493 ring->tail &= ring->size - 1; 1493 ring->tail &= ring->size - 1;
1494 if (dev_priv->stop_rings & intel_ring_flag(ring)) 1494 if (dev_priv->gpu_error.stop_rings & intel_ring_flag(ring))
1495 return; 1495 return;
1496 ring->write_tail(ring, ring->tail); 1496 ring->write_tail(ring, ring->tail);
1497} 1497}