From: Philip B. <ph...@bo...> - 2003-10-28 03:28:46
|
On Mon, Oct 27, 2003 at 06:13:32PM -0800, Linus Torvalds wrote: >.. > So the thing should really just have > - discovery and attach/detach > - interrupt event notification (and it can't just be "an interrupt > happened" - the interrupt driver actually has to know enough to ACK the > interrupt, so that we can tell user space that an interrupt happened > without having to disable the interrupt until the event goes away) > - serialization (ie a lock) and waiting for events ("engine idle" or > "command queue less than half full") > - DMA arbitration and setup. >[....] > So the low-level driver wouldn't know about palettes or cursors or any > "high-level" concepts like that. It would have a few locks to make sure > that the users that try to access the things don't stop on each other, > nothing more (maybe the locks themselves would be grouped into "palette > lock" vs "cursor lock" vs "DMA engine lock" since hardware may be threaded > enough to allow it, but the point is that the low-level driver wouldn't > actually _do_ anything, it only allows others to do what they want without > stomping on each others toes). Sounds like a good idea. Simple Is Better. Now, would that "DMA arbitration" include "submit a chunk o dma memory for GPU processing", or would it just allow [whatever] to map the registers, and basically say, "I'll tell you when something completes (aka sends an interrupt) but it's up to you to START it" |