Re: [RFC] MMIO accessors & barriers documentation

Segher Boessenkool
2006-09-12T15:32:25Z

> 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