Re: [RFC PATCH v1 0/3] iio: introduce timestamping clock selection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/02/16 10:04, Gregor Boirie wrote:
> First draft implementation of IIO timestamping clock selection support based on
> the following principles :
> * selected timestamping clock is a per-device attribute which the userspace
>   may access through a sysfs file ;
> * a single reference clock is used for both buffered samples and events of a
>   given device at the same time ;
> * userspace may choose amongst the following subset of available POSIX clocks:
>   CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_MONOTONIC_RAW, CLOCK_REALTIME_COARSE,
>   CLOCK_MONOTONIC_COARSE, CLOCK_BOOTTIME and CLOCK_TAI ;
> * sample and event timestamps consistency with respect to clock changes is
>   ensured by rejecting the ability to select a new clock as long as an events
>   chrdev is opened or a buffered samples channel is enabled for a given device.
> * no in-kernel API support since AFAIK, consumers work synchronously in direct
>   mode, i.e. timestamping may be peformed using traditional kernel time keeping.
consumers can receive timestamp channels which would be effected by this.
However any given device can only feed one such channel to all consumers so
I think your current approach is fine for now (may need to revisit this at
some future date once we get better front end / back end separation for IIO 
done - as then in theory you might not have a sysfs directory for the IIO
device at all - long way off!)
> 
> Comments are welcome. Regards.
> 
> Gregor Boirie (3):
>   iio:core: timestamping clock selection support
>   iio:core: timestamping clock resolution support
>   iio: make drivers use new timestamping clock API
> 
>  Documentation/ABI/testing/sysfs-bus-iio           |   7 ++
>  Documentation/DocBook/iio.tmpl                    |   2 +-
>  drivers/iio/accel/bma180.c                        |   2 +-
>  drivers/iio/accel/bmc150-accel-core.c             |   4 +-
>  drivers/iio/accel/kxcjk-1013.c                    |   2 +-
>  drivers/iio/accel/mma7455_core.c                  |   3 +-
>  drivers/iio/accel/mma8452.c                       |   4 +-
>  drivers/iio/accel/mma9551.c                       |   2 +-
>  drivers/iio/accel/mma9553.c                       |   2 +-
>  drivers/iio/adc/ad7291.c                          |   2 +-
>  drivers/iio/adc/ad7298.c                          |   2 +-
>  drivers/iio/adc/ad7476.c                          |   2 +-
>  drivers/iio/adc/ad7887.c                          |   2 +-
>  drivers/iio/adc/ad7923.c                          |   2 +-
>  drivers/iio/adc/ad799x.c                          |   4 +-
>  drivers/iio/adc/cc10001_adc.c                     |   2 +-
>  drivers/iio/adc/hi8435.c                          |   2 +-
>  drivers/iio/adc/ina2xx-adc.c                      |   6 +-
>  drivers/iio/adc/max1363.c                         |   5 +-
>  drivers/iio/adc/vf610_adc.c                       |   3 +-
>  drivers/iio/adc/xilinx-xadc-events.c              |   4 +-
>  drivers/iio/chemical/atlas-ph-sensor.c            |   2 +-
>  drivers/iio/dac/ad5421.c                          |   6 +-
>  drivers/iio/dac/ad5504.c                          |   2 +-
>  drivers/iio/dummy/iio_simple_dummy_buffer.c       |   3 +-
>  drivers/iio/dummy/iio_simple_dummy_events.c       |   2 +-
>  drivers/iio/gyro/bmg160_core.c                    |  30 ++---
>  drivers/iio/humidity/dht11.c                      |  16 +--
>  drivers/iio/iio_core.h                            |   3 +
>  drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c        |   2 +-
>  drivers/iio/industrialio-core.c                   | 130 +++++++++++++++++++++-
>  drivers/iio/industrialio-event.c                  |  19 +++-
>  drivers/iio/industrialio-trigger.c                |   2 +-
>  drivers/iio/light/acpi-als.c                      |   2 +-
>  drivers/iio/light/adjd_s311.c                     |   2 +-
>  drivers/iio/light/apds9300.c                      |   2 +-
>  drivers/iio/light/apds9960.c                      |   4 +-
>  drivers/iio/light/cm36651.c                       |   2 +-
>  drivers/iio/light/gp2ap020a00f.c                  |   8 +-
>  drivers/iio/light/isl29125.c                      |   2 +-
>  drivers/iio/light/lm3533-als.c                    |   2 +-
>  drivers/iio/light/ltr501.c                        |   7 +-
>  drivers/iio/light/opt3001.c                       |   4 +-
>  drivers/iio/light/stk3310.c                       |   2 +-
>  drivers/iio/light/tcs3414.c                       |   2 +-
>  drivers/iio/light/tcs3472.c                       |   2 +-
>  drivers/iio/light/tsl2563.c                       |   2 +-
>  drivers/iio/light/us5182d.c                       |   2 +-
>  drivers/iio/magnetometer/mag3110.c                |   2 +-
>  drivers/iio/pressure/mpl3115.c                    |   2 +-
>  drivers/iio/pressure/ms5611_core.c                |   3 +-
>  drivers/iio/proximity/pulsedlight-lidar-lite-v2.c |   2 +-
>  drivers/iio/proximity/sx9500.c                    |   4 +-
>  drivers/staging/iio/accel/lis3l02dq_core.c        |   2 +-
>  drivers/staging/iio/accel/sca3000_core.c          |   2 +-
>  drivers/staging/iio/adc/ad7280a.c                 |   8 +-
>  drivers/staging/iio/adc/ad7606_ring.c             |   2 +-
>  drivers/staging/iio/adc/ad7816.c                  |   3 +-
>  drivers/staging/iio/addac/adt7316.c               |   4 +-
>  drivers/staging/iio/cdc/ad7150.c                  |   2 +-
>  drivers/staging/iio/light/tsl2x7x_core.c          |   2 +-
>  drivers/staging/iio/magnetometer/hmc5843_core.c   |   2 +-
>  include/linux/iio/iio.h                           |  11 +-
>  63 files changed, 264 insertions(+), 113 deletions(-)
> 

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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux