From: Bastien Nocera <hadess@hadess.net>
To: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Patrick <ctx.xda@gmail.com>
Cc: jikos@kernel.org, benjamin.tissoires@redhat.com,
jic23@kernel.org, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH] HID: Add quirk for Lenovo Yoga 910 with ITE Chips
Date: Tue, 18 Jul 2017 01:22:03 +0200 [thread overview]
Message-ID: <1500333723.24690.8.camel@hadess.net> (raw)
In-Reply-To: <1500322784.21514.33.camel@linux.intel.com>
On Mon, 2017-07-17 at 13:19 -0700, Srinivas Pandruvada wrote:
> On Sat, 2017-07-15 at 22:05 +0200, Patrick wrote:
> > On Sat, Jul 15, 2017 at 07:58:10PM +0200, Bastien Nocera wrote:
> > >
> > > On Sat, 2017-07-15 at 19:52 +0200, Patrick Pedersen wrote:
> > > >
> > > > On Sat, Jul 15, 2017 at 4:29 PM, Bastien Nocera <hadess@hadess.
> > > > ne
> > > > t>
> > > > wrote:
> > > > >
> > > > > On Sat, 2017-07-15 at 14:27 +0200, Patrick Pedersen wrote:
> > > > > >
> > > > > > As with previous generations of this device (see https://pa
> > > > > > tc
> > > > > > hwor
> > > > >
> > > > > k.ke
> > > > > >
> > > > > > rnel.org/patch/7887361/), the ITE
> > > > > > HID Sensor Hub, responsible for the accelerometer and als
> > > > > > sensor,
> > > > > > requires a quirk entry.
> > > > > >
> > > > > > Without the entry, the Sensor Hub can't be accessed and the
> > > > >
> > > > > kernel
> > > > > >
> > > > > > fails to report any movements. As a result
> > > > > > iio-sensor-proxy receives no new data.
> > > > > >
> > > > > > It shall additionally be noted that the i2c-hid 'sleep' bug
> > > > >
> > > > > (present
> > > > > >
> > > > > > since kernel ver. 4.3)
> > > > > > still affects the driver. This means that the sensor hub
> > > > > > will
> > > > > > not
> > > > > > report any movement, until
> > > > > > the device is suspended and resumed.
Those are the same symptoms as the problem I reported here:
https://www.spinics.net/lists/linux-iio/msg29983.html
> Can you try some tests for this for test? I want to see if sensors
> are
> powered off or transport didn't wake up? So forcing the sensors to
> keep
> power on.
I tested the patch below using a HID sensor (ColorHug ALS) and it
failed in the same way with and without the patch you have below.
Hans also had an idea that this might be due to the PM suspend. The 3-
second sleep that you need to remove from iio-sensor-proxy matches the
default autosuspend delay at:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/iio/common/hid-sensors/hid-sensor-trigger.c#n285
But setting "->common_attributes.data_ready" to 1 in each of the
driver's original states didn't work out.
Knowing that it affects both i2c and USB is a good bit of information
though, meaning that the problem probably lies in the IIO subsystem.
Or possibly a change of behaviour in the PM subsystem which made the
IIO trigger stop working. If Rafael could do a review on the code
linked above, that'd be really helpful.
Note that in addition to the patches I mentioned in the kernel thread
above, you'll need to revert this patch in iio-sensor-proxy:
https://github.com/hadess/iio-sensor-proxy/commit/5468452f7a72566d2e6ddc44f9396d3d088fa9fb
Otherwise things work :/
> diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> index 16ade0a..a70df7e 100644
> --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> @@ -110,6 +110,9 @@ static int _hid_sensor_power_state(struct
> hid_sensor_common *st, bool state)
> int report_val;
> s32 poll_value = 0;
>
> + st->power_state.logical_minimum = 1;
> + st->report_state.logical_minimum = 1;
> +
> if (state) {
> if (!atomic_read(&st->user_requested_state))
> return 0;
> @@ -146,6 +149,9 @@ static int _hid_sensor_power_state(struct
> hid_sensor_common *st, bool state)
> HID_USAGE_SENSOR_PROP_REPORTING_STATE_NO_EVEN
> TS
> _ENUM);
> }
>
> + state_val = 0;
> + report_val = 0;
> +
> if (state_val >= 0) {
> state_val += st->power_state.logical_minimum;
> sensor_hub_set_feature(st->hsdev, st-
> > power_state.report_id,
next prev parent reply other threads:[~2017-07-17 23:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-15 12:27 [PATCH] HID: Add quirk for Lenovo Yoga 910 with ITE Chips Patrick Pedersen
2017-07-15 14:29 ` Bastien Nocera
[not found] ` <CAA7d1im1hxM13SrsF5pQsJmtugjT2CJZnJdmbC2KxL5_QPXd_Q@mail.gmail.com>
2017-07-15 17:58 ` Bastien Nocera
[not found] ` <1500141490.2490.1.camel-0MeiytkfxGOsTnJN9+BGXg@public.gmane.org>
2017-07-15 20:05 ` Patrick
2017-07-17 20:19 ` Srinivas Pandruvada
2017-07-17 23:22 ` Bastien Nocera [this message]
2017-07-16 7:39 ` Arek Burdach
[not found] ` <af21ea47-29df-443d-0a3d-5fc36d8cf119-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-16 10:23 ` Brian Masney
2017-07-17 6:26 ` Arek Burdach
2017-07-17 19:58 ` Srinivas Pandruvada
2017-08-01 12:23 ` Patrick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1500333723.24690.8.camel@hadess.net \
--to=hadess@hadess.net \
--cc=benjamin.tissoires@redhat.com \
--cc=ctx.xda@gmail.com \
--cc=jic23@kernel.org \
--cc=jikos@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=srinivas.pandruvada@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).