[PATCH] staging:iio: Setup buffer access functions when allocating the buffer

Lars-Peter Clausen lars at metafoo.de
Tue Dec 13 09:08:29 UTC 2011

On 12/13/2011 08:38 AM, Greg KH wrote:
> On Tue, Dec 13, 2011 at 07:23:48AM +0000, Jonathan Cameron wrote:
>> Greg KH <greg at kroah.com> wrote:
>>> On Mon, Dec 12, 2011 at 11:09:05AM +0100, Lars-Peter Clausen wrote:
>>>> Setup the buffer access functions in the buffer allocate function.
>>> There is no
>>>> need to let each driver handle this on its own.
>>> That's nicer.
>>> So, you have different ways to have "buffers" and the driver doesn't
>>> know what type you have, and it's chosen at build time?  Why are you
>>> making the kernel builder make such a decision?  Why not just pick one,
>>> that you know works well, and use it?
>>> You would get rid of a whole level of indirection that I really don't
>>> think you need at all, right?
>> Because there is not currently a buffer that suits all use cases.
>> One might be possible but would involve autoswitching between
>> different approaches a hence have this indirection anyway, be it
>> burried. Also note that some of the buffers are hardware.  Plus the
>> pseudo buffer used for in kernel push interfaces is different again.
>> That code has only reached RFC state so far.
> So who choses the buffer type, the driver, or the kernel configurator,
> or something else?
>>> Make a decision, don't force someone else to make it for you...
>> Defaults are sensible. Preventing other peoples use cases are not.
> Ok, but you do agree that this patch is broken as-is, right?

We have different buffer implementations. Each buffer implementation has their
internal data structure, which is only visible to this buffer implementation.
Each buffer implementation provides a set of functions which work on this data
structure. Also each buffer implementation has one function which allocates the
data structure. So the set of functions the buffer implementation provides will
only work on the data structure allocated by the allocation function this
specific buffer implementation provides. Moving the assignment of access
functions inside the allocation function instead of doing it manually in driver
code is obviously the right thing to do.

More information about the devel mailing list