Re: [PATCH v7 1/2] iio: core: Introduce IIO_VAL_INT_64.

From: Jonathan Cameron
Date: Sat Oct 30 2021 - 10:43:36 EST


On Sun, 24 Oct 2021 19:58:52 +0300
Andriy Tryshnivskyy <andriy.tryshnivskyy@xxxxxxxxxxxxxxx> wrote:

> On 24.10.21 19:10, Jonathan Cameron wrote:
>
> > CAUTION: This email originated from outside of the organization.
> > Do not click links or open attachments unless you recognize the sender and know the content is safe.

Ah. One thing I forgot. Value formatting is the only bit of IIO where
we have self tests.

Would you mind writing some test cases in
drivers/iio/tests/iio-test-format.c ?

I'll pick this up in the meantime but definitely want to make
sure we don't forget the tests!

Jonathan


> >
> >
> > 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.
>
> Yes, it's a typo. Please remove it while applying. Thanks!
>
> > 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.
> >
> Noted. Thanks a lot!
>
> >> #define IIO_VAL_FRACTIONAL 10
> >> #define IIO_VAL_FRACTIONAL_LOG2 11
> >> #define IIO_VAL_CHAR 12
>
> Best regards,
> Andriy.
>
>