Re-post of the previous set, but using writew() instead of writew_relaxed(). writew_relaxed() is not part of the MMIO accessor API, and so should not be used in drivers which may be used on other architectures. Also copying Dan for his review of the DMA engine use.