From ac3c031e3862e3d74e64b108e0bafcaefa71c792 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Thu, 18 Aug 2022 19:56:13 +0300 Subject: [PATCH] udev: hwdb: Add rules to match cros-ec-accel by 'location' sysfs file 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 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rules.d/60-sensor.rules b/rules.d/60-sensor.rules index 99b8f5fc7a..09180b4b2c 100644 --- a/rules.d/60-sensor.rules +++ b/rules.d/60-sensor.rules @@ -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}'", \