1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
From: "Sicelo A. Mhlongo" <absicsz@gmail.com>
Date: Sun, 25 May 2025 19:17:51 +0200
Subject: buffer_drv_data_new: rework trigger_name handling
In each buffer driver, the get_trigger_name() call is always immediately
followed by a call to buffer_drv_data_new(). To simplify the code,
buffer_drv_data_new() now calls get_trigger_name(). Incidentally,
iio-sensor-proxy does not actually use the buffer sensor's trigger for
anything.
---
src/drv-iio-buffer-accel.c | 6 +-----
src/drv-iio-buffer-compass.c | 10 +---------
src/drv-iio-buffer-light.c | 9 +--------
src/iio-buffer-utils.c | 9 ++++-----
src/iio-buffer-utils.h | 3 +--
5 files changed, 8 insertions(+), 29 deletions(-)
diff --git a/src/drv-iio-buffer-accel.c b/src/drv-iio-buffer-accel.c
index 931d5cb..06db1aa 100644
--- a/src/drv-iio-buffer-accel.c
+++ b/src/drv-iio-buffer-accel.c
@@ -151,13 +151,9 @@ iio_buffer_accel_open (GUdevDevice *device)
{
SensorDevice *sensor_device;
DrvData *drv_data;
- g_autofree char *trigger_name = NULL;
BufferDrvData *buffer_data;
- /* Get the trigger name, and build the channels from that */
- trigger_name = get_trigger_name (device);
-
- buffer_data = buffer_drv_data_new (device, trigger_name);
+ buffer_data = buffer_drv_data_new (device);
if (!buffer_data)
return NULL;
diff --git a/src/drv-iio-buffer-compass.c b/src/drv-iio-buffer-compass.c
index cfe8f4f..2ae0ccd 100644
--- a/src/drv-iio-buffer-compass.c
+++ b/src/drv-iio-buffer-compass.c
@@ -108,17 +108,9 @@ iio_buffer_compass_open (GUdevDevice *device)
{
SensorDevice *sensor_device;
DrvData *drv_data;
- g_autofree char *trigger_name = NULL;
BufferDrvData *buffer_data;
- /* Get the trigger name, and build the channels from that */
- trigger_name = get_trigger_name (device);
- if (!trigger_name) {
- g_debug ("Could not find trigger for %s", g_udev_device_get_sysfs_path (device));
- return NULL;
- }
-
- buffer_data = buffer_drv_data_new (device, trigger_name);
+ buffer_data = buffer_drv_data_new (device);
if (!buffer_data)
return NULL;
diff --git a/src/drv-iio-buffer-light.c b/src/drv-iio-buffer-light.c
index 6046dc3..2a524c6 100644
--- a/src/drv-iio-buffer-light.c
+++ b/src/drv-iio-buffer-light.c
@@ -139,16 +139,9 @@ iio_buffer_light_open (GUdevDevice *device)
{
SensorDevice *sensor_device;
DrvData *drv_data;
- g_autofree char *trigger_name = NULL;
BufferDrvData *buffer_data;
- /* Get the trigger name, and build the channels from that */
- trigger_name = get_trigger_name (device);
- if (!trigger_name) {
- g_debug ("Could not find trigger for %s", g_udev_device_get_sysfs_path (device));
- return NULL;
- }
- buffer_data = buffer_drv_data_new (device, trigger_name);
+ buffer_data = buffer_drv_data_new (device);
if (!buffer_data)
return NULL;
diff --git a/src/iio-buffer-utils.c b/src/iio-buffer-utils.c
index 7a627d3..bc74e4c 100644
--- a/src/iio-buffer-utils.c
+++ b/src/iio-buffer-utils.c
@@ -880,13 +880,14 @@ buffer_drv_data_free (BufferDrvData *buffer_data)
}
BufferDrvData *
-buffer_drv_data_new (GUdevDevice *device,
- const char *trigger_name)
+buffer_drv_data_new (GUdevDevice *device)
{
BufferDrvData *buffer_data;
+ g_autofree char *trigger_name = NULL;
buffer_data = g_new0 (BufferDrvData, 1);
buffer_data->dev_dir_name = g_udev_device_get_sysfs_path (device);
+ trigger_name = get_trigger_name (device);
if (trigger_name)
buffer_data->trigger_name = g_strdup (trigger_name);
buffer_data->device = g_object_ref (device);
@@ -909,10 +910,8 @@ is_buffer_usable (GUdevDevice *device)
g_autofree char *trigger_name = NULL;
BufferDrvData *buffer_data;
- trigger_name = get_trigger_name (device);
-
/* Temporarily enable the buffer to ensure the kernel driver is buffer-capable */
- buffer_data = buffer_drv_data_new (device, trigger_name);
+ buffer_data = buffer_drv_data_new (device);
if (!buffer_data)
return FALSE;
diff --git a/src/iio-buffer-utils.h b/src/iio-buffer-utils.h
index 597177a..9c5e6db 100644
--- a/src/iio-buffer-utils.h
+++ b/src/iio-buffer-utils.h
@@ -43,8 +43,7 @@ gboolean iio_fixup_sampling_frequency (GUdevDevice *dev);
char *get_trigger_name (GUdevDevice *device);
void buffer_drv_data_free (BufferDrvData *buffer_data);
-BufferDrvData *buffer_drv_data_new (GUdevDevice *device,
- const char *trigger_name);
+BufferDrvData *buffer_drv_data_new (GUdevDevice *device);
void disable_ring_buffer (BufferDrvData *data);
gboolean enable_ring_buffer (BufferDrvData *data);
gboolean is_buffer_usable (GUdevDevice *device);
|