diff options
author | Dave Airlie <airlied@redhat.com> | 2013-02-07 20:08:10 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-02-07 20:08:10 -0500 |
commit | cd17ef4114ad5c514b17e6a0bb02a309ab90b692 (patch) | |
tree | 9c162eaa96931597b83e165702e3483ba5c6bb1e /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 67c964000236497e00c646472cd6b70b5c5109c8 (diff) | |
parent | 7d37beaaf3dbc6ff16f4d32a4dd6f8c557c6ab50 (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.c | 12 |
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 | ||
1230 | err_unmap: | 1228 | err_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 | } |