On Mon, 2003-02-03 at 17:34, Alan Cox wrote:
> On Mon, 2003-02-03 at 15:02, Keith Whitwell wrote:
> > >  
> > > -#define COMMIT_RING() do {                                           \
> > > - RADEON_WRITE( RADEON_CP_RB_WPTR, dev_priv->ring.tail );             \
> > > +#define COMMIT_RING() do {                                               \
> > > + /* read from PCI bus to ensure correct posting */               \
> > > + RADEON_READ( RADEON_CP_RB_WPTR );                               \
> > > + RADEON_WRITE( RADEON_CP_RB_WPTR, dev_priv->ring.tail );         \
> > > + RADEON_READ( RADEON_CP_RB_WPTR );                               \
> > >  } while (0)
> > 
> > Ouch.  Put a conditional around that at least, so that not everybody suffers...
> 
> PCI posting applies to all platforms. However I'm trying to understand what this
> is trying to do. The final read has an effect in that it ensures that the WPTR is
> written not left posted for an undefined time. What does the previous one achieve.
> Is there some kind of synchronization requirement against the GART/main memory ?

That's my understanding, we need to make sure the chip reads from the
ring what we wrote to it.


-- 
Earthling Michel D�nzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to