Merge pull request #24353 from alpernebbi/hwdb-cros-ec-accel-base

udev: hwdb: Add orientation quirk for base-mounted accelerometers on Chromebooks

Reviewed-by: Alexandru Stan <amstan@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
This commit is contained in:
Yu Watanabe
2022-08-19 14:39:47 +09:00
committed by GitHub
3 changed files with 41 additions and 3 deletions
+11 -2
View File
@@ -4,10 +4,13 @@
# 60-sensor.rules
#
# Match string formats:
# sensor:<label>:modalias:<parent modalias pattern>:dmi:<dmi pattern>
# sensor:modalias:<parent modalias pattern>:dmi:<dmi pattern>
#
# The device modalias can be seen in the `modalias` file of the sensor parent,
# and the device label can be seen in the `label` file of the sensor,
# for example:
# cat /sys/`udevadm info -q path -n /dev/iio:device0`/label
# cat /sys/`udevadm info -q path -n /dev/iio:device0`/../modalias
#
# The full DMI string of the running machine can be read from
@@ -410,10 +413,16 @@ sensor:modalias:acpi:KXCJ9000*:dmi:*:bvrZY-8-BI-PX4S70VTR400-X423B-005-D:*:rvnAM
# CrOS EC & kernel drivers internally correct for per-board sensor orientations,
# but they return values in the inverse direction (Android & W3C specs vs HID).
sensor:modalias:platform:cros-ec-accel:*
sensor:modalias:platform:cros-ec-accel-legacy:*
sensor:accel-display:modalias:platform:cros-ec-accel:*
sensor:accel-display:modalias:platform:cros-ec-accel-legacy:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
sensor:modalias:platform:cros-ec-accel-legacy:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
# Base accel reports the same as display when lid angle is 180 degrees (vs 0),
# so it needs an additional 180 degree rotation around the X axis.
sensor:accel-base:modalias:platform:cros-ec-accel:*
sensor:accel-base:modalias:platform:cros-ec-accel-legacy:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# GP-electronic
+14 -1
View File
@@ -72,7 +72,20 @@ TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
'keyboard': ('name', ),
'sensor': ('modalias', ),
'sensor': ('modalias',
'accel-base',
'accel-display',
'accel-camera',
'proximity-palmrest',
'proximity-palmrest-left',
'proximity-palmrest-right',
'proximity-lap',
'proximity-wifi',
'proximity-lte',
'proximity-wifi-lte',
'proximity-wifi-left',
'proximity-wifi-right',
),
'ieee1394-unit-function' : ('node', ),
'camera': ('usb'),
}
+16
View File
@@ -2,6 +2,22 @@
ACTION=="remove", GOTO="sensor_end"
# device matching the sensor's label, name and the machine's DMI data for IIO devices
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}'", \