Thread (30 messages) 30 messages, 8 authors, 2016-04-26

[PATCH v5 3/9] dma-mapping: add dma_{map,unmap}_resource

From: Dan Williams <hidden>
Date: 2016-03-11 06:47:21
Also in: linux-arch, linux-iommu, linux-renesas-soc, lkml

On Thu, Mar 10, 2016 at 8:05 AM, Niklas S??derlund
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
Hi Christoph,

On 2016-03-07 23:38:47 -0800, Christoph Hellwig wrote:
quoted
Please add some documentation on where/how this should be used.  It's
not a very obvious interface.
Good idea, I have added the following to Documentation/DMA-API.txt and
folded it in to this patch. Do you feel it's adequate and do you know
anywhere else I should add documentation?
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt
index 45ef3f2..248556a 100644
--- a/Documentation/DMA-API.txt
+++ b/Documentation/DMA-API.txt
@@ -277,14 +277,29 @@ and <size> parameters are provided to do partial page mapping, it is
 recommended that you never use these unless you really know what the
 cache width is.

+dma_addr_t
+dma_map_resource(struct device *dev, phys_addr_t phys_addr, size_t size,
+                enum dma_data_direction dir, struct dma_attrs *attrs)
+
+Maps a MMIO region so it can be accessed by the device and returns the
+DMA address of the memory. API should only be used to map device MMIO,
+mapping of RAM is not permitted.
+
I think it is confusing to use the dma_ prefix for this peer-to-peer
mmio functionality.  dma_addr_t is a device's view of host memory.
Something like bus_addr_t bus_map_resource().  Doesn't this routine
also need the source device in addition to the target device?  The
resource address is from the perspective of the host cpu, it may be a
different address space in the view of two devices relative to each
other.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help