busdma sync problem
Harti Brandt
brandt at fokus.fraunhofer.de
Tue Jun 17 03:54:29 PDT 2003
Hi,
I have drivers for several cards that use shared host memory for
communication between the card and the driver. In most cases these memory
areas are used for queues: the driver writes on one end, the card reads on
the other or the other way around. The problem is, that with the current
bus_dma_sync call there is no way to correctly synchronize these queues,
because bus_dma_sync synchonizes always the complete map. NetBSD
bus_dma_sync has two additional parameters for that case: an offset and
a length describing the part of the map to synchronize. Unless I got the
above entirely wrong, I suppose we also need this functionality.
The question is how to introduce it. The easy way is to implement a new
function, say bus_dma_sync_size with the same signature as the NetBSD one.
The formally more correct way would be to just change our function and all
its callers. This would, of course, break the interface and I suppose it's
too late for 5.X.
So should I go the first way? Is there anybody who would be willing to
look at the patch?
harti
--
harti brandt,
http://www.fokus.fraunhofer.de/research/cc/cats/employees/hartmut.brandt/private
brandt at fokus.fraunhofer.de, harti at freebsd.org
More information about the freebsd-arch
mailing list