OSDN Git Service

iio: acpi_als: Add timestamp channel
authorGwendal Grignou <gwendal@chromium.org>
Wed, 17 Mar 2021 07:40:10 +0000 (00:40 -0700)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 25 Mar 2021 19:13:52 +0000 (19:13 +0000)
Add timestamp channel in list of channel, to allow retrieving timestamps
when events are produced.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20210317074012.2336454-2-gwendal@chromium.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/light/acpi-als.c

index f8e547f..784868a 100644 (file)
@@ -45,24 +45,22 @@ static const struct iio_chan_spec acpi_als_channels[] = {
                .info_mask_separate     = BIT(IIO_CHAN_INFO_RAW) |
                                          BIT(IIO_CHAN_INFO_PROCESSED),
        },
+       IIO_CHAN_SOFT_TIMESTAMP(1),
 };
 
 /*
  * The event buffer contains timestamp and all the data from
  * the ACPI0008 block. There are multiple, but so far we only
- * support _ALI (illuminance). Once someone adds new channels
- * to acpi_als_channels[], the evt_buffer below will grow
- * automatically.
+ * support _ALI (illuminance): One channel, padding and timestamp.
  */
-#define ACPI_ALS_EVT_NR_SOURCES                ARRAY_SIZE(acpi_als_channels)
 #define ACPI_ALS_EVT_BUFFER_SIZE               \
-       (sizeof(s64) + (ACPI_ALS_EVT_NR_SOURCES * sizeof(s32)))
+       (sizeof(s32) + sizeof(s32) + sizeof(s64))
 
 struct acpi_als {
        struct acpi_device      *device;
        struct mutex            lock;
 
-       s32                     evt_buffer[ACPI_ALS_EVT_BUFFER_SIZE];
+       s32 evt_buffer[ACPI_ALS_EVT_BUFFER_SIZE / sizeof(s32)]  __aligned(8);
 };
 
 /*