Messages in this thread |  | | | Date | Wed, 27 Jan 2010 14:19:44 +0900 | | Subject | Re: [RFC PATCH] dma: Add barrierless dma mapping/unmapping api | | From | FUJITA Tomonori <> |
| |
On Tue, 26 Jan 2010 12:11:34 -0800 Abhijeet Dharmapurikar <adharmap@codeaurora.org> wrote:
> FUJITA Tomonori wrote: > > On Tue, 26 Jan 2010 15:30:10 +1100 > > Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote: > > > >> On Mon, 2010-01-25 at 18:35 -0800, adharmap@codeaurora.org wrote: > >>> From: Abhijeet Dharmapurikar <adharmap@quicinc.com> > >>> > > > >> There are people nowadays putting AXI bridges and the whole ARM > >> paraphernalia of IP cores behind them on PowerPC cores for example and I > >> can see that happening with x86 as well. > >> > >> In your case, I believe your are fixing the wrong problem anyways. The > >> right approach would be instead to put all your buffer into an sglist > >> and use dma_map/unmap_sg(). > > > > Agreed again. That's exactly what I suggested before: > > > > http://marc.info/?l=linux-kernel&m=126294076917753&w=2 > > I somehow missed your post, my apologies. Agreed that dma_map/unmap_sg > would be the correct api to use here, however they still call the > dmac_.*_range to map buffers.
Hmm, sounds like arm's implementation issue. dma_map_sg API doesn't require such. dma_map_sg API gives what you want, do a sync only after mapping the last buffer.
> I could change those calls to do a barrier > only after mapping the last buffer. This would be much more cleaner > than introducing a .*_nobarrier API.
|  |