The lis3lv02d sensor used in many HP laptops is (almost) always intented
primarily for freefall detection / HDD protection and (almost) always
is located in the base of a classic clamshell laptop
Before we had the ACCEL_LOCATION udev property the issues this caused
with screen-rotation were fixed by applying a mount-matrix which
translates base-coordinates to display-coordinates assuming the display
is at an angle of exact 90 degrees to the base (swap Y and Z axis).
The comment calls this translate "from "can play neverball" to
"matches Windows 8 orientation"" but what it really does is translate
base accel-axis to display accel-axis. Thus allows rotating the screen
if you put the laptop on its side, but no-one normally does that with
a 2Kg clamshell laptop.
The obviously correct thing to do on classic clamshell laptops (not 2-in-1s)
is to disable automatic screen rotation. This commit marks the accelerometer
in these laptops as being part of the base, which will make iio-sensor-proxy
disable automatic screen rotation.
This commit also removes the orientation-matrix since the unmodified coordinates
coming from the sensor are oriented correctly for a sensor in the base.
Also see the "Bad accelerometer values cause incorrect screen rotation"
systemd-devel mail-thread from September 2019.
The acceleromater in the GPD win is in the base, mark it as such so that
iio-sensor-proxy does not try to use it for display rotation.
Note as mentioned in the added comment the DMI strings are unfortunately
somewhat generic, but the combination of using all DMI strings including
the BIOS build data + the sensor modalias should be unique enough.
This fixes the accelerometer for the Linx 12V64.
Note that even though the configuration for both models is the same, the 12V64 and 12X64 are different models.
add ACCEL_MOUNT_MATRIX for IdeaPad Miix510-12ISK
multiple match expressions for Miix510 series
extend comments for miix510 series
Signed-off-by: Bruce Zhang <zttt183525594@gmail.com>
add device hwdb for IdeaPad Miix510-12ISK
Signed-off-by: Bruce Zhang <zttt183525594@gmail.com>
HP laptops and desktop containing the lis3lv02d device (as supported by
the drivers/platform/x86/hp_accel.c driver) are supposed to output their
values according to their "standard" orientation, one that
corresponds to "can play neverball".
For all those devices, we need to convert that "neverball" orientation
to a "Windows 8" orientation. We will not accept quirks for HP machines
that use the lis3lv02d device, they should go in the hp_accel.c driver
instead.
Closes: #5160