Re: [PATCH] iio: accel: add missing sensor for some 2-in-1 based ultrabooks

From: LuÃs Ferreira
Date: Fri Apr 05 2019 - 19:01:26 EST


Hi,

> Basically we need to come up with a convention to (optionally) indicate
> the sensors location with a udev attribute set by:
> /lib/udev/hwdb.d/60-sensor.hwdb

So should we start adding `ACCEL_LOCATION=display` and
`ACCEL_LOCATION=keyboard` attributes to that file and patch
iio-sensor-proxy to ignore the keyboard ones as a first step ?

Best Regards,
LuÃs

Sincerely,
LuÃs Ferreira
E2AB 2BF8 F3EC ABE2 E149 F2FD BC43 0831 9CE4 0B64 (plain text)



Aurora Free Open Source Software is a non-profit organization that
promote free and open source software. All applications, source code
and services are complete open and free to use according to a valid
Open Source license. Check out more at https://www.aurorafoss.org/ .

---
PRIVILEGED & CONFIDENTIAL COMMUNICATIONS
This email and all rights associated with it are the property of LuÃs Ferreira.
It contains material for which legal professional privilege is
claimed. The contents of this email may not be examined, removed or
reproduced without my express written permission by LuÃs Ferreira. The
information contained in this e-mail message and any accompanying
files is or may be confidential. It is intended only for the
addressee. If you are not the intended recipient, any use,
dissemination, reliance, forwarding, printing or copying of this
e-mail or any attached files is unauthorised. This e-mail is subject
to copyright. No part of it should be reproduced, adapted or
communicated without the written consent of the copyright owner. If
you have received this e-mail in error please advise the sender
immediately by return e-mail or telephone and delete all copies. LuÃs
Ferreira does not guarantee the accuracy or completeness of any
information contained in this e-mail or attached files. Internet
communications are not secure, therefore LuÃs Ferreira does not accept
legal responsibility for the contents of this message or attached
files.


On Wed, 3 Apr 2019 at 10:10, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>
> Hi,
>
> On 02-04-19 18:04, LuÃs Ferreira wrote:
> > Some ultrabooks, like Teclast F6 Pro, use KIOX010A sensor on display
> > and KIOX020A sensor on keyboard base, to detect tablet mode or screen
> > orientation.
>
> I deliberately left out the KIOX020A id for now, because currently
> userspace cannot really deal with having 2 sensors.
>
> See:
> https://github.com/systemd/systemd/issues/6557
> https://github.com/hadess/iio-sensor-proxy/issues/166
>
> Basically we need to come up with a convention to (optionally) indicate
> the sensors location with a udev attribute set by:
> /lib/udev/hwdb.d/60-sensor.hwdb
>
> And then patch iio-sensor-proxy to consume that attribute and ignore
> the one which has e.g. ACCEL_LOCATION=keyboard in its udev properties
>
> Ignoring would be a first step, maybe later it can do something useful
> with it, see e.g. : https://github.com/alesguzik/linux_detect_tablet_mode
>
> IMHO we really should minimally get code in place for iio-sensor-proxy
> to ignore the keyboard accelerometer before merging this patch.
>
> I realize that having the code in place will not magically get it on
> all users machines, but I believe this is the minimum which needs to
> happen before we push this out and potentially breaks people screen
> rotation.
>
> I've had working on this on my TODO list for a long long time now,
> but -ENOTIME. If you have some time to work on this then that would
> be great.
>
> Regards,
>
> Hans
>
>
>
>
> >
> > Signed-off-by: LuÃs Ferreira <luis@xxxxxxxxxxxxxx>
> > ---
> > drivers/iio/accel/kxcjk-1013.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> > index 7096e577b23f..9a5e445facc1 100644
> > --- a/drivers/iio/accel/kxcjk-1013.c
> > +++ b/drivers/iio/accel/kxcjk-1013.c
> > @@ -1492,6 +1492,7 @@ static const struct acpi_device_id kx_acpi_match[] = {
> > {"KIOX0009", KXTJ21009},
> > {"KIOX000A", KXCJ91008},
> > {"KIOX010A", KXCJ91008}, /* KXCJ91008 inside the display of a 2-in-1 */
> > + {"KIOX020A", KXCJ91008},
> > {"KXTJ1009", KXTJ21009},
> > {"KXJ2109", KXTJ21009},
> > {"SMO8500", KXCJ91008},
> >