diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-15 00:19:54 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-15 00:19:54 -0500 |
commit | 049ffa8ab33a63b3bff672d1a0ee6a35ad253fe8 (patch) | |
tree | 70f4c684818b1c9871fa800088427e40d260592e /drivers/gpu/drm/i915/intel_ringbuffer.h | |
parent | c681427e5ca22925fcc1be76a2e260a11e0a8498 (diff) | |
parent | 0846c728e20a0cd1e43fb75a3015f3b176a26466 (diff) |
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
"This is a combo of -next and some -fixes that came in in the
intervening time.
Highlights:
New drivers:
ARM Armada driver for Marvell Armada 510 SOCs
Intel:
Broadwell initial support under a default off switch,
Stereo/3D HDMI mode support
Valleyview improvements
Displayport improvements
Haswell fixes
initial mipi dsi panel support
CRC support for debugging
build with CONFIG_FB=n
Radeon:
enable DPM on a number of GPUs by default
secondary GPU powerdown support
enable HDMI audio by default
Hawaii support
Nouveau:
dynamic pm code infrastructure reworked, does nothing major yet
GK208 modesetting support
MSI fixes, on by default again
PMPEG improvements
pageflipping fixes
GMA500:
minnowboard SDVO support
VMware:
misc fixes
MSM:
prime, plane and rendernodes support
Tegra:
rearchitected to put the drm driver into the drm subsystem.
HDMI and gr2d support for tegra 114 SoC
QXL:
oops fix, and multi-head fixes
DRM core:
sysfs lifetime fixes
client capability ioctl
further cleanups to device midlayer
more vblank timestamp fixes"
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (789 commits)
drm/nouveau: do not map evicted vram buffers in nouveau_bo_vma_add
drm/nvc0-/gr: shift wrapping bug in nvc0_grctx_generate_r406800
drm/nouveau/pwr: fix missing mutex unlock in a failure path
drm/nv40/therm: fix slowing down fan when pstate undefined
drm/nv11-: synchronise flips to vblank, unless async flip requested
drm/nvc0-: remove nasty fifo swmthd hack for flip completion method
drm/nv10-: we no longer need to create nvsw object on user channels
drm/nouveau: always queue flips relative to kernel channel activity
drm/nouveau: there is no need to reserve/fence the new fb when flipping
drm/nouveau: when bailing out of a pushbuf ioctl, do not remove previous fence
drm/nouveau: allow nouveau_fence_ref() to be a noop
drm/nvc8/mc: msi rearm is via the nvc0 method
drm/ttm: Fix vma page_prot bit manipulation
drm/vmwgfx: Fix a couple of compile / sparse warnings and errors
drm/vmwgfx: Resource evict fixes
drm/edid: compare actual vrefresh for all modes for quirks
drm: shmob_drm: Convert to clk_prepare/unprepare
drm/nouveau: fix 32-bit build
drm/i915/opregion: fix build error on CONFIG_ACPI=n
Revert "drm/radeon/audio: don't set speaker allocation on DCE4+"
...
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index 68b1ca974d59..71a73f4fe252 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h | |||
@@ -34,6 +34,7 @@ struct intel_hw_status_page { | |||
34 | #define I915_WRITE_IMR(ring, val) I915_WRITE(RING_IMR((ring)->mmio_base), val) | 34 | #define I915_WRITE_IMR(ring, val) I915_WRITE(RING_IMR((ring)->mmio_base), val) |
35 | 35 | ||
36 | enum intel_ring_hangcheck_action { | 36 | enum intel_ring_hangcheck_action { |
37 | HANGCHECK_IDLE = 0, | ||
37 | HANGCHECK_WAIT, | 38 | HANGCHECK_WAIT, |
38 | HANGCHECK_ACTIVE, | 39 | HANGCHECK_ACTIVE, |
39 | HANGCHECK_KICK, | 40 | HANGCHECK_KICK, |
@@ -140,7 +141,8 @@ struct intel_ring_buffer { | |||
140 | /** | 141 | /** |
141 | * Do we have some not yet emitted requests outstanding? | 142 | * Do we have some not yet emitted requests outstanding? |
142 | */ | 143 | */ |
143 | u32 outstanding_lazy_request; | 144 | struct drm_i915_gem_request *preallocated_lazy_request; |
145 | u32 outstanding_lazy_seqno; | ||
144 | bool gpu_caches_dirty; | 146 | bool gpu_caches_dirty; |
145 | bool fbc_dirty; | 147 | bool fbc_dirty; |
146 | 148 | ||
@@ -237,7 +239,12 @@ static inline void intel_ring_emit(struct intel_ring_buffer *ring, | |||
237 | iowrite32(data, ring->virtual_start + ring->tail); | 239 | iowrite32(data, ring->virtual_start + ring->tail); |
238 | ring->tail += 4; | 240 | ring->tail += 4; |
239 | } | 241 | } |
240 | void intel_ring_advance(struct intel_ring_buffer *ring); | 242 | static inline void intel_ring_advance(struct intel_ring_buffer *ring) |
243 | { | ||
244 | ring->tail &= ring->size - 1; | ||
245 | } | ||
246 | void __intel_ring_advance(struct intel_ring_buffer *ring); | ||
247 | |||
241 | int __must_check intel_ring_idle(struct intel_ring_buffer *ring); | 248 | int __must_check intel_ring_idle(struct intel_ring_buffer *ring); |
242 | void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno); | 249 | void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno); |
243 | int intel_ring_flush_all_caches(struct intel_ring_buffer *ring); | 250 | int intel_ring_flush_all_caches(struct intel_ring_buffer *ring); |
@@ -258,8 +265,8 @@ static inline u32 intel_ring_get_tail(struct intel_ring_buffer *ring) | |||
258 | 265 | ||
259 | static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring) | 266 | static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring) |
260 | { | 267 | { |
261 | BUG_ON(ring->outstanding_lazy_request == 0); | 268 | BUG_ON(ring->outstanding_lazy_seqno == 0); |
262 | return ring->outstanding_lazy_request; | 269 | return ring->outstanding_lazy_seqno; |
263 | } | 270 | } |
264 | 271 | ||
265 | static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno) | 272 | static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno) |