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>