<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/dma/at_xdmac.c, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-06-23T00:03:27Z</updated>
<entry>
<title>dmaengine: at_xdmac: lock fixes</title>
<updated>2015-06-23T00:03:27Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2015-06-08T08:33:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5ae9b56bafba1141436dc5a37476c7cdb871ca2'/>
<id>urn:sha1:a5ae9b56bafba1141436dc5a37476c7cdb871ca2</id>
<content type='text'>
commit 4c374fc7ce944024936a6d9804daec85207d9384 upstream.

Using _bh variant for spin locks causes this kind of warning:
Starting logging: ------------[ cut here ]------------
WARNING: CPU: 0 PID: 3 at /ssd_drive/linux/kernel/softirq.c:151
__local_bh_enable_ip+0xe8/0xf4()
Modules linked in:
CPU: 0 PID: 3 Comm: ksoftirqd/0 Not tainted 4.1.0-rc2+ #94
Hardware name: Atmel SAMA5
[&lt;c0013c04&gt;] (unwind_backtrace) from [&lt;c00118a4&gt;] (show_stack+0x10/0x14)
[&lt;c00118a4&gt;] (show_stack) from [&lt;c001bbcc&gt;]
(warn_slowpath_common+0x80/0xac)
[&lt;c001bbcc&gt;] (warn_slowpath_common) from [&lt;c001bc14&gt;]
(warn_slowpath_null+0x1c/0x24)
[&lt;c001bc14&gt;] (warn_slowpath_null) from [&lt;c001e28c&gt;]
(__local_bh_enable_ip+0xe8/0xf4)
[&lt;c001e28c&gt;] (__local_bh_enable_ip) from [&lt;c01fdbd0&gt;]
(at_xdmac_device_terminate_all+0xf4/0x100)
[&lt;c01fdbd0&gt;] (at_xdmac_device_terminate_all) from [&lt;c02221a4&gt;]
(atmel_complete_tx_dma+0x34/0xf4)
[&lt;c02221a4&gt;] (atmel_complete_tx_dma) from [&lt;c01fe4ac&gt;]
(at_xdmac_tasklet+0x14c/0x1ac)
[&lt;c01fe4ac&gt;] (at_xdmac_tasklet) from [&lt;c001de58&gt;]
(tasklet_action+0x68/0xb4)
[&lt;c001de58&gt;] (tasklet_action) from [&lt;c001dfdc&gt;]
(__do_softirq+0xfc/0x238)
[&lt;c001dfdc&gt;] (__do_softirq) from [&lt;c001e140&gt;] (run_ksoftirqd+0x28/0x34)
[&lt;c001e140&gt;] (run_ksoftirqd) from [&lt;c0033a3c&gt;]
(smpboot_thread_fn+0x138/0x18c)
[&lt;c0033a3c&gt;] (smpboot_thread_fn) from [&lt;c0030e7c&gt;] (kthread+0xdc/0xf0)
[&lt;c0030e7c&gt;] (kthread) from [&lt;c000f480&gt;] (ret_from_fork+0x14/0x34)
---[ end trace b57b14a99c1d8812 ]---

It comes from the fact that devices can called some code from the DMA
controller with irq disabled. _bh variant is not intended to be used in
this case since it can enable irqs. Switch to irqsave/irqrestore variant to
avoid this situation.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: rework slave configuration part</title>
<updated>2015-06-23T00:03:27Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2015-06-08T08:33:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9bbdcea36556f0496d99f577da106e002f6f1bfb'/>
<id>urn:sha1:9bbdcea36556f0496d99f577da106e002f6f1bfb</id>
<content type='text'>
commit 765c37d876698268eea8b820081ac8fc9d0fc8bc upstream.

