From: Michel <mic...@ii...> - 2001-08-17 21:24:02
|
Chris Ahna wrote: > > On Fri, Aug 17, 2001 at 09:29:20PM +0200, Benjamin Herrenschmidt wrote: > > Hrm... who exactly touch the AGP memory ? I beleive both the in-kernel > > DRM driver and the userland part. They must take care of it. Also, it > > looks like the r128 driver also reads from the AGP aperture for the > > ring pointer. That can be handled with a simple flush, the cache line > > must be properly invalidated, and any possible contention between > > card access and CPU access solved, which might even be impossible. > > I think you're right, bother user and kernel level code touches AGP > memory. However, it seems that a <driver>_flush_write_combine() is > issued every time the driver wants the card to pick up new data. On > most hardware, <driver>_flush_write_combine() will push all > writecombined transactions out to memory. It would probably be tough to > make this efficiently flush exactly the memory you need though. At least r128_flush_write_combine() is defined as mb(), does that serve the purpose on PPC? -- Earthling Michel Dänzer (MrCooper) \ Debian GNU/Linux (powerpc) developer CS student, Free Software enthusiast \ XFree86 and DRI project member |