Re: [RFC PATCH 00/14] iio: buffer: add support for multiple buffers

From: Lars-Peter Clausen
Date: Mon May 11 2020 - 09:58:09 EST


On 5/11/20 3:24 PM, Ardelean, Alexandru wrote:
On Mon, 2020-05-11 at 13:03 +0000, Ardelean, Alexandru wrote:
[External]

On Mon, 2020-05-11 at 12:37 +0200, Lars-Peter Clausen wrote:
[External]

On 5/11/20 12:33 PM, Ardelean, Alexandru wrote:
On Sun, 2020-05-10 at 11:09 +0100, Jonathan Cameron wrote:
[External]

On Sat, 9 May 2020 10:52:14 +0200
Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:

On 5/8/20 3:53 PM, Alexandru Ardelean wrote:
[...]
What I don't like, is that iio:device3 has iio:buffer3:0 (to 3).
This is because the 'buffer->dev.parent = &indio_dev->dev'.
But I do feel this is correct.
So, now I don't know whether to leave it like that or symlink to
shorter
versions like 'iio:buffer3:Y' -> 'iio:device3/bufferY'.
The reason for naming the IIO buffer devices to 'iio:bufferX:Y' is
mostly to make the names unique. It would have looked weird to do
'/dev/buffer1' if I would have named the buffer devices 'bufferX'.

So, now I'm thinking of whether all this is acceptable.
Or what is acceptable?
Should I symlink 'iio:device3/iio:buffer3:0' ->
'iio:device3/buffer0'?
What else should I consider moving forward?
What means forward?
Where did I leave my beer?
Looking at how the /dev/ devices are named I think we can provide a
name
that is different from the dev_name() of the device. Have a look at
device_get_devnode() in drivers/base/core.c. We should be able to
provide the name for the chardev through the devnode() callback.

While we are at this, do we want to move the new devices into an iio
subfolder? So iio/buffer0:0 instead of iio:buffer0:0?
Possibly on the folder. I can't for the life of me remember why I
decided
not to do that the first time around - I'll leave it at the
mysterious "it may turn out to be harder than you'd think..."
Hopefully not ;)
I was also thinking about the /dev/iio subfolder while doing this.
I can copy that from /dev/input
They seem to do it already.
I don't know how difficult it would be. But it looks like a good
precedent.
All you have to do is return "iio/..." from the devnode() callback.
I admit I did not look closely into drivers/input/input.c before mentioning
this
as as good precedent.

But, I looks like /dev/inpput is a class.
While IIO devices are a bus_type devices.
Should we start implementing an IIO class? or?
What I should have highlighted [before] with this, is that there is no devnode()
callback for the bus_type [type].
But there is one in device_type :)