<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/dma/dmaengine.c, branch v3.12.10</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/dma/dmaengine.c?h=v3.12.10</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/dma/dmaengine.c?h=v3.12.10'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-09-10T20:37:36Z</updated>
<entry>
<title>Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma</title>
<updated>2013-09-10T20:37:36Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-10T20:37:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ec5b103ecfde929004b691f29183255aeeadecd5'/>
<id>urn:sha1:ec5b103ecfde929004b691f29183255aeeadecd5</id>
<content type='text'>
Pull slave-dmaengine updates from Vinod Koul:
 "This pull brings:
   - Andy's DW driver updates
   - Guennadi's sh driver updates
   - Pl08x driver fixes from Tomasz &amp; Alban
   - Improvements to mmp_pdma by Daniel
   - TI EDMA fixes by Joel
   - New drivers:
     - Hisilicon k3dma driver
     - Renesas rcar dma driver
  - New API for publishing slave driver capablities
  - Various fixes across the subsystem by Andy, Jingoo, Sachin etc..."

* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (94 commits)
  dma: edma: Remove limits on number of slots
  dma: edma: Leave linked to Null slot instead of DUMMY slot
  dma: edma: Find missed events and issue them
  ARM: edma: Add function to manually trigger an EDMA channel
  dma: edma: Write out and handle MAX_NR_SG at a given time
  dma: edma: Setup parameters to DMA MAX_NR_SG at a time
  dmaengine: pl330: use dma_set_max_seg_size to set the sg limit
  dmaengine: dma_slave_caps: remove sg entries
  dma: replace devm_request_and_ioremap by devm_ioremap_resource
  dma: ste_dma40: Fix potential null pointer dereference
  dma: ste_dma40: Remove duplicate const
  dma: imx-dma: Remove redundant NULL check
  dma: dmagengine: fix function names in comments
  dma: add driver for R-Car HPB-DMAC
  dma: k3dma: use devm_ioremap_resource() instead of devm_request_and_ioremap()
  dma: imx-sdma: Staticize sdma_driver_data structures
  pch_dma: Add MODULE_DEVICE_TABLE
  dmaengine: PL08x: Add cyclic transfer support
  dmaengine: PL08x: Fix reading the byte count in cctl
  dmaengine: PL08x: Add support for different maximum transfer size
  ...
</content>
</entry>
<entry>
<title>Merge tag 'dmaengine-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine</title>
<updated>2013-09-10T01:07:15Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-10T01:07:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=26b0332e30c7f93e780aaa054bd84e3437f84354'/>
<id>urn:sha1:26b0332e30c7f93e780aaa054bd84e3437f84354</id>
<content type='text'>
Pull dmaengine update from Dan Williams:
 "Collection of random updates to the core and some end-driver fixups
  for ioatdma and mv_xor:
   - NUMA aware channel allocation
   - Cleanup dmatest debugfs interface
   - ioat: make raid-support Atom only
   - mv_xor: big endian

  Aside from the top three commits these have all had some soak time in
  -next.  The top commit fixes a recent build breakage.

  It has been a long while since my last pull request, hopefully it does
  not show.  Thanks to Vinod for keeping an eye on drivers/dma/ this
  past year"

* tag 'dmaengine-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine:
  dmaengine: dma_sync_wait and dma_find_channel undefined
  MAINTAINERS: update email for Dan Williams
  dma: mv_xor: Fix incorrect error path
  ioatdma: silence GCC warnings
  dmaengine: make dma_channel_rebalance() NUMA aware
  dmaengine: make dma_submit_error() return an error code
  ioatdma: disable RAID on non-Atom platforms and reenable unaligned copies
  mv_xor: support big endian systems using descriptor swap feature
  mv_xor: use {readl, writel}_relaxed instead of __raw_{readl, writel}
  dmatest: print message on debug level in case of no error
  dmatest: remove IS_ERR_OR_NULL checks of debugfs calls
  dmatest: make module parameters writable
</content>
</entry>
<entry>
<title>Merge branch 'topic/of' into for-linus</title>
<updated>2013-09-02T12:10:46Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2013-09-02T12:10:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=592745e2f8afbaeafcf72645f0a2b0285644e091'/>
<id>urn:sha1:592745e2f8afbaeafcf72645f0a2b0285644e091</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dma: dmagengine: fix function names in comments</title>
<updated>2013-09-02T12:05:57Z</updated>
<author>
<name>Daniel Mack</name>
<email>zonque@gmail.com</email>
</author>
<published>2013-08-14T16:35:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6b9019a7f0b4958230df6563ccd585b858145991'/>
<id>urn:sha1:6b9019a7f0b4958230df6563ccd585b858145991</id>
<content type='text'>
Trivial fix for function name mismatches I stumbled over.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: make dma_channel_rebalance() NUMA aware</title>
<updated>2013-08-23T05:57:51Z</updated>
<author>
<name>Brice Goglin</name>
<email>Brice.Goglin@inria.fr</email>
</author>
<published>2013-08-19T09:43:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c4d27c4d024f5440497106bb2ae15e9e60f7099c'/>
<id>urn:sha1:c4d27c4d024f5440497106bb2ae15e9e60f7099c</id>
<content type='text'>
dma_channel_rebalance() currently distributes channels by processor ID.
These IDs often change with the BIOS, and the order isn't related to
the DMA channel list (related to PCI bus ids).
* On my SuperMicro dual E5 machine, first socket has processor IDs [0-7]
  (and [16-23] for hyperthreads), second socket has [8-15]+[24-31]
  =&gt; channels are properly allocated to local CPUs.
