<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/include/linux/dma-noncoherent.h, branch linux-5.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-12-13T20:06:18Z</updated>
<entry>
<title>dma-mapping: bypass indirect calls for dma-direct</title>
<updated>2018-12-13T20:06:18Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-12-06T21:39:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=356da6d0cde3323236977fce54c1f9612a742036'/>
<id>urn:sha1:356da6d0cde3323236977fce54c1f9612a742036</id>
<content type='text'>
Avoid expensive indirect calls in the fast path DMA mapping
operations by directly calling the dma_direct_* ops if we are using
the directly mapped DMA operations.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Jesper Dangaard Brouer &lt;brouer@redhat.com&gt;
Tested-by: Jesper Dangaard Brouer &lt;brouer@redhat.com&gt;
Tested-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
</entry>
<entry>
<title>dma-mapping: move the arm64 noncoherent alloc/free support to common code</title>
<updated>2018-12-01T17:07:11Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-11-04T19:29:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0c3b3171ceccb8830c2bb5adff1b4e9b204c1450'/>
<id>urn:sha1:0c3b3171ceccb8830c2bb5adff1b4e9b204c1450</id>
<content type='text'>
The arm64 codebase to implement coherent dma allocation for architectures
with non-coherent DMA is a good start for a generic implementation, given
that is uses the generic remap helpers, provides the atomic pool for
allocations that can't sleep and still is realtively simple and well
tested.  Move it to kernel/dma and allow architectures to opt into it
using a config symbol.  Architectures just need to provide a new
arch_dma_prep_coherent helper to writeback an invalidate the caches
for any memory that gets remapped for uncached access.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Will Deacon &lt;will.deacon@arm.com&gt;
Reviewed-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
</content>
</entry>
<entry>
<title>dma-mapping: consolidate the dma mmap implementations</title>
<updated>2018-09-20T07:01:16Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-09-11T06:55:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=58b0440663ec11372befb8ead0ee7099d8878590'/>
<id>urn:sha1:58b0440663ec11372befb8ead0ee7099d8878590</id>
<content type='text'>
The only functional differences (modulo a few missing fixes in the arch
code) is that architectures without coherent caches need a hook to
convert a virtual or dma address into a pfn, given that we don't have
the kernel linear mapping available for the otherwise easy virt_to_page
call.  As a side effect we can support mmap of the per-device coherent
area even on architectures not providing the callback, and we make
previous dangerous default methods dma_common_mmap actually save for
non-coherent architectures by rejecting it without the right helper.

In addition to that we need a hook so that some architectures can
override the protection bits when mmaping a dma coherent allocations.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Paul Burton &lt;paul.burton@mips.com&gt; # MIPS parts
</content>
</entry>
<entry>
<title>dma-mapping: merge direct and noncoherent ops</title>
<updated>2018-09-20T07:01:15Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-09-08T09:22:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bc3ec75de5452db59b683487867ba562b950708a'/>
<id>urn:sha1:bc3ec75de5452db59b683487867ba562b950708a</id>
<content type='text'>
All the cache maintainance is already stubbed out when not enabled,
but merging the two allows us to nicely handle the case where
cache maintainance is required for some devices, but not others.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Paul Burton &lt;paul.burton@mips.com&gt; # MIPS parts
</content>
</entry>
<entry>
<title>dma-mapping: move the dma_coherent flag to struct device</title>
<updated>2018-09-20T07:01:15Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-08-19T12:53:20Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f3ecc0ff0457eae93503792c6fc35921fa8a6204'/>
<id>urn:sha1:f3ecc0ff0457eae93503792c6fc35921fa8a6204</id>
<content type='text'>
Various architectures support both coherent and non-coherent dma on a
per-device basis.  Move the dma_noncoherent flag from the mips archdata
field to struct device proper to prepare the infrastructure for reuse on
other architectures.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Paul Burton &lt;paul.burton@mips.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>dma-noncoherent: add a arch_sync_dma_for_cpu_all hook</title>
<updated>2018-06-24T16:27:27Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-06-15T11:08:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=faef87723ace12e5f685437c1e68cbecb69a7a89'/>
<id>urn:sha1:faef87723ace12e5f685437c1e68cbecb69a7a89</id>
<content type='text'>
The MIPS bmips platform needs a global flush when transferring ownership
back to the CPU.  Add a hook for that to the dma-noncoherent
implementation.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Patchwork: https://patchwork.linux-mips.org/patch/19549/
Signed-off-by: Paul Burton &lt;paul.burton@mips.com&gt;
Cc: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Cc: Kevin Cernekee &lt;cernekee@gmail.com&gt;
Cc: Jiaxun Yang &lt;jiaxun.yang@flygoat.com&gt;
Cc: Tom Bogendoerfer &lt;tsbogend@alpha.franken.de&gt;
Cc: Huacai Chen &lt;chenhc@lemote.com&gt;
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
</content>
</entry>
<entry>
<title>dma-mapping: provide a generic dma-noncoherent implementation</title>
<updated>2018-05-19T06:46:12Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-04-16T13:24:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=782e6769c0df744e773dc2acff71c974b3bba4e9'/>
<id>urn:sha1:782e6769c0df744e773dc2acff71c974b3bba4e9</id>
<content type='text'>
Add a new dma_map_ops implementation that uses dma-direct for the
address mapping of streaming mappings, and which requires arch-specific
implemenations of coherent allocate/free.

Architectures have to provide flushing helpers to ownership trasnfers
to the device and/or CPU, and can provide optional implementations of
the coherent mmap functionality, and the cache_flush routines for
non-coherent long term allocations.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Tested-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
Acked-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
</feed>
