All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] iio: accel: bmc150: Add support for yoga's with dual accelerometers with an ACPI HID of DUAL250E
@ 2021-05-21 17:14 ` Hans de Goede
  0 siblings, 0 replies; 58+ messages in thread
From: Hans de Goede @ 2021-05-21 17:14 UTC (permalink / raw)
  To: Jonathan Cameron, Liam Girdwood, Mark Brown
  Cc: Hans de Goede, Lars-Peter Clausen, Jeremy Cline, linux-iio,
	Charles Keepax, patches, alsa-devel

Hi All,

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.

We already support this setup on devices using a single ACPI node
with a HID of "BOSC0200" to describe both accelerometers. This patch
set extends this support to also support the same setup but then
using a HID of "DUAL250E".

While testing this I found some crashes on rmmod, patches 1-2
fix those patches, patch 3 does some refactoring and patch 4
adds support for the "DUAL250E" HID.

Unfortunately we need some more special handling though, which the
rest of the patches are for.

On Windows both accelerometers are read (polled) by a special service
and this service calls a 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 (similar to how we also need to call a special
DSM in the kxcjk-1013.c accel driver to re-enable the keyboard).

Patches 5-7 deal with the DSM mess and patch 8 adds labels to the
2 accelerometers specifying which one is which.

Regards,

Hans


Hans de Goede (8):
  iio: accel: bmc150: Fix dereferencing the wrong pointer in
    bmc150_get/set_second_device
  iio: accel: bmc150: Don't make the remove function of the second
    accelerometer unregister itself
  iio: accel: bmc150: Move check for second ACPI device into a separate
    function
  iio: accel: bmc150: Add support for dual-accelerometers with a
    DUAL250E HID
  iio: accel: bmc150: Move struct bmc150_accel_data definition to
    bmc150-accel.h
  iio: accel: bmc150: Remove bmc150_set/get_second_device() accessor
    functions
  iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the
    hinge angle
  iio: accel: bmc150: Set label based on accel-location for ACPI
    DUAL250E fwnodes

 drivers/iio/accel/bmc150-accel-core.c |  87 ++----------
 drivers/iio/accel/bmc150-accel-i2c.c  | 192 +++++++++++++++++++++-----
 drivers/iio/accel/bmc150-accel.h      |  66 ++++++++-
 3 files changed, 239 insertions(+), 106 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 58+ messages in thread

end of thread, other threads:[~2021-05-23 11:07 UTC | newest]

Thread overview: 58+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-21 17:14 [PATCH 0/8] iio: accel: bmc150: Add support for yoga's with dual accelerometers with an ACPI HID of DUAL250E Hans de Goede
2021-05-21 17:14 ` Hans de Goede
2021-05-21 17:14 ` [PATCH 1/8] iio: accel: bmc150: Fix dereferencing the wrong pointer in bmc150_get/set_second_device Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-21 17:14 ` [PATCH 2/8] iio: accel: bmc150: Don't make the remove function of the second accelerometer unregister itself Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-22 18:06   ` Andy Shevchenko
2021-05-22 18:06     ` Andy Shevchenko
2021-05-22 18:10     ` Hans de Goede
2021-05-22 18:10       ` Hans de Goede
2021-05-21 17:14 ` [PATCH 3/8] iio: accel: bmc150: Move check for second ACPI device into a separate function Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-22 17:37   ` Jonathan Cameron
2021-05-22 17:37     ` Jonathan Cameron
2021-05-22 17:39     ` Hans de Goede
2021-05-22 17:39       ` Hans de Goede
2021-05-22 18:09   ` Andy Shevchenko
2021-05-22 18:09     ` Andy Shevchenko
2021-05-22 18:57     ` Hans de Goede
2021-05-22 18:57       ` Hans de Goede
2021-05-21 17:14 ` [PATCH 4/8] iio: accel: bmc150: Add support for dual-accelerometers with a DUAL250E HID Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-22 17:43   ` Jonathan Cameron
2021-05-22 17:43     ` Jonathan Cameron
2021-05-22 17:44     ` Hans de Goede
2021-05-22 17:44       ` Hans de Goede
2021-05-22 17:56       ` Jonathan Cameron
2021-05-22 17:56         ` Jonathan Cameron
2021-05-22 18:11   ` Andy Shevchenko
2021-05-22 18:11     ` Andy Shevchenko
2021-05-22 18:59     ` Hans de Goede
2021-05-22 18:59       ` Hans de Goede
2021-05-21 17:14 ` [PATCH 5/8] iio: accel: bmc150: Move struct bmc150_accel_data definition to bmc150-accel.h Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-21 17:14 ` [PATCH 6/8] iio: accel: bmc150: Remove bmc150_set/get_second_device() accessor functions Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-21 17:14 ` [PATCH 7/8] iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-22 17:53   ` Jonathan Cameron
2021-05-22 17:53     ` Jonathan Cameron
2021-05-22 18:21   ` Andy Shevchenko
2021-05-22 18:21     ` Andy Shevchenko
2021-05-22 19:02     ` Hans de Goede
2021-05-22 19:02       ` Hans de Goede
2021-05-21 17:14 ` [PATCH 8/8] iio: accel: bmc150: Set label based on accel-location for ACPI DUAL250E fwnodes Hans de Goede
2021-05-21 17:14   ` Hans de Goede
2021-05-22 18:34   ` Andy Shevchenko
2021-05-22 18:34     ` Andy Shevchenko
2021-05-22 19:04     ` Hans de Goede
2021-05-22 19:04       ` Hans de Goede
2021-05-22 18:01 ` [PATCH 0/8] iio: accel: bmc150: Add support for yoga's with dual accelerometers with an ACPI HID of DUAL250E Jonathan Cameron
2021-05-22 18:01   ` Jonathan Cameron
2021-05-22 18:03   ` Andy Shevchenko
2021-05-22 18:03     ` Andy Shevchenko
2021-05-22 18:49     ` Jonathan Cameron
2021-05-22 18:49       ` Jonathan Cameron
2021-05-23 11:05   ` Hans de Goede
2021-05-23 11:05     ` Hans de Goede

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.