Thread (102 messages) 102 messages, 7 authors, 2011-09-20

[PATCH 16/18] dmaengine/amba-pl08x: Add support for sg len greater than one for slave transfers

From: Linus Walleij <hidden>
Date: 2011-09-08 10:29:05
Also in: lkml

On Thu, Sep 8, 2011 at 5:50 AM, Viresh Kumar [off-list ref] wrote:
If i am getting this clearly, the concern is "why to queue separate transfers for
individual sg's? Better would be to prepare the complete list at once and
start the transfer, so that DMA stops only after finishing all sg's
passed from user." Is this what you are pointing at?
Yes.
If yes, then the same is done in this patch too. An array for llis is allocated at
the start, then for each sg i prepare lli list from this array. Last lli from one sg
is followed by first lli from next sg. And so i get a continuous chain of llis.
OK so I guess I was lost in the code ...

So this is mainy cached as txd->dsg_list so you can quickly retrieve the
number of bytes pending in the LLI by traversing that sglist.

This is better than what the coh901318 does, because that driver
resorts to going into the physical LLIs themselves to retrieve this
info.

It also seems like this will play nice with Per Forlin's MMC
speed-up patches, so that will become effective for your MMC
usecases.

Now I really like this patch.

Sorry for being such a slow learner!
Reviewed-by: Linus Walleij <redacted>

Yours,
Linus Walleij
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help