Re: [RFC] MMIO accessors & barriers documentation

From: Segher Boessenkool
Date: Tue Sep 12 2006 - 11:33:00 EST


prepare_to_read_dma_memory() is the operation that an ethernet driver's RX code wants. And this is _completely_ unrelated to MMIO. It just wants to make sure that the device and host are looking at the same data. Often this involves polling a DMA descriptor (or index, stored inside DMA-able memory) looking for changes.

flush_my_writes_to_dma_memory() is the operation that an ethernet driver's TX code wants, to precede either an MMIO "poke" or any other non-MMIO operation where the driver needs to be certain that the write is visible to the PCI device, should the PCI device desire to read that area of memory.

Because those are the operations, those should be the actual
function names, too (well, prefixed with pci_). Architectures
can implement them whatever way is appropriate, or perhaps default
to some ultra-strong semantics if they prefer; driver writers
should not have to know about the underlying mechanics (like why
we need which barriers).


Segher

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/