diff options
Diffstat (limited to 'community/iio-sensor-proxy/292.patch')
-rw-r--r-- | community/iio-sensor-proxy/292.patch | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/community/iio-sensor-proxy/292.patch b/community/iio-sensor-proxy/292.patch deleted file mode 100644 index d5c7b0d487..0000000000 --- a/community/iio-sensor-proxy/292.patch +++ /dev/null @@ -1,68 +0,0 @@ -From eba0aca224c18624b7e398171fb8688728baf398 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> -Date: Sat, 21 Dec 2019 14:31:51 +0100 -Subject: [PATCH] light: Support sensors using raw values as well - -E.g. the vcnl4000 class devices reports a raw value and a scale -to calculate lux. ---- - data/80-iio-sensor-proxy.rules | 1 + - src/drv-iio-poll-light.c | 16 ++++++++++++++-- - 2 files changed, 15 insertions(+), 2 deletions(-) - -diff --git a/data/80-iio-sensor-proxy.rules b/data/80-iio-sensor-proxy.rules -index 06040dc..5bcb207 100644 ---- a/data/80-iio-sensor-proxy.rules -+++ b/data/80-iio-sensor-proxy.rules -@@ -9,6 +9,7 @@ SUBSYSTEM=="iio", TEST=="in_accel_x_raw", TEST=="in_accel_y_raw", TEST=="in_acce - SUBSYSTEM=="iio", TEST=="scan_elements/in_accel_x_en", TEST=="scan_elements/in_accel_y_en", TEST=="scan_elements/in_accel_z_en", ENV{IIO_SENSOR_PROXY_TYPE}="iio-buffer-accel" - SUBSYSTEM=="iio", TEST=="scan_elements/in_rot_from_north_magnetic_tilt_comp_en", ENV{IIO_SENSOR_PROXY_TYPE}="iio-buffer-compass" - SUBSYSTEM=="iio", TEST=="in_illuminance_input", ENV{IIO_SENSOR_PROXY_TYPE}="iio-poll-als" -+SUBSYSTEM=="iio", TEST=="in_illuminance_raw", ENV{IIO_SENSOR_PROXY_TYPE}="iio-poll-als" - SUBSYSTEM=="iio", TEST=="scan_elements/in_intensity_both_en", ENV{IIO_SENSOR_PROXY_TYPE}="iio-buffer-als" - SUBSYSTEM=="input", ENV{ID_INPUT_ACCELEROMETER}=="1", ENV{IIO_SENSOR_PROXY_TYPE}="input-accel" - -diff --git a/src/drv-iio-poll-light.c b/src/drv-iio-poll-light.c -index d0da7df..a7423c6 100644 ---- a/src/drv-iio-poll-light.c -+++ b/src/drv-iio-poll-light.c -@@ -24,6 +24,8 @@ typedef struct DrvData { - char *input_path; - guint interval; - guint timeout_id; -+ -+ double scale; - } DrvData; - - static DrvData *drv_data = NULL; -@@ -55,8 +57,8 @@ light_changed (gpointer user_data) - g_error_free (error); - return G_SOURCE_CONTINUE; - } -- -- readings.level = level; -+ readings.level = level * drv_data->scale; -+ g_debug ("Light read from IIO: %lf, (scale %lf)", level, drv_data->scale); - - /* Even though the IIO kernel API declares in_intensity* values as unitless, - * we use Microsoft's hid-sensors-usages.docx which mentions that Windows 8 -@@ -125,6 +127,16 @@ iio_poll_light_open (GUdevDevice *device, - drv_data->input_path = g_build_filename (g_udev_device_get_sysfs_path (device), - "in_illuminance_input", - NULL); -+ if (!g_file_test (drv_data->input_path, G_FILE_TEST_EXISTS)) { -+ g_free (drv_data->input_path); -+ drv_data->input_path = g_build_filename (g_udev_device_get_sysfs_path (device), -+ "in_illuminance_raw", -+ NULL); -+ } -+ -+ drv_data->scale = g_udev_device_get_sysfs_attr_as_double (device, "in_illuminance_scale"); -+ if (drv_data->scale == 0.0) -+ drv_data->scale = 1.0; - - return TRUE; - } --- -2.24.1 - |