Thread (33 messages) flat view 33 messages, 7 authors, 2011-09-21
STALE5439d

[PATCH v8 04/16] DMA: PL330: Remove the start operation for handling DMA_TERMINATE_ALL command

From: Jassi Brar <hidden>
Date: 2011-09-06 12:40:05
Also in: linux-samsung-soc

On 6 September 2011 17:57, Russell King - ARM Linux
[off-list ref] wrote:
On Tue, Sep 06, 2011 at 05:52:19PM +0530, Jassi Brar wrote:
quoted
On Fri, Sep 2, 2011 at 6:14 AM, Boojin Kim [off-list ref] wrote:
quoted
Origianl code carries out the start operation after flush operation.
But start operation is not required for DMA_TERMINATE_ALL command.
So, This patch removes the unnecessary start operation and only carries out
the flush oeration for handling DMA_TERMINATE_ALL command.
Not exactly. The 'start' is impotent when called from this path because there
is nothing left queued after the call to 'flush'.
pl330_tasklet() is called because that is a common function that does the
house-keeping acc to what's presently in 'work' and 'done' lists.

Though as a side-effect, your patch does avoid doing callbacks on submitted
xfers during DMA_TERMINATE_ALL - which may or may not be the right thing
to do.
It is defined that DMA_TERMINATE_ALL does not call the callbacks:

1. int dmaengine_terminate_all(struct dma_chan *chan)

? This causes all activity for the DMA channel to be stopped, and may
? discard data in the DMA FIFO which hasn't been fully transferred.
? No callback functions will be called for any incomplete transfers.
Ok, thanks for the info.

Boojin Kim, please re-write the changelog to state only preventing
callbacks during DMA_TERMINATE_ALL as the reason.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help