<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/dma/pl330.c, branch v4.1</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>dmaengine: pl330: Fix hang on dmaengine_terminate_all on certain boards</title>
<updated>2015-05-22T12:31:03+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>k.kozlowski@samsung.com</email>
</author>
<published>2015-05-21T00:34:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=81cc6edc08705ac0146fe6ac14a0982a31ce6f3d'/>
<id>81cc6edc08705ac0146fe6ac14a0982a31ce6f3d</id>
<content type='text'>
The pl330 device could hang infinitely on certain boards when DMA
channels are terminated.

It was caused by lack of runtime resume when executing
pl330_terminate_all() which calls the _stop() function. _stop() accesses
device register and can loop infinitely while checking for device state.

The hang was confirmed by Dinh Nguyen on Altera SOCFPGA Cyclone V
board during boot. It can be also triggered with:

$ echo 1 &gt; /sys/module/dmatest/parameters/iterations
$ echo dma1chan0 &gt; /sys/module/dmatest/parameters/channel
$ echo 1 &gt; /sys/module/dmatest/parameters/run
$ sleep 1
$ cat /sys/module/dmatest/parameters/run

Reported-by: Dinh Nguyen &lt;dinguyen@opensource.altera.com&gt;
Signed-off-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Fixes: ae43b3289186 ("ARM: 8202/1: dmaengine: pl330: Add runtime Power Management support v12")
Cc: &lt;stable@vger.kernel.org&gt;
Tested-by: Dinh Nguyen &lt;dinguyen@opensource.altera.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pl330 device could hang infinitely on certain boards when DMA
channels are terminated.

It was caused by lack of runtime resume when executing
pl330_terminate_all() which calls the _stop() function. _stop() accesses
device register and can loop infinitely while checking for device state.

The hang was confirmed by Dinh Nguyen on Altera SOCFPGA Cyclone V
board during boot. It can be also triggered with:

$ echo 1 &gt; /sys/module/dmatest/parameters/iterations
$ echo dma1chan0 &gt; /sys/module/dmatest/parameters/channel
$ echo 1 &gt; /sys/module/dmatest/parameters/run
$ sleep 1
$ cat /sys/module/dmatest/parameters/run

Reported-by: Dinh Nguyen &lt;dinguyen@opensource.altera.com&gt;
Signed-off-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Fixes: ae43b3289186 ("ARM: 8202/1: dmaengine: pl330: Add runtime Power Management support v12")
Cc: &lt;stable@vger.kernel.org&gt;
Tested-by: Dinh Nguyen &lt;dinguyen@opensource.altera.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: fix return status on pending transfers</title>
<updated>2015-03-18T17:11:49+00:00</updated>
<author>
<name>Ben Dooks</name>
<email>ben.dooks@codethink.co.uk</email>
</author>
<published>2015-03-16T11:52:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=75967b788c2898601620ce91ed14b4a9a371b6fe'/>
<id>75967b788c2898601620ce91ed14b4a9a371b6fe</id>
<content type='text'>
The pl330_tx_status() function returns the desc-&gt;status if the
dma_cookie_status() call does indicate the cookie completed,
however the desc-&gt;status is not look directly compatible. Sparse
throws the following warning:

pl330.c:2262:35: warning: mixing different enum types
pl330.c:2262:35:     int enum desc_status  versus
pl330.c:2262:35:     int enum dma_status

Attempt to fix this by adding a switch statement to turn the
desc-&gt;status into a dma_status.

Note, this has only been tested with the dmatest suite.

Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
--
Vinod Koul &lt;vinod.koul@intel.com&gt;
Dan Williams &lt;dan.j.williams@intel.com&gt;
DMA List &lt;dmaengine@vger.kernel.org&gt;
Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Jassi Brar &lt;jassisinghbrar@gmail.com&gt;
Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Linux ARM Kernel &lt;linux-arm-kernel@lists.infradead.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pl330_tx_status() function returns the desc-&gt;status if the
dma_cookie_status() call does indicate the cookie completed,
however the desc-&gt;status is not look directly compatible. Sparse
throws the following warning:

pl330.c:2262:35: warning: mixing different enum types
pl330.c:2262:35:     int enum desc_status  versus
pl330.c:2262:35:     int enum dma_status

Attempt to fix this by adding a switch statement to turn the
desc-&gt;status into a dma_status.

