Hi Bastien, Thanks for your suggestion. I just tried to add the following line into /lib/udev/hwdb.d/60-sensor.hwdb and got the correct screen rotation. But the cursor is still un-rotated, the cursor is drawn upside down, and its coordinates are inverted. ######################################### # STMicro ######################################### sensor:modalias:platform:platform:HID-SENSOR-200073 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1 It looks like we should introduce a quirk into hid_sensor_accel_3d driver. There are 3 different scale variables in hid_sensor_accel_3d, but I don't see any of them would work the way I want. Do you mean to introduce new scale variables? drivers/iio/accel/hid-sensor-accel-3d.c:34: int scale_pre_decml; drivers/iio/accel/hid-sensor-accel-3d.c:35: int scale_post_decml; drivers/iio/accel/hid-sensor-accel-3d.c:36: int scale_precision; Bastien Nocera <hadess@xxxxxxxxxx> 於 2019年12月26日 週四 下午11:03寫道: > > On Thu, 2019-12-26 at 17:22 +0800, AceLan Kao wrote: > > Hi all, > > > > I'm working on a new platform which comes with an accelerator meter. > > It's a STMicroelectronics LSM6DS3US accelerator meter, it doesn't use > > st_sensors driver, but hid_sensor_accel_3d. > > After hid_sensor_accel_3d is loaded, the display becomes upside down, > > so I tried to add some code to make it become normal.(ACCEL_X should > > have the same modification) > > > > I don't know how to fix this in a correct way, please give me some > > hints. > > This needs to be done as a quirk, either by applying a quirk for the > HID descriptors (which should have a definition of the scale, which > would be negative for this device), or in user-space in systemd's hwdb > database, which your user-space consumers need to take care of: > https://github.com/systemd/systemd/blob/master/hwdb.d/60-sensor.hwdb > > Cheers >