Re: Possible discrepancy regarding streaming DMA mappings in DMA-mapping.txt?

From: David S. Miller (davem@redhat.com)
Date: Fri May 24 2002 - 00:59:27 EST


   From: William Jhun <wjhun@ayrnetworks.com>
   Date: Thu, 23 May 2002 16:24:25 -0700
   
   However, shouldn't pci_dma_sync_*() be called *before* each
   PCI_DMA_TODEVICE DMA transfer (after the CPU write, of course) and
   *after* each PCI_DMA_FROMDEVICE DMA transfer (before CPU access)? And,
   of course, before and after a "bidirectional" DMA, if appropriate.
   
CPU owns the data before pci_map_{sg,single}(), afterwards device
owns the data. If CPU wants ownership again, it must wait for
device to finish with the data when do a pci_sync_{sg,single}().

You are thinking about CPU cache flushing, and that is a detail
handled transparently to the DMA apis. If you follow the rules
described in the documentation and in my previous paragraph,
the ARCH specific code does the right thing for you.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri May 31 2002 - 22:00:12 EST