Note, this has only been tested with the dmatest suite.

Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
--
Vinod Koul &lt;vinod.koul@intel.com&gt;
Dan Williams &lt;dan.j.williams@intel.com&gt;
DMA List &lt;dmaengine@vger.kernel.org&gt;
Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Jassi Brar &lt;jassisinghbrar@gmail.com&gt;
Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Linux ARM Kernel &lt;linux-arm-kernel@lists.infradead.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: make unexported functions static</title>
<updated>2015-03-18T17:11:49+00:00</updated>
<author>
<name>Ben Dooks</name>
<email>ben.dooks@codethink.co.uk</email>
</author>
<published>2015-03-16T11:52:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5503aed8117881f58a2688521dfbf9fc7dbcdfe7'/>
<id>5503aed8117881f58a2688521dfbf9fc7dbcdfe7</id>
<content type='text'>
Whilst running sparse on pl330 driver it was noticed there are
two functions that are not static but not exported to any other
users in the kernel.

Fix the following warnings by making 'pl330_pause' and the
'pl330_get_current_xferred_count' static:

pl330.c:2165:5: warning: symbol 'pl330_pause' was not declared. Should it be static?
pl330.c:2206:5: warning: symbol 'pl330_get_current_xferred_count' was not declared. Should it be static?

Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
--
Vinod Koul &lt;vinod.koul@intel.com&gt;
Dan Williams &lt;dan.j.williams@intel.com&gt;
DMA List &lt;dmaengine@vger.kernel.org&gt;
Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Jassi Brar &lt;jassisinghbrar@gmail.com&gt;
Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Linux ARM Kernel &lt;linux-arm-kernel@lists.infradead.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Whilst running sparse on pl330 driver it was noticed there are
two functions that are not static but not exported to any other
users in the kernel.

Fix the following warnings by making 'pl330_pause' and the
'pl330_get_current_xferred_count' static:

pl330.c:2165:5: warning: symbol 'pl330_pause' was not declared. Should it be static?
pl330.c:2206:5: warning: symbol 'pl330_get_current_xferred_count' was not declared. Should it be static?

Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
--
Vinod Koul &lt;vinod.koul@intel.com&gt;
Dan Williams &lt;dan.j.williams@intel.com&gt;
DMA List &lt;dmaengine@vger.kernel.org&gt;
Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Jassi Brar &lt;jassisinghbrar@gmail.com&gt;
Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Linux ARM Kernel &lt;linux-arm-kernel@lists.infradead.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: fix issues with big-endian armv7</title>
<updated>2015-03-18T17:11:48+00:00</updated>
<author>
<name>Ben Dooks</name>
<email>ben.dooks@codethink.co.uk</email>
</author>
<published>2015-03-16T11:52:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3a2307f72e684199a27ae9d8e7cfd98e8b05c8db'/>
<id>3a2307f72e684199a27ae9d8e7cfd98e8b05c8db</id>
<content type='text'>
When running Xilinx Zynq in big-endian mode the pl330 driver
fails to pass the dmatest suite. To fix this, ensure all non
byte values are written in little endian.

As a note, the documentation does not mention if it will do
big-endian descriptor fetches, only that it will swap the
data in flight.

Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
--
Vinod Koul &lt;vinod.koul@intel.com&gt;
Dan Williams &lt;dan.j.williams@intel.com&gt;
DMA List &lt;dmaengine@vger.kernel.org&gt;
Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Jassi Brar &lt;jassisinghbrar@gmail.com&gt;
Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Linux ARM Kernel &lt;linux-arm-kernel@lists.infradead.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running Xilinx Zynq in big-endian mode the pl330 driver
fails to pass the dmatest suite. To fix this, ensure all non
byte values are written in little endian.

As a note, the documentation does not mention if it will do
big-endian descriptor fetches, only that it will swap the
data in flight.

Signed-off-by: Ben Dooks &lt;ben.dooks@codethink.co.uk&gt;
--
Vinod Koul &lt;vinod.koul@intel.com&gt;
Dan Williams &lt;dan.j.williams@intel.com&gt;
DMA List &lt;dmaengine@vger.kernel.org&gt;
Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Jassi Brar &lt;jassisinghbrar@gmail.com&gt;
Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Linux ARM Kernel &lt;linux-arm-kernel@lists.infradead.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: add DMA_PAUSE feature</title>
<updated>2015-02-16T04:03:36+00:00</updated>
<author>
<name>Robert Baldyga</name>
<email>r.baldyga@samsung.com</email>
</author>
<published>2015-02-11T12:23:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=88987d2c7534a0269f567fb101e6d71a08f0f01d'/>
<id>88987d2c7534a0269f567fb101e6d71a08f0f01d</id>
<content type='text'>
DMA_PAUSE command is used for halting DMA transfer on chosen channel.
It can be useful when we want to safely read residue before terminating
all requests on channel. Otherwise there can be situation when some data
is transferred before channel termination but after reading residue,
which obviously results with data loss. To avoid this situation we can
pause channel, read residue and then terminate all requests.
This scenario is common, for example, in serial port drivers.

Signed-off-by: Robert Baldyga &lt;r.baldyga@samsung.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DMA_PAUSE command is used for halting DMA transfer on chosen channel.
It can be useful when we want to safely read residue before terminating
all requests on channel. Otherwise there can be situation when some data
is transferred before channel termination but after reading residue,
which obviously results with data loss. To avoid this situation we can
pause channel, read residue and then terminate all requests.
This scenario is common, for example, in serial port drivers.

Signed-off-by: Robert Baldyga &lt;r.baldyga@samsung.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: improve pl330_tx_status() function</title>
<updated>2015-02-16T04:03:35+00:00</updated>
<author>
<name>Robert Baldyga</name>
<email>r.baldyga@samsung.com</email>
</author>
<published>2015-02-11T12:23:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=aee4d1fac887252faf6f7caf7bf1616131d5dbcd'/>
<id>aee4d1fac887252faf6f7caf7bf1616131d5dbcd</id>
<content type='text'>
This patch adds possibility to read residue of DMA transfer. It's useful
when we want to know how many bytes have been transferred before we
terminate channel. It can take place, for example, on timeout interrupt.

Signed-off-by: Lukasz Czerwinski &lt;l.czerwinski@samsung.com&gt;
Signed-off-by: Robert Baldyga &lt;r.baldyga@samsung.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds possibility to read residue of DMA transfer. It's useful
when we want to know how many bytes have been transferred before we
terminate channel. It can take place, for example, on timeout interrupt.

Signed-off-by: Lukasz Czerwinski &lt;l.czerwinski@samsung.com&gt;
Signed-off-by: Robert Baldyga &lt;r.baldyga@samsung.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: fix bug that cause start the same descs in cyclic</title>
<updated>2015-02-11T00:20:19+00:00</updated>
<author>
<name>Addy Ke</name>
<email>addy.ke@rock-chips.com</email>
</author>
<published>2014-12-08T11:28:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0091b9d6c1ef2caab6cb3b6c0aa75f9948307856'/>
<id>0091b9d6c1ef2caab6cb3b6c0aa75f9948307856</id>
<content type='text'>
This bug will cause NULL pointer after commit dfac17, and cause
wrong package in I2S DMA transfer before commit dfac17.

Tested on RK3288-pinky2 board.

Detail:
I2S DMA transfer(sound/core/pcm_dmaengine.c):
dmaengine_pcm_prepare_and_submit --&gt;
dmaengine_prep_dma_cyclic --&gt;
pl330_prep_dma_cyclic --&gt;
the case:
1. pl330_submit_req(desc0): thrd-&gt;req[0].desc = desc0, thrd-&gt;lstenq = 0
2. pl330_submit_req(desc1): thrd-&gt;req[1].desc = desc1, thrd-&gt;lstenq = 1
3. _start(desc0) by submit_req: thrd-&gt;req_running = 0
   because: idx = 1 - thrd-&gt;lstenq = 0
4. pl330_update(desc0 OK): thrd-&gt;req[0].desc = NULL, desc0 to req_done list
   because: idx = active = thrd-&gt;req_running = 0
5. _start(desc1) by pl330_update: thrd-&gt;req_running = 1
   because:
   idx = 1 - thrd-&gt;lstenq = 0, but thrd-&gt;req[0].desc == NULL,
   so:
   idx = thrd-&gt;lstenq = 1
6. pl330_submit_req(desc2): thrd-&gt;req[0].desc = desc2, thrd-&gt;lstenq = 0
7. _start(desc1) by submit_req: thrd-&gt;req_running = 1
   because: idx = 1 - thrd-&gt;lstenq = 1
   Note: _start started the same descs
         _start should start desc2 here, NOT desc1

8. pl330_update(desc1 OK): thrd-&gt;req[1].desc = NULL, desc1 to req_done list
   because: idx = active = thrd-&gt;req_running = 1
9. _start(desc2) by pl330_update : thrd-&gt;req_running = 0
   because: idx = 1 - thrd-&gt;lstenq = 0
10.pl330_update(desc1 OK, NOT desc2): thrd-&gt;req[0].desc = NULL,
   desc2 to req_done list
   because: idx = active = thrd-&gt;req_running = 0

11.pl330_submit_req(desc3): thrd-&gt;req[0].desc = desc3, thrd-&gt;lstenq = 0
12.pl330_submit_req(desc4): thrd-&gt;req[1].desc = desc4, thrd-&gt;lstenq = 1
13._start(desc3) by submit_req: thrd-&gt;req_running = 0
   because: idx = 1 - thrd-&gt;lstenq = 0
14.pl330_update(desc2 OK NOT desc3): thrd-&gt;req[0].desc = NULL
   desc3 to req_done list
   because: idx = active = thrd-&gt;req_running = 0
15._start(desc4) by pl330_update: thrd-&gt;req_running = 1
   because:
   idx = 1 - thrd-&gt;lstenq = 0, but thrd-&gt;req[0].desc == NULL,
   so:
   idx = thrd-&gt;lstenq = 1
16.pl330_submit_req(desc5): thrd-&gt;req[0].desc = desc5, thrd-&gt;lstenq = 0
17._start(desc4) by submit_req: thrd-&gt;req_running = 1
   because: idx = 1 - thrd-&gt;lstenq = 1
18.pl330_update(desc3 OK NOT desc4): thrd-&gt;req[1].desc = NULL
   desc4 to req_done list
   because: idx = active = thrd-&gt;req_running = 1
19._start(desc4) by pl330_update: thrd-&gt;req_running = 0
   because:
   idx = 1 - thrd-&gt;lstenq = 1, but thrd-&gt;req[1].desc == NULL,
   so:
   idx = thrd-&gt;lstenq = 0
20.pl330_update(desc4 OK): thrd-&gt;req[0].desc = NULL, desc5 to req_done list
   because: idx = active = thrd-&gt;req_running = 0
21.pl330_update(desc4 OK):
   1) before commit dfac17(set req_running -1 in pl330_update/mark_free()):
      because: active = -1, abort
      result: desc0-desc5's callback are all called,
	      but step 10 and step 18 go wrong.
   2) before commit dfac17:
      idx = active = thrd-&gt;req_runnig = 0 --&gt;
      descdone = thrd-&gt;req[0] = NULL --&gt;
      list_add_tail(&amp;descdone-&gt;rqd, &amp;pl330-&gt;req_done); --&gt;
      got NULL pointer!!!

Signed-off-by: Addy Ke &lt;addy.ke@rock-chips.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This bug will cause NULL pointer after commit dfac17, and cause
wrong package in I2S DMA transfer before commit dfac17.

Tested on RK3288-pinky2 board.

Detail:
I2S DMA transfer(sound/core/pcm_dmaengine.c):
dmaengine_pcm_prepare_and_submit --&gt;
dmaengine_prep_dma_cyclic --&gt;
pl330_prep_dma_cyclic --&gt;
the case:
1. pl330_submit_req(desc0): thrd-&gt;req[0].desc = desc0, thrd-&gt;lstenq = 0
2. pl330_submit_req(desc1): thrd-&gt;req[1].desc = desc1, thrd-&gt;lstenq = 1
3. _start(desc0) by submit_req: thrd-&gt;req_running = 0
   because: idx = 1 - thrd-&gt;lstenq = 0
4. pl330_update(desc0 OK): thrd-&gt;req[0].desc = NULL, desc0 to req_done list
   because: idx = active = thrd-&gt;req_running = 0
5. _start(desc1) by pl330_update: thrd-&gt;req_running = 1
   because:
   idx = 1 - thrd-&gt;lstenq = 0, but thrd-&gt;req[0].desc == NULL,
   so:
   idx = thrd-&gt;lstenq = 1
6. pl330_submit_req(desc2): thrd-&gt;req[0].desc = desc2, thrd-&gt;lstenq = 0
7. _start(desc1) by submit_req: thrd-&gt;req_running = 1
   because: idx = 1 - thrd-&gt;lstenq = 1
   Note: _start started the same descs
         _start should start desc2 here, NOT desc1

8. pl330_update(desc1 OK): thrd-&gt;req[1].desc = NULL, desc1 to req_done list
   because: idx = active = thrd-&gt;req_running = 1
9. _start(desc2) by pl330_update : thrd-&gt;req_running = 0
   because: idx = 1 - thrd-&gt;lstenq = 0
10.pl330_update(desc1 OK, NOT desc2): thrd-&gt;req[0].desc = NULL,
   desc2 to req_done list
   because: idx = active = thrd-&gt;req_running = 0

11.pl330_submit_req(desc3): thrd-&gt;req[0].desc = desc3, thrd-&gt;lstenq = 0
12.pl330_submit_req(desc4): thrd-&gt;req[1].desc = desc4, thrd-&gt;lstenq = 1
13._start(desc3) by submit_req: thrd-&gt;req_running = 0
   because: idx = 1 - thrd-&gt;lstenq = 0
14.pl330_update(desc2 OK NOT desc3): thrd-&gt;req[0].desc = NULL
   desc3 to req_done list
   because: idx = active = thrd-&gt;req_running = 0
15._start(desc4) by pl330_update: thrd-&gt;req_running = 1
   because:
   idx = 1 - thrd-&gt;lstenq = 0, but thrd-&gt;req[0].desc == NULL,
   so:
   idx = thrd-&gt;lstenq = 1
16.pl330_submit_req(desc5): thrd-&gt;req[0].desc = desc5, thrd-&gt;lstenq = 0
17._start(desc4) by submit_req: thrd-&gt;req_running = 1
   because: idx = 1 - thrd-&gt;lstenq = 1
18.pl330_update(desc3 OK NOT desc4): thrd-&gt;req[1].desc = NULL
   desc4 to req_done list
   because: idx = active = thrd-&gt;req_running = 1
19._start(desc4) by pl330_update: thrd-&gt;req_running = 0
   because:
   idx = 1 - thrd-&gt;lstenq = 1, but thrd-&gt;req[1].desc == NULL,
   so:
   idx = thrd-&gt;lstenq = 0
20.pl330_update(desc4 OK): thrd-&gt;req[0].desc = NULL, desc5 to req_done list
   because: idx = active = thrd-&gt;req_running = 0
21.pl330_update(desc4 OK):
   1) before commit dfac17(set req_running -1 in pl330_update/mark_free()):
      because: active = -1, abort
      result: desc0-desc5's callback are all called,
	      but step 10 and step 18 go wrong.
   2) before commit dfac17:
      idx = active = thrd-&gt;req_runnig = 0 --&gt;
      descdone = thrd-&gt;req[0] = NULL --&gt;
      list_add_tail(&amp;descdone-&gt;rqd, &amp;pl330-&gt;req_done); --&gt;
      got NULL pointer!!!

Signed-off-by: Addy Ke &lt;addy.ke@rock-chips.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: Declare slave capabilities for the generic code</title>
<updated>2014-12-22T07:04:21+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime.ripard@free-electrons.com</email>
</author>
<published>2014-11-17T13:42:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=dcabe456b4d4d04606268036d8ca5ce84aa84037'/>
<id>dcabe456b4d4d04606268036d8ca5ce84aa84037</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: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: pl330: Split device_control</title>
<updated>2014-12-22T07:02:15+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime.ripard@free-electrons.com</email>
</author>
<published>2014-11-17T13:42:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=740aa95703c59d8b59adb78c65efa08714f66ebb'/>
<id>740aa95703c59d8b59adb78c65efa08714f66ebb</id>
<content type='text'>
Split the device_control callback of the AMBA PL330 DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Split the device_control callback of the AMBA PL330 DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dmaengine: Make the destination abbreviation coherent</title>
<updated>2014-12-22T06:58:55+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime.ripard@free-electrons.com</email>
</author>
<published>2014-11-17T13:41:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ceacbdbf65c4cf48a130db6152c6e03432c85ed1'/>
<id>ceacbdbf65c4cf48a130db6152c6e03432c85ed1</id>
<content type='text'>
The dmaengine header abbreviates destination as at least two different strings.
Make a coherent use of a single one.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Acked-by: Mark Brown &lt;broonie@kernel.org&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Stephen Warren &lt;swarren@wwwdotorg.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dmaengine header abbreviates destination as at least two different strings.
Make a coherent use of a single one.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Acked-by: Mark Brown &lt;broonie@kernel.org&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Stephen Warren &lt;swarren@wwwdotorg.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
