lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y2gRzHpH5FwNVBoO@jeknote.loshitsa1.net>
Date:   Sun, 6 Nov 2022 21:58:04 +0200
From:   Yauhen Kharuzhy <jekhor@...il.com>
To:     Jonathan Cameron <jic23@...nel.org>
Cc:     linux-input@...r.kernel.org, linux-iio@...r.kernel.org,
        linux-kernel@...r.kernel.org,
        Benjamin Tissoires <benjamin.tissoires@...hat.com>,
        Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>,
        Jiri Kosina <jikos@...nel.org>
Subject: Re: [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle
 sensor

On Sun, Nov 06, 2022 at 05:36:43PM +0000, Jonathan Cameron wrote:
> On Sun,  6 Nov 2022 00:34:22 +0200
> Yauhen Kharuzhy <jekhor@...il.com> wrote:
> 
> > Some devices has two sets of accelerometers and the sensor hub exports
> > two hinge angle 'sensors' based on accelerometer values. To allow more
> > than one sensor of the same type, use PLATFORM_DEVID_AUTO instead of
> > PLATFORM_DEVID_NONE when registering platform device for it.
> > 
> > Checked on the Lenovo Yoga Book YB1-X91L tablet.
> > 
> > Signed-off-by: Yauhen Kharuzhy <jekhor@...il.com>
> 
> Purely for curiosity sake, but where are the two sets of sensors?
> Doesn't look like it has two hinges at first glance!

It sounds crazy, yes :)

The Lenovo Yoga Book YB1-X91L looks to be strange device in many ways.

There are two accelerometers at display side and two at keyboard side (for
detecting the rotation movement as I understand). For
some reasons ISH exposed two virtual hinge angle sensors (I guess that
one for each pair of accelerometers):

...
[    6.230627] Registering platform device 'HID-SENSOR-INT-020b.35.auto'. Parent at 001F:8087:0AC2.0005
[    6.230658] device: 'HID-SENSOR-INT-020b.35.auto': device_add
[    6.230705] bus: 'platform': add device HID-SENSOR-INT-020b.35.auto
[    6.230737] PM: Adding info for platform:HID-SENSOR-INT-020b.35.auto
...
[    6.249248] Registering platform device 'HID-SENSOR-INT-020b.36.auto'. Parent at 001F:8087:8AC2.0006
[    6.249266] device: 'HID-SENSOR-INT-020b.36.auto': device_add
[    6.249295] bus: 'platform': add device HID-SENSOR-INT-020b.36.auto
[    6.249394] PM: Adding info for platform:HID-SENSOR-INT-020b.36.auto

This is senseless but it is what it is. Moreover, this 'sensor' is always
returns 360 degrees angle, although display and keyboard 'absolute' angles are
reported correctly.

In any way, this patch is generic and will be useful for other custom HID
sensors if they will be added in the future.

> 
> Jonathan
> 
> > ---
> >  drivers/hid/hid-sensor-custom.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
> > index 32c2306e240d6..a6fc89ee1287c 100644
> > --- a/drivers/hid/hid-sensor-custom.c
> > +++ b/drivers/hid/hid-sensor-custom.c
> > @@ -862,7 +862,7 @@ hid_sensor_register_platform_device(struct platform_device *pdev,
> >  		return ERR_PTR(-ENOMEM);
> >  
> >  	custom_pdev = platform_device_register_data(pdev->dev.parent, dev_name,
> > -						    PLATFORM_DEVID_NONE, hsdev,
> > +						    PLATFORM_DEVID_AUTO, hsdev,
> >  						    sizeof(*hsdev));
> >  	kfree(dev_name);
> >  	return custom_pdev;
> 

-- 
Yauhen Kharuzhy

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