* On Dells R720 with same processors, first socket has even processor IDs,
  second socket has odd numbers
  =&gt; half the processors get channels on the remote socket, causing
     cross-NUMA traffic and lower DMA performance.

Change nth_chan() to return the channel with min table_count and in the
NUMA node of the given CPU, if any. If none, the (non-local) channel with
min table_count is returned. nth_chan() is therefore renamed into min_chan()
since we don't iterate until the nth channel anymore. In practice, the
behavior is the same because first channels are taken first and are then
ignored because they got an additional reference.

The new code has a slightly higher complexity since we always scan the
entire list of channels for finding the minimal table_count (instead
of stopping after N chans), and because we check whether the CPU is in the
DMA device locality mask. Overall we still have time complexity =
number of chans x number of processors. This rebalance is rarely used,
so this won't hurt.

On the above SuperMicro machine, channels are still allocated the same.
On the Dells, there are no locality issue anymore (MEMCPY channel X goes
to processor X and to its hyperthread sibling).

Signed-off-by: Brice Goglin &lt;Brice.Goglin@inria.fr&gt;
Signed-off-by: Dan Williams &lt;djbw@fb.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: fix - error: potential NULL dereference 'chan'</title>
<updated>2013-08-19T05:18:13Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2013-08-19T05:17:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d9a6c8f52d1039333bef6234126485409e8f7501'/>
<id>urn:sha1:d9a6c8f52d1039333bef6234126485409e8f7501</id>
<content type='text'>
commit 7bb587f4 "dmaengine: add interface of dma_get_slave_channel" introduced
the above error so fix it

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Suggested-by: Zhangfei Gao &lt;zhangfei.gao@linaro.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: add interface of dma_get_slave_channel</title>
<updated>2013-08-13T11:02:59Z</updated>
<author>
<name>Zhangfei Gao</name>
<email>zhangfei.gao@linaro.org</email>
</author>
<published>2013-06-28T12:39:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7bb587f4eef8f71ce589f360ab99bb54ab0fc85d'/>
<id>urn:sha1:7bb587f4eef8f71ce589f360ab99bb54ab0fc85d</id>
<content type='text'>
Suggested by Arnd, add dma_get_slave_channel interface
Dma host driver could get specific channel specificied by request line, rather than filter.

host example:
static struct dma_chan *xx_of_dma_simple_xlate(struct of_phandle_args *dma_spec,
		struct of_dma *ofdma)
{
	struct xx_dma_dev *d = ofdma-&gt;of_dma_data;
	unsigned int request = dma_spec-&gt;args[0];

	if (request &gt; d-&gt;dma_requests)
		return NULL;

	return dma_get_slave_channel(&amp;(d-&gt;chans[request].vc.chan));
}

probe:
of_dma_controller_register((&amp;op-&gt;dev)-&gt;of_node, xx_of_dma_simple_xlate, d);

Signed-off-by: Zhangfei Gao &lt;zhangfei.gao@linaro.org&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dma: convert dma_devclass to use dev_groups</title>
<updated>2013-07-25T23:34:39Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2013-07-24T22:05:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=58b267d3e3f3ce87c3e559e4c330c8c03e905f5e'/>
<id>urn:sha1:58b267d3e3f3ce87c3e559e4c330c8c03e905f5e</id>
<content type='text'>
The dev_attrs field of struct class is going away soon, dev_groups
should be used instead.  This converts the dma dma_devclass code to use
the correct field.

Cc: Dan Williams &lt;djbw@fb.com&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drivers/dma: remove unused support for MEMSET operations</title>
<updated>2013-07-03T23:07:42Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>b.zolnierkie@samsung.com</email>
</author>
<published>2013-07-03T22:05:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=48a9db462d99494583dad829969616ac90a8df4e'/>
<id>urn:sha1:48a9db462d99494583dad829969616ac90a8df4e</id>
<content type='text'>
There have never been any real users of MEMSET operations since they
have been introduced in January 2007 by commit 7405f74badf4 ("dmaengine:
refactor dmaengine around dma_async_tx_descriptor").  Therefore remove
support for them for now, it can be always brought back when needed.

[sebastian.hesselbarth@gmail.com: fix drivers/dma/mv_xor]
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Sebastian Hesselbarth &lt;sebastian.hesselbarth@gmail.com&gt;
Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Acked-by: Dan Williams &lt;djbw@fb.com&gt;
Cc: Tomasz Figa &lt;t.figa@samsung.com&gt;
Cc: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Cc: Olof Johansson &lt;olof@lixom.net&gt;
Cc: Kevin Hilman &lt;khilman@linaro.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'topic/of' into for-linus</title>
<updated>2013-05-02T16:22:26Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2013-05-02T16:22:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b2396f7984ea09e83d489cfca6d5da62cc22945a'/>
<id>urn:sha1:b2396f7984ea09e83d489cfca6d5da62cc22945a</id>
<content type='text'>
Conflicts:
	include/linux/dmaengine.h

Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
</feed>
