2a18a04d37712c682fd08bb4843d7ac415953073
[AGL/meta-agl.git] / meta-agl-bsp / virtualization-layer / recipes-kernel / linux / linux-yocto / virtio-kmeta / bsp / virtio / virtio-scmi / 0001-iio-core-Introduce-IIO_VAL_INT_64.patch
1 From 3698bab1b1856a8146c8f8a83c888bd9cefcdde0 Mon Sep 17 00:00:00 2001
2 From: Andriy Tryshnivskyy <andriy.tryshnivskyy@opensynergy.com>
3 Date: Sun, 24 Oct 2021 12:16:26 +0300
4 Subject: [PATCH] iio: core: Introduce IIO_VAL_INT_64.
5
6 Introduce IIO_VAL_INT_64 to read 64-bit value for
7 channel attribute. Val is used as lower 32 bits.
8
9 Signed-off-by: Andriy Tryshnivskyy <andriy.tryshnivskyy@opensynergy.com>
10 Link: https://lore.kernel.org/r/20211024091627.28031-2-andriy.tryshnivskyy@opensynergy.com
11 Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
12 ---
13  drivers/iio/industrialio-core.c | 3 +++
14  include/linux/iio/types.h       | 1 +
15  2 files changed, 4 insertions(+)
16
17 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
18 index 3e1e86d987cc..3f21e6b49a4a 100644
19 --- a/drivers/iio/industrialio-core.c
20 +++ b/drivers/iio/industrialio-core.c
21 @@ -702,6 +702,9 @@ static ssize_t __iio_format_value(char *buf, size_t offset, unsigned int type,
22         }
23         case IIO_VAL_CHAR:
24                 return sysfs_emit_at(buf, offset, "%c", (char)vals[0]);
25 +       case IIO_VAL_INT_64:
26 +               tmp2 = (s64)((((u64)vals[1]) << 32) | (u32)vals[0]);
27 +               return sysfs_emit_at(buf, offset, "%lld", tmp2);
28         default:
29                 return 0;
30         }
31 diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
32 index 84b3f8175cc6..a7aa91f3a8dc 100644
33 --- a/include/linux/iio/types.h
34 +++ b/include/linux/iio/types.h
35 @@ -24,6 +24,7 @@ enum iio_event_info {
36  #define IIO_VAL_INT_PLUS_NANO 3
37  #define IIO_VAL_INT_PLUS_MICRO_DB 4
38  #define IIO_VAL_INT_MULTIPLE 5
39 +#define IIO_VAL_INT_64 6 /* 64-bit data, val is lower 32 bits */
40  #define IIO_VAL_FRACTIONAL 10
41  #define IIO_VAL_FRACTIONAL_LOG2 11
42  #define IIO_VAL_CHAR 12
43 -- 
44 2.17.1
45