On Tue, Mar 04, 2003 at 09:18:40PM +0100, Benjamin Herrenschmidt wrote: > > The purpose of this barrier isn not to ensure sequential access on > either the MMIO mapping (card registers) nor the actual ring buffer > memory mapping (could be IOs, or just real memory with PCI GART). > > It's here to actually sync those 2 between each other. That is make > sure the writes to the ring are completed before the chip is actually > kicked. This is a nasty corner case often overlooked in drivers, see > a mail I just posted to lkml '[RFC] IO vs. DMA and barriers'
Ooo. Quite different. So that sounds like I'll want DRM_READMEMORYBARRIER() to call ddi_dma_sync() [ you've probably never seen that function before in your life, but I think it's a heck of a lot more self-documenting than "DRM_READMEMORYBARRIER()" , "mb()", or even "bus_space_barrier()" ;-) ] ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel