<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/dma/qcom, branch v4.9.28</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.28</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.28'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2016-08-31T15:57:32Z</updated>
<entry>
<title>dmaengine: qcom_hidma: add error reporting for tx_status</title>
<updated>2016-08-31T15:57:32Z</updated>
<author>
<name>Sinan Kaya</name>
<email>okaya@codeaurora.org</email>
</author>
<published>2016-08-31T15:10:29Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=793ae66c7dcc7e6655029f6613221a111b15b58e'/>
<id>urn:sha1:793ae66c7dcc7e6655029f6613221a111b15b58e</id>
<content type='text'>
The HIDMA driver is capable of error detection. However, the error was
not being passed back to the client when tx_status API is called.

Changing the error handling behavior to follow this oder.

1. dmaengine asserts error interrupt
2. Driver receives and mark's the txn as error
3. Driver completes the txn and intimates the client. No further
   submissions. Drop the locks before calling callback, as subsequent
   processing by client maybe in callback thread.
4. Client invokes status and you can return error
5. On error, client calls terminate_all. You can reset channel, free all
   descriptors in the active, pending and completed lists
6. Client prepares new txn and so on.

As part of this work, got rid of the reset in the interrupt handler when
an error happens and the HW is put into disabled state. The only way to
recover is for the client to terminate the channel.

Signed-off-by: Sinan Kaya &lt;okaya@codeaurora.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma: report transfer errors with new interface</title>
<updated>2016-08-31T15:57:32Z</updated>
<author>
<name>Sinan Kaya</name>
<email>okaya@codeaurora.org</email>
</author>
<published>2016-08-31T15:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=55c370e5198e8cf28b1529299e9c1bfe237c9c1e'/>
<id>urn:sha1:55c370e5198e8cf28b1529299e9c1bfe237c9c1e</id>
<content type='text'>
Pass the DMA errors to the client by passing a result argument. The HW only
supports a generic error when something goes wrong. That's why, using
DMA_TRANS_ABORTED all the time.

Signed-off-by: Sinan Kaya &lt;okaya@codeaurora.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma: release the descriptor before the callback</title>
<updated>2016-08-31T15:57:32Z</updated>
<author>
<name>Sinan Kaya</name>
<email>okaya@codeaurora.org</email>
</author>
<published>2016-08-31T15:10:27Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8a31f8b5db65b860fd0d358dc27f6daf26074406'/>
<id>urn:sha1:8a31f8b5db65b860fd0d358dc27f6daf26074406</id>
<content type='text'>
There is a race condition between data transfer callback and descriptor
free code. The callback routine may decide to clear the resources even
though the descriptor has not yet been freed.

Instead of calling the callback first and then releasing the memory,
this code is changing the order to return the descriptor back to the
free pool and then call the user provided callback.

Signed-off-by: Sinan Kaya &lt;okaya@codeaurora.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma: convert callback to helper function</title>
<updated>2016-08-08T02:41:41Z</updated>
<author>
<name>Dave Jiang</name>
<email>dave.jiang@intel.com</email>
</author>
<published>2016-07-20T20:12:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5ade6683e916df6a00a9747ccc40191fff83a064'/>
<id>urn:sha1:5ade6683e916df6a00a9747ccc40191fff83a064</id>
<content type='text'>
This is in preperation of moving to a callback that provides results to the
callback for the transaction. The conversion will maintain current behavior
and the driver must convert to new callback mechanism at a later time in
order to receive results.

Signed-off-by: Dave Jiang &lt;dave.jiang@intel.com&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
Acked-by: Sinan Kaya &lt;okaya@codeaurora.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'topic/dmaengine_cleanups' into for-linus</title>
<updated>2016-07-28T04:40:37Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-07-28T04:40:37Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4bb0439626983fdde5af3ce970bd0ba2070f5378'/>
<id>urn:sha1:4bb0439626983fdde5af3ce970bd0ba2070f5378</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma: use for_each_matching_node() macro</title>
<updated>2016-07-24T06:16:05Z</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2016-07-13T12:55:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d8cc38dd965d6b2ea657c142d4fd0a0a3ba9dec4'/>
<id>urn:sha1:d8cc38dd965d6b2ea657c142d4fd0a0a3ba9dec4</id>
<content type='text'>
Use for_each_matching_node() macro instead of open coding it.

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Acked-by: Sinan Kaya &lt;okaya@codeaurora.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma_lli: kill the tasklets upon exit</title>
<updated>2016-07-23T10:37:27Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-07-06T16:37:23Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4cad91b2a9977c8d92f342c4a9b73cd9dbce8f21'/>
<id>urn:sha1:4cad91b2a9977c8d92f342c4a9b73cd9dbce8f21</id>
<content type='text'>
drivers should ensure that tasklets are killed, so that they can't be
run after driver remove is executed

Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Cc: Sinan Kaya &lt;okaya@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma: kill the tasklets upon exit</title>
<updated>2016-07-23T10:37:25Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-07-05T09:27:40Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=bd16934a5630f1e7294f33f1f72d89d4f6e6aeae'/>
<id>urn:sha1:bd16934a5630f1e7294f33f1f72d89d4f6e6aeae</id>
<content type='text'>
drivers should ensure that tasklets are killed, so that they can't be
run after driver remove is executed

Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Acked-by: Sinan Kaya &lt;okaya@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'topic/bam' into for-linus</title>
<updated>2016-07-16T14:39:34Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2016-07-16T14:39:34Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=69fa54a009e33073f9b3a710d21aac30d460d063'/>
<id>urn:sha1:69fa54a009e33073f9b3a710d21aac30d460d063</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dmaengine: qcom_hidma: fix return value check in hidma_mgmt_of_populate_channels()</title>
<updated>2016-07-12T04:44:41Z</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2016-07-06T12:19:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6a2cf55db33d13474b7c339d3e4cef8993508a40'/>
<id>urn:sha1:6a2cf55db33d13474b7c339d3e4cef8993508a40</id>
<content type='text'>
In case of error, the function platform_device_register_full()
returns ERR_PTR() and never returns NULL. The NULL test in the
return value check should be replaced with IS_ERR().

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