linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor
@ 2022-11-05 22:34 Yauhen Kharuzhy
  2022-11-06 17:36 ` Jonathan Cameron
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Yauhen Kharuzhy @ 2022-11-05 22:34 UTC (permalink / raw)
  To: linux-input, linux-iio, linux-kernel
  Cc: Benjamin Tissoires, Srinivas Pandruvada, Jonathan Cameron,
	Jiri Kosina, Yauhen Kharuzhy

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@gmail.com>
---
 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;
-- 
2.38.1


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

* Re: [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor
  2022-11-05 22:34 [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor Yauhen Kharuzhy
@ 2022-11-06 17:36 ` Jonathan Cameron
  2022-11-06 19:58   ` Yauhen Kharuzhy
  2022-11-12 16:09 ` srinivas pandruvada
  2022-11-14 14:01 ` Jiri Kosina
  2 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2022-11-06 17:36 UTC (permalink / raw)
  To: Yauhen Kharuzhy
  Cc: linux-input, linux-iio, linux-kernel, Benjamin Tissoires,
	Srinivas Pandruvada, Jiri Kosina

On Sun,  6 Nov 2022 00:34:22 +0200
Yauhen Kharuzhy <jekhor@gmail.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@gmail.com>

Purely for curiosity sake, but where are the two sets of sensors?
Doesn't look like it has two hinges at first glance!

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;


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

* Re: [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor
  2022-11-06 17:36 ` Jonathan Cameron
@ 2022-11-06 19:58   ` Yauhen Kharuzhy
  2022-11-12 15:49     ` Jonathan Cameron
  0 siblings, 1 reply; 6+ messages in thread
From: Yauhen Kharuzhy @ 2022-11-06 19:58 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-input, linux-iio, linux-kernel, Benjamin Tissoires,
	Srinivas Pandruvada, Jiri Kosina

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@gmail.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@gmail.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

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

* Re: [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor
  2022-11-06 19:58   ` Yauhen Kharuzhy
@ 2022-11-12 15:49     ` Jonathan Cameron
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2022-11-12 15:49 UTC (permalink / raw)
  To: Yauhen Kharuzhy
  Cc: linux-input, linux-iio, linux-kernel, Benjamin Tissoires,
	Srinivas Pandruvada, Jiri Kosina

On Sun, 6 Nov 2022 21:58:04 +0200
Yauhen Kharuzhy <jekhor@gmail.com> wrote:

> 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@gmail.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@gmail.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.

Thanks for the explanation.

Far as I'm concerned patch seems sensible.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> 
> > 
> > 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;  
> >   
> 


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

* Re: [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor
  2022-11-05 22:34 [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor Yauhen Kharuzhy
  2022-11-06 17:36 ` Jonathan Cameron
@ 2022-11-12 16:09 ` srinivas pandruvada
  2022-11-14 14:01 ` Jiri Kosina
  2 siblings, 0 replies; 6+ messages in thread
From: srinivas pandruvada @ 2022-11-12 16:09 UTC (permalink / raw)
  To: Yauhen Kharuzhy, linux-input, linux-iio, linux-kernel
  Cc: Benjamin Tissoires, Jonathan Cameron, Jiri Kosina

On Sun, 2022-11-06 at 00:34 +0200, Yauhen Kharuzhy 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@gmail.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>

> ---
>  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;


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

* Re: [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor
  2022-11-05 22:34 [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor Yauhen Kharuzhy
  2022-11-06 17:36 ` Jonathan Cameron
  2022-11-12 16:09 ` srinivas pandruvada
@ 2022-11-14 14:01 ` Jiri Kosina
  2 siblings, 0 replies; 6+ messages in thread
From: Jiri Kosina @ 2022-11-14 14:01 UTC (permalink / raw)
  To: Yauhen Kharuzhy
  Cc: linux-input, linux-iio, linux-kernel, Benjamin Tissoires,
	Srinivas Pandruvada, Jonathan Cameron

On Sun, 6 Nov 2022, Yauhen Kharuzhy 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@gmail.com>
> ---
>  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;

Applied, thanks.

-- 
Jiri Kosina
SUSE Labs


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

end of thread, other threads:[~2022-11-14 14:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-05 22:34 [PATCH] HID: hid-sensor-custom: Allow more than one hinge angle sensor Yauhen Kharuzhy
2022-11-06 17:36 ` Jonathan Cameron
2022-11-06 19:58   ` Yauhen Kharuzhy
2022-11-12 15:49     ` Jonathan Cameron
2022-11-12 16:09 ` srinivas pandruvada
2022-11-14 14:01 ` Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).