Re: [PATCH] staging: iio: trigger: Use standard attr for sampling frequency

From: Lars-Peter Clausen
Date: Wed Mar 18 2015 - 12:47:30 EST


On 03/18/2015 04:04 PM, Daniel Baluta wrote:
On Sat, Mar 14, 2015 at 7:21 PM, Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
On 12/03/15 12:48, Daniel Baluta wrote:
On Thu, Mar 12, 2015 at 10:40 AM, Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:
On 03/12/2015 09:16 AM, Octavian Purdila wrote:

On Wed, Mar 11, 2015 at 6:36 PM, Daniel Baluta <daniel.baluta@xxxxxxxxx>
wrote:


As written in Documentation/ABI/testing/sysfs-bus-iio the trigger
attribute for sampling frequency should be sampling_frequency.

Fix this for iio-trig-periodic-rtc module in order to prepare it
for moving out of staging.

Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxxxx>
---
Jonathan, this module is very useful for devices that do not have
an interrupt pin.

We are working on drivers for such devices and would be very nice to
move this driver in advance to the IIO non-staging location.

What do you say?


Hmm, I wonder what are the advantages of using RTC timers. Couldn't we
use a regular kernel timer instead?


The long term plan is to get rid of the RTC timer trigger due to its various
limitations (poor resolution, etc).

There is the hrtimer trigger
(https://github.com/analogdevicesinc/linux/blob/xcomm_zynq/drivers/staging/iio/trigger/iio-trig-hrtimer.c)
but we haven't agreed on a proper interface yet how to instantiate the
hrtimer trigger.

Check the ml archive for the various discussions on it:
http://marc.info/?l=linux-iio&w=2&r=1&s=hrtimer&q=b


Hi Lars,

That was an interesting reading. There were people trying to push
hrtimer based IIO trigger 4 years ago :).

I think it's now the time to have this upstream.

I will be back :) (as many others said before) with an RFC patch.

I think we should keep the following requirements:

1) Create a common framework for software based triggers.
2) User space driven configuration for trigger instances,
as opposed to platform device files used for RTC based trigger
3) Remove RTC interrupt source, use hrtimers instead

Still not clear, but I will trying to figure it out during implementation:

4) configfs vs sysfs interface.

At the first glance, I would say we should stay with sysfs interface in order
to avoid another dependency. But let's see how it works.
This issue with the sysfs only approach (as originally raised by Lars)
is that it is actually very poorly suited to instantiating new elements of
the device model. Configfs was introduced in the first place exactly to
cover this area. We only ended up with the instantiation code in
the sysfs trigger via sysfs because at the time (a good long while ago!)
I wasn't aware of configfs.

I have some initial work on the base elements on an iio configfs interface
somewhere that I can dig out if you like. I started working on it in a rare
quiet period about a year ago, but never got all that far.

There aren't that many examples in tree of how to actually use configfs
so it's a bit more of a learning curve than sysfs!

First notable problem with using configfs with IIO is boot time modules
loading.

Because,

* configs uses module_init(configfs_init);
* IIO uses subsys_initcall(iio_init);

it is guaranteed that IIO will be loaded before configfs. Not fun! :)

So for the moment I will not add configfs support directly into
industrialiio-core but in a separate module.

Just fix configfs, that should clearly not be at the module init level.

But keeping it in a separate module doesn't hurt either way.

- Lars

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