Rework slave configuration part in order to more report wrong errors
about the configuration.
Only maxburst and addr width values are checked when doing the slave
configuration. The validity of the channel configuration is done at
prepare time.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: fix for chan conf simplification</title>
<updated>2015-03-05T08:59:57Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2015-02-12T15:30:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6eb9d3c1e9c5977f7fe6be125006443e7da2427c'/>
<id>urn:sha1:6eb9d3c1e9c5977f7fe6be125006443e7da2427c</id>
<content type='text'>
When simplificating the channel configuration, the cyclic case has been
forgotten. It leads to use bad configuration causing many bugs.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Acked-by: Nicolas Ferre &lt;nicolas.ferre@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: allow muliple dwidths when doing slave transfers</title>
<updated>2015-02-05T07:12:29Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2015-01-27T15:30:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d3a7d9e3ada345948f72564ce638c412ccd8c4a'/>
<id>urn:sha1:6d3a7d9e3ada345948f72564ce638c412ccd8c4a</id>
<content type='text'>
When using FIFO, we need to support differents data width in a single
transfer. For example, serial device which usually uses 1-byte data
width will use 4-bytes data width when using the FIFO. If the transfer
size is not aligned on 4-bytes then the end of the transfer will be
performed with 1-byte data-width. For that reason,
at_xdmac_prep_slave_sg() now builds linked list descriptors using view 2
instead of view 1 so each of them can update the DWIDTH field into the
Channel Configuration Register.

Signed-off-by: Cyrille Pitchen &lt;cyrille.pitchen@atmel.com&gt;
Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: simplify channel configuration stuff</title>
<updated>2015-02-05T07:12:29Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2015-01-27T15:30:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=be835074829b13c5f635ef78ed911b13b9c15fa9'/>
<id>urn:sha1:be835074829b13c5f635ef78ed911b13b9c15fa9</id>
<content type='text'>
This patch simplifies the channel configuration register management.
Relying on a "software snapshot" of the configuration is not safe and
too complex.

Multiple dwidths will be introduced for slave transfers. In this case,
it becomes quite difficult to have an accurate snapshot of the channel
configuration register in the way it is done. Using the channel
configuration available in the lli descriptor simplifies this stuff.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: introduce save_cc field</title>
<updated>2015-02-05T07:12:28Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2015-01-27T15:30:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=734bb9a7b3e198ba3b7d12565dce31d1568ab018'/>
<id>urn:sha1:734bb9a7b3e198ba3b7d12565dce31d1568ab018</id>
<content type='text'>
When suspending the device, read the channel configuration directly from
the register instead of relying on a software snapshot, it will be
safer.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: wait for in-progress transaction to complete after pausing a channel</title>
<updated>2015-02-05T07:12:28Z</updated>
<author>
<name>Cyrille Pitchen</name>
</author>
<published>2015-01-27T15:30:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cbb85e672690ad3d02e97aeba33a1e1f722bbacc'/>
<id>urn:sha1:cbb85e672690ad3d02e97aeba33a1e1f722bbacc</id>
<content type='text'>
Signed-off-by: Cyrille Pitchen &lt;cyrille.pitchen@atmel.com&gt;
Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'topic/slave_caps_device_control_fix_rebased' into for-linus</title>
<updated>2015-02-03T00:55:35Z</updated>
<author>
<name>Vinod Koul</name>
</author>
<published>2015-02-03T00:55:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2cd6f7928ca42c7744f493e0ae2a4acaf02331a0'/>
<id>urn:sha1:2cd6f7928ca42c7744f493e0ae2a4acaf02331a0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dmaengine: drop owner assignment from platform_drivers</title>
<updated>2015-01-13T17:35:04Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2015-01-13T16:46:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=640f204bcdea927f4c2ce4af76a5e92736f20019'/>
<id>urn:sha1:640f204bcdea927f4c2ce4af76a5e92736f20019</id>
<content type='text'>
This platform_driver does not need to set an owner, it will be populated by the
driver core.

Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: at_xdmac: Declare slave capabilities for the generic code</title>
<updated>2014-12-22T07:03:23Z</updated>
<author>
<name>Ludovic Desroches</name>
</author>
<published>2014-11-17T13:42:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8ac82f889c525243b3b3b64117bbd8f810aac29b'/>
<id>urn:sha1:8ac82f889c525243b3b3b64117bbd8f810aac29b</id>
<content type='text'>
Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@atmel.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
</feed>
