Re: [PATCH v7 1/2] iio: core: Introduce IIO_VAL_INT_64.
From: Jonathan Cameron
Date: Sun Oct 24 2021 - 12:06:05 EST
On Sun, 24 Oct 2021 12:16:26 +0300
Andriy Tryshnivskyy <andriy.tryshnivskyy@xxxxxxxxxxxxxxx> wrote:
> Introduce IIO_VAL_INT_64 to read 64-bit value for
> channel attribute. Val is used as lower 32 bits.
>
> Signed-off-by: Andriy Tryshnivskyy <andriy.tryshnivskyy@xxxxxxxxxxxxxxx>
> ---
> drivers/iio/industrialio-core.c | 3 +++
> include/linux/iio/types.h | 1 +
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 6d2175eb7af2..49e42d04ea16 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -702,6 +702,9 @@ static ssize_t __iio_format_value(char *buf, size_t offset, unsigned int type,
> }
> case IIO_VAL_CHAR:
> return sysfs_emit_at(buf, offset, "%c", (char)vals[0]);
> + case IIO_VAL_INT_64:
> + tmp2 = (s64)((((u64)vals[1]) << 32) | (u32)vals[0]);
> + return sysfs_emit_at(buf, offset, "%lld", tmp2);
> default:
> return 0;
> }
> diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
> index 84b3f8175cc6..bb6578a5ee28 100644
> --- a/include/linux/iio/types.h
> +++ b/include/linux/iio/types.h
> @@ -24,6 +24,7 @@ enum iio_event_info {
> #define IIO_VAL_INT_PLUS_NANO 3
> #define IIO_VAL_INT_PLUS_MICRO_DB 4
> #define IIO_VAL_INT_MULTIPLE 5
> +#define IIO_VAL_INT_64 6 /* 64-bit data, val is lower 32 bits) */
I'm guessing the closing bracket is left over of some editing?
Otherwise fine and I can tidy that up whilst applying.
Note that this is almost certainly too late for this cycle (we are
about a week away from merge window subject to whatever Linus says
for rc7 and new stuff needs some time to soak in next), but I'll
plan to get it queued up early in the next one.
> #define IIO_VAL_FRACTIONAL 10
> #define IIO_VAL_FRACTIONAL_LOG2 11
> #define IIO_VAL_CHAR 12