Re: [PATCH v2] iio: core: register chardev only if needed

From: Alexandru Ardelean
Date: Wed Dec 09 2020 - 10:46:19 EST


On Wed, Dec 9, 2020 at 5:37 PM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
>
> On Thu, Dec 3, 2020 at 11:55 AM Alexandru Ardelean
> <alexandru.ardelean@xxxxxxxxxx> wrote:
> >
> > We only need a chardev if we need to support buffers and/or events.
> >
> > With this change, a chardev will be created only if an IIO buffer is
> > attached OR an event_interface is configured.
> >
> > Otherwise, no chardev will be created, and the IIO device will get
> > registered with the 'device_add()' call.
> >
> > Quite a lot of IIO devices don't really need a chardev, so this is a minor
> > improvement to the IIO core, as the IIO device will take up (slightly)
> > fewer resources.
> >
> > In order to not create a chardev, we mostly just need to not initialize the
> > indio_dev->dev.devt field. If that is un-initialized, cdev_device_add()
>
> un-initialized -> uninitialized
>
> > behaves like device_add().
>
> Are you sure there is no user space application that doesn't rely on
> character device to be always present?

Nope.
I'm not sure.
I'm also not completely sure how Jonathan feels about this patch being
added now [so late].

Though, technically if the chardev was already there, without all the
control in place [to enable IIO buffers and other stuff through the
chardev] then it's technically just a "marker" file.
Which arguably is a lot to have (i.e. chardev that should be unusable).

If it is usable with no control in place for buffers or other stuff
(i.e. I missed something), then I also don't know.

So, this patch on it's own can still be interpreted as an RFC.
See:
https://lore.kernel.org/linux-iio/20201121180246.772ad299@archlinux/

>
> --
> With Best Regards,
> Andy Shevchenko