Displaying 1 result from an estimated 1 matches for "dma_wait_ring_wrap".
2009 Aug 20
4
[PATCH 1/4] drm/nouveau: refactor nouveau_dma_wait()
...rs/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c
index b1f3a71..b787651 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dma.c
@@ -115,14 +115,43 @@ READ_GET(struct nouveau_channel *chan, uint32_t *get)
return true;
}
+static int
+dma_wait_ring_wrap(struct nouveau_channel *chan, int size, uint32_t get,
+ int *timeout)
+{
+ /* Emit jump to the start of the ring buffer. */
+ OUT_RING(chan, 0x20000000 | chan->pushbuf_base);
+
+ if (get <= NOUVEAU_DMA_SKIPS) {
+ /* corner case - will be idle */
+ if (chan->dma.put <= NOUVEAU_DMA_...