2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-11 07:04:04 +08:00
linux-next/drivers/iio
Hans de Goede addab6febc iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle
Some 360 degree hinges (yoga) style 2-in-1 devices use 2 bmc150 accels
to allow the OS to determine the angle between the display and the base
of the device, so that the OS can determine if the 2-in-1 is in laptop
or in tablet-mode.

On Windows both accelerometers are read (polled) by a special service
and this service calls the DSM (Device Specific Method), which in turn
translates the angles to one of laptop/tablet/tent/stand mode and then
notifies the EC about the new mode and the EC then enables or disables
the builtin keyboard and touchpad based in the mode.

When the 2-in-1 is powered-on or resumed folded in tablet mode the
EC senses this independent of the DSM by using a HALL effect sensor
which senses that the keyboard has been folded away behind the display.

At power-on or resume the EC disables the keyboard based on this and
the only way to get the keyboard to work after this is to call the
DSM to re-enable it.

Call the DSM on probe() and resume() to fix the keyboard not working
when powered-on / resumed in tablet-mode.

This patch was developed and tested on a Lenovo Yoga 300-IBR.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20210523170103.176958-8-hdegoede@redhat.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2021-06-09 20:53:15 +01:00
..
accel iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle 2021-06-09 20:53:15 +01:00
adc 1st set of new IIO/counter device support, features and cleanup for 5.14 2021-06-09 12:11:49 +02:00
afe iio: afe: iio-rescale: Support processed channels 2021-06-03 18:24:13 +01:00
amplifiers iio: amplifiers: hmc425a: Simplify with dev_err_probe() 2020-09-03 19:40:50 +01:00
buffer iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
cdc iio:cdc:ad7150: Fix use of uninitialized ret 2021-04-07 08:36:39 +01:00
chemical iio: chemical: sgp30: Drop use of %hx in format string. 2021-06-03 18:24:13 +01:00
common iio: hid: trigger: Balance runtime pm + use pm_runtime_resume_and_get() 2021-06-03 18:24:12 +01:00
dac 1st set of new IIO/counter device support, features and cleanup for 5.14 2021-06-09 12:11:49 +02:00
dummy iio: dummy: iio_simple_dummy_buffer: use triggered buffer core calls 2021-03-11 20:47:05 +00:00
frequency iio: frequency: adf4350: Remove redundant null check before clk_disable_unprepare 2021-01-09 21:52:46 +00:00
gyro 1st set of new IIO/counter device support, features and cleanup for 5.14 2021-06-09 12:11:49 +02:00
health iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
humidity iio: humidity: am2315: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:29 +01:00
imu iio: imu: inv_mpu6050: Drop use of %hhx format string. 2021-06-09 18:31:03 +01:00
light iio: light: si1145: Drop use of %hhx format specifier. 2021-06-09 18:31:03 +01:00
magnetometer iio: magnetometer: st_magn: Support mount matrix 2021-06-03 18:24:13 +01:00
multiplexer iio: multiplexer: iio-mux: Simplify with dev_err_probe() 2020-09-03 19:40:51 +01:00
orientation iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER 2021-05-10 14:01:48 +01:00
position iio: position: hid-sensor-custom-intel-hinge: Drop duplicate parent setting. 2021-05-17 13:49:12 +01:00
potentiometer iio: use getter/setter functions 2021-03-11 20:47:07 +00:00
potentiostat iio: potentiostat: lmp91000: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:30 +01:00
pressure iio: st_sensors: Make accel, gyro, magn and pressure probe shared 2021-05-17 13:54:22 +01:00
proximity iio: prox: as3935: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:29 +01:00
resolver iio:resolver:ad2s1200: Drop of_match_ptr protection 2020-09-21 18:41:31 +01:00
temperature iio: temp: mlx90614: Handle failure in pm_runtime_resume_and_get() 2021-05-17 13:54:26 +01:00
test iio: Add basic unit test for iio_format_value() 2021-03-11 20:47:00 +00:00
trigger iio: trigger: stm32-timer: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-05-17 13:49:05 +01:00
iio_core_trigger.h iio: core-trigger: make iio_device_register_trigger_consumer() an int return 2021-03-11 20:47:02 +00:00
iio_core.h iio: buffer: fix use-after-free for attached_buffers array 2021-03-25 19:13:51 +00:00
industrialio-buffer.c iio: buffer: Remove redundant assignment to in_loc 2021-06-03 18:24:12 +01:00
industrialio-configfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-core.c iio: Drop Duplicated "mount-matrix" parameter 2021-06-03 18:24:13 +01:00
industrialio-event.c iio:event: Add timeout event info type 2021-04-07 08:36:36 +01:00
industrialio-sw-device.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-sw-trigger.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
industrialio-trigger.c iio: core: move @trig_readonly from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
industrialio-triggered-event.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
inkern.c iio: core: move @info_exist_lock to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
Kconfig iio:cdc:ad7150: Move driver out of staging. 2021-04-07 08:36:37 +01:00
Makefile iio:cdc:ad7150: Move driver out of staging. 2021-04-07 08:36:37 +01:00
TODO iio: add a TODO 2020-03-08 17:28:53 +00:00