drm/nv50: add a memory barrier to pushbuf submission

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Thursday, April 1, 2010 - 10:59 am

Gitweb:     http://git.kernel.org/linus/ce48fa93a6f5cadd4141a921dfb4129c8850374e
Commit:     ce48fa93a6f5cadd4141a921dfb4129c8850374e
Parent:     81441570c9cbf453891d90f5725adbbfe5a9cc69
Author:     Maarten Maathuis <madman2003@gmail.com>
AuthorDate: Thu Feb 25 20:00:38 2010 +0100
Committer:  Ben Skeggs <bskeggs@redhat.com>
CommitDate: Wed Mar 10 16:07:35 2010 +1000

    drm/nv50: add a memory barrier to pushbuf submission
    
    - This is useful for vram pushbuffers that are write combined.
    - pre-nv50 has one too (in WRITE_PUT).
    
    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_dma.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c
index c8482a1..65c441a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dma.c
@@ -190,6 +190,11 @@ nv50_dma_push(struct nouveau_channel *chan, struct nouveau_bo *bo,
 	nouveau_bo_wr32(pb, ip++, upper_32_bits(offset) | length << 8);
 
 	chan->dma.ib_put = (chan->dma.ib_put + 1) & chan->dma.ib_max;
+
+	DRM_MEMORYBARRIER();
+	/* Flush writes. */
+	nouveau_bo_rd32(pb, 0);
+
 	nvchan_wr32(chan, 0x8c, chan->dma.ib_put);
 	chan->dma.ib_free--;
 }
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
drm/nv50: add a memory barrier to pushbuf submission, Linux Kernel Mailing ..., (Thu Apr 1, 10:59 am)