]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: hwdb: Add rules to match cros-ec-accel by 'location' sysfs file 24353/head
authorAlper Nebi Yasak <alpernebiyasak@gmail.com>
Thu, 18 Aug 2022 16:56:13 +0000 (19:56 +0300)
committerAlper Nebi Yasak <alpernebiyasak@gmail.com>
Thu, 18 Aug 2022 18:17:19 +0000 (21:17 +0300)
The cros-ec-accel devices report their mounting location by the 'label'
sysfs file only since Linux v6.0. With earlier kernels, a nonstandard
'location' file reports this, but slightly differently (lid instead of
display) [1].

Add udev rules to import the correct hwdb entries based on this
'location' file for cros-ec-accel devices, so that the base-mounted
accel matrix has the correct value for older kernels as well.

[1] https://kernel.org/doc/Documentation/ABI/testing/sysfs-bus-iio-cros-ec

rules.d/60-sensor.rules

index 99b8f5fc7aed795bb5ade6ac44f8def0834a2685..09180b4b2cc7d832a3e24ab0980963edb3628899 100644 (file)
@@ -7,6 +7,17 @@ SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="usb|i2c|platform", ATTR{label}!="
   IMPORT{builtin}="hwdb 'sensor:$attr{label}:modalias:$attr{modalias}:$attr{[dmi/id]modalias}'", \
   GOTO="sensor_end"
 
+# Before Linux v6.0, cros-ec-accel used a non-standard 'location' sysfs file
+SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="platform", \
+  ATTR{name}=="cros-ec-accel|cros-ec-accel-legacy", ATTR{location}=="base", \
+  IMPORT{builtin}="hwdb 'sensor:accel-base:modalias:$attr{modalias}:$attr{[dmi/id]modalias}'", \
+  GOTO="sensor_end"
+
+SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="platform", \
+  ATTR{name}=="cros-ec-accel|cros-ec-accel-legacy", ATTR{location}=="lid", \
+  IMPORT{builtin}="hwdb 'sensor:accel-display:modalias:$attr{modalias}:$attr{[dmi/id]modalias}'", \
+  GOTO="sensor_end"
+
 # device matching the sensor's name and the machine's DMI data for IIO devices
 SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="usb|i2c|platform", \
   IMPORT{builtin}="hwdb 'sensor:modalias:$attr{modalias}:$attr{[dmi/id]modalias}'", \