hwdb: Mark lis3lv02d sensors in HP laptops as being in the base

System Internals / systemd - Hans de Goede [redhat.com] - 5 September 2019 15:04 EDT

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.

4247938ee1 hwdb: Mark lis3lv02d sensors in HP laptops as being in the base
hwdb/60-sensor.hwdb | 17 ++---------------
1 file changed, 2 insertions(+), 15 deletions(-)

Upstream: github.com


  • Share