lkml.org 
[lkml]   [2010]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] DMAENGINE: add a slave buffer prep call
From
2010/8/11 Rabin Vincent <rabin@rab.in>:

> On Tue, Aug 10, 2010 at 11:46:06PM +0200, Linus Walleij wrote:
>> This makes it possible for engines to implement slave transfers
>> to be done to/from a simple kmalloc():ed memory buffer and not
>> just from scatterlists.
>
> Why is this needed?  Drivers can just pass in a single-entry scatterlist
> to the existing API to achieve the same functionality, and a couple of
> them already do so.

Because of the overhead, simply. Especially if you want to trigger
many jobs after each other. (This is necessary in device/slave-DMA
since every transaction may fail...) It's not just constructing the
sg-headers and freeing them again and again, it's also list traversals
here and there since the driver must assume it can be a linked sglist and
then two other list traversals for each
dma_map_sg()/dma_unmap_sg() pair and ... yeah that's basically
it.

And the number of extra code lines needed.

Then it's something conceptwise of creating a list that you know
is just always one element that is just not elegant, like taking a queue
numer and standing in queue when there is only one customer but
hey, maybe it's just me.

One way of achieving it for all present drivers is to wrap the passed
buffer in a single sglist and pass to the sglist function if the single
buffer call is not supported in the driver. Maybe it'd be better if I
coded up the patch like that so all driver can rely on this function
to be present?

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2010-08-11 21:05    [W:0.508 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site