For enabling DMA on Mach64 I'll need to allocate two extra DMA buffers: a 
primary DMA buffer and a decription table buffer.

The way most cards (R128,MGA) do this is to map (on the DDX) pieces of AGP 
memory for these extra buffers, but this isn't possible with PCI only 
cards (i.e., without AGP/PCI GART) because the PCI memory is allocated 
just when the drmAddBufs call is made and not before with drmAGPAlloc 
drmScatterGatherAlloc calls.

For example, the Gamma driver manages to add more buffers (a page table in 
this case) by making extra calls to drmAddBufs for allocating them, and 
then the DRM picks them up in the end of the buffers array, but I find 
this way not very versatile and a little cumbersome when one has more than 
one extra buffer to add.

My question is if there is any other way to alloc PCI memory and why this 
assimetry of drmAddBufs behavior when dealing with non-GART memory?

(Obviously I think that there should be a specific DRM ioctl to alloc an 
DMA buffer, e.g., drmAlloc, to map it seperately...)

José Fonseca

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to