Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jun 2003 12:54:26 +0200 (CEST)
From:      Harti Brandt <brandt@fokus.fraunhofer.de>
To:        arch@freebsd.org
Subject:   busdma sync problem
Message-ID:  <20030617124004.Y77677@beagle.fokus.fraunhofer.de>

next in thread | raw e-mail | index | archive | help

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@fokus.fraunhofer.de, harti@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030617124004.Y77677>