<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/dma, branch v4.6.1</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.6.1</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.6.1'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2016-04-16T17:22:03Z</updated>
<entry>
<title>Merge branch 'fix/edma' into fixes</title>
<updated>2016-04-16T17:22:03Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-04-16T17:22:03Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=956e6c8e18fa666ccc118c85fb32f92ebde3baf1'/>
<id>urn:sha1:956e6c8e18fa666ccc118c85fb32f92ebde3baf1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'fix/xilinx' into fixes</title>
<updated>2016-04-16T17:15:26Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-04-16T17:15:26Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=1cc3334e2e0263b02163a9edd43d0448ac00770c'/>
<id>urn:sha1:1cc3334e2e0263b02163a9edd43d0448ac00770c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'fix/omap' into fixes</title>
<updated>2016-04-16T17:15:17Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-04-16T17:15:17Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4bd613596bc8572dee8a0683a24f6f931841b695'/>
<id>urn:sha1:4bd613596bc8572dee8a0683a24f6f931841b695</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'fix/hsu' into fixes</title>
<updated>2016-04-16T17:14:32Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-04-16T17:14:32Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=09c505ced310016ff064d827f053a78988a8bb1d'/>
<id>urn:sha1:09c505ced310016ff064d827f053a78988a8bb1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dmaengine: dw: fix master selection</title>
<updated>2016-04-13T16:04:31Z</updated>
<author>
<name>Andy Shevchenko</name>
<email>andriy.shevchenko@linux.intel.com</email>
</author>
<published>2016-04-08T13:22:17Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3fe6409c23e2bee4b2b1b6d671d2da8daa15271c'/>
<id>urn:sha1:3fe6409c23e2bee4b2b1b6d671d2da8daa15271c</id>
<content type='text'>
The commit 895005202987 ("dmaengine: dw: apply both HS interfaces and remove
slave_id usage") cleaned up the code to avoid usage of depricated slave_id
member of generic slave configuration.

Meanwhile it broke the master selection by removing important call to
dwc_set_masters() in -&gt;device_alloc_chan_resources() which copied masters from
custom slave configuration to the internal channel structure.

Everything works until now since there is no customized connection of
DesignWare DMA IP to the bus, i.e. one bus and one or more masters are in use.
The configurations where 2 masters are connected to the different masters are
not working anymore. We are expecting one user of such configuration and need
to select masters properly. Besides that it is obviously a performance
regression since only one master is in use in multi-master configuration.

Select masters in accordance with what user asked for. Keep this patch in a form
more suitable for back porting.

We are safe to take necessary data in -&gt;device_alloc_chan_resources() because
we don't support generic slave configuration embedded into custom one, and thus
the only way to provide such is to use the parameter to a filter function which
is called exactly before channel resource allocation.

While here, replase BUG_ON to less noisy dev_warn() and prevent channel
allocation in case of error.

Fixes: 895005202987 ("dmaengine: dw: apply both HS interfaces and remove slave_id usage")
Cc: stable@vger.kernel.org
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: edma: special case slot limit workaround</title>
<updated>2016-04-06T14:29:49Z</updated>
<author>
<name>John Ogness</name>
<email>john.ogness@linutronix.de</email>
</author>
<published>2016-04-06T10:01:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a482f4e0d848d0914ff119ef32fe1d11434d570c'/>
<id>urn:sha1:a482f4e0d848d0914ff119ef32fe1d11434d570c</id>
<content type='text'>
Currently drivers are limited to 19 slots for cyclic transfers.
However, if the DMA burst size is the same as the period size,
the period size can be changed to the full buffer size and
intermediate interrupts activated. Since intermediate interrupts
will trigger for each burst and the burst size is the same as
the period size, the driver will get interrupts each period as
expected. This has the benefit of allowing the functionality of
many more slots, but only uses 2 slots.

This workaround is only active if more than 19 slots are needed
and the burst size matches the period size.

Acked-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Signed-off-by: John Ogness &lt;john.ogness@linutronix.de&gt;
Signed-off-by: Sekhar Nori &lt;nsekhar@ti.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: edma: Remove dynamic TPTC power management feature</title>
<updated>2016-04-06T14:29:49Z</updated>
<author>
<name>Peter Ujfalusi</name>
<email>peter.ujfalusi@ti.com</email>
</author>
<published>2016-04-06T10:01:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=23f49fd2ea9bc8e1c8cff0126cd71b071ea9e91f'/>
<id>urn:sha1:23f49fd2ea9bc8e1c8cff0126cd71b071ea9e91f</id>
<content type='text'>
The dynamic or on demand pm_runtime does not work correctly on am335x and
am437x due to interference with hwmod.
Fall back using the pm_runtime usage as it was in the old driver stack,
meaning that at probe time call pm_runtime_enable() and
pm_runtime_get_sync() for the TPTCs as well.

Fixes: 1be5336bc7ba ("dmaengine: edma: New device tree binding")

Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Reported-by: Tero Kristo &lt;t-kristo@ti.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: vdma: don't crash when bad channel is requested</title>
<updated>2016-04-05T18:10:57Z</updated>
<author>
<name>Franck Jullien</name>
<email>franck.jullien@odyssee-systemes.fr</email>
</author>
<published>2016-03-22T10:52:22Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=330ed4da2c8eb821e70b1366a7af53eb1c7421fb'/>
<id>urn:sha1:330ed4da2c8eb821e70b1366a7af53eb1c7421fb</id>
<content type='text'>
When client request a non existing channel from of_dma_xilinx_xlate
we get a NULL pointer dereferencing. This patch fix this problem.

Signed-off-by: Franck Jullien &lt;franck.jullien@odyssee-systemes.fr&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: omap-dma: Do not suppress interrupts for memcpy</title>
<updated>2016-04-05T16:09:42Z</updated>
<author>
<name>Peter Ujfalusi</name>
<email>peter.ujfalusi@ti.com</email>
</author>
<published>2016-04-05T12:20:21Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b96c033cc8fa6484b1771d43e2fcce61e1fa5097'/>
<id>urn:sha1:b96c033cc8fa6484b1771d43e2fcce61e1fa5097</id>
<content type='text'>
If the client queues up more transfers the driver will not able to move to
the next transfer without knowing that the previous descriptor is
completed.

Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: omap-dma: Fix polled channel completion detection and handling</title>
<updated>2016-04-05T16:09:42Z</updated>
<author>
<name>Peter Ujfalusi</name>
<email>peter.ujfalusi@ti.com</email>
</author>
<published>2016-04-05T12:20:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=689d3c5ecc9e2eac714d32ca152b72988bc2a67b'/>
<id>urn:sha1:689d3c5ecc9e2eac714d32ca152b72988bc2a67b</id>
<content type='text'>
When based on the CCR_ENABLE bit the channel is stopped we should not call
omap_dma_callback(), only change the return value to DMA_COMPLETE. Client
drivers will do the right thing to clean up the channel after the transfer
has been completed.
Check the CCR_ENABLE only if the channel is running and not paused since
pause in sDMA means that the channel is stopped.
This will fix one hard to reproduce race condition when the channel is
terminated during transfer (affecting cyclic operation).

Fixes: 1a7cf7b26f25 ("dmaengine: omap-dma: Handle cases when the channel is polled for completion")

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