From: "Pandruvada, Srinivas" <srinivas.pandruvada-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: "linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"Song,
Hongyan" <hongyan.song-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
<jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: "jikos-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
<jikos-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH] iio: hid-sensor-trigger: Change get poll value function order to avoid sensor properties losing after resume from S3
Date: Mon, 27 Feb 2017 01:37:17 +0000 [thread overview]
Message-ID: <1488159432.3489.1.camel@intel.com> (raw)
In-Reply-To: <AE3E3DFA698D6144A7445C92D1D41E2F10BE0440-0J0gbvR4kTggGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Mon, 2017-02-27 at 01:00 +0000, Song, Hongyan wrote:
> Hi Jonathan,
> I add more information about the patch:
>
> Bug found:
> When we cat sensor incli sensor data with hysteresis value is 0,
> there always have streamed sensor data output,
> But when system enter S3 and resume back, the streaming thread is
> still on but there is not streaming sensor data output.
> Test data as below:
> 279: 2017-01-24 01:16:00.279385 *5* incli_3d: Min Delta: 99.779ms,
> Max Delta: 100.316ms, Received: 10/s, Overall: 170/16s; Sample values
> ,0.010546,-0.006712,2.797579
> 280: 2017-01-24 01:16:41.211385 *5* incli_3d: Min Delta: 100.16ms,
> Max Delta: 40924.6ms, Received: 2/s, Overall: 172/19s; Sample values
> ,0.010546,-0.006712,2.797579
> 281: 2017-01-24 01:16:42.219892 *5* incli_3d: Min Delta: 0.023ms, Max
> Delta: 543.28ms, Received: 2/s, Overall: 174/20s; Sample values
> ,0.010546,-0.006712,2.797579
> 282: 2017-01-24 01:16:42.755548 *4*
> CIIOSensorInform::sensor_wait_event poll timeout
> 283: 2017-01-24 01:16:43.223062 *5* incli_3d: Min Delta: --, Max
> Delta: --, Received: 0/s, Overall: 174/21s
> 284: 2017-01-24 01:16:43.756980 *4*
> CIIOSensorInform::sensor_wait_event poll timeout
> 285: 2017-01-24 01:16:44.225527 *5* incli_3d: Min Delta: --, Max
> Delta: --, Received: 0/s, Overall: 174/22s
> 286: 2017-01-24 01:16:44.758467 *4*
> CIIOSensorInform::sensor_wait_event poll timeout
> 287: 2017-01-24 01:16:45.228082 *5* incli_3d: Min Delta: --, Max
> Delta: --, Received: 0/s, Overall: 174/23s
> 288: 2017-01-24 01:16:45.759958 *4*
> CIIOSensorInform::sensor_wait_event poll timeout
>
> Root cause:
> when sensor resume back from S3, the sensor property user set is
> lost.
> For example, if we set sensor hysteresis value to be 0, then let
> system enter S3, when resume back, the hysteresis value will be not 0
> but the default value 1.
>
> this is not what we want, resume back from S3 should not lose the
> properties which is set before S3, just because the property setting
> sequence lead to this lose.
>
> This is patch is a fix patch and needed for stable.
But not urgent.
Thanks,
Srinivas
>
> Thanks a lot!
>
> BR
> Song Hongyan
>
>
> -----Original Message-----
> From: Jonathan Cameron [mailto:jic23@kernel.org]
> Sent: Sunday, February 26, 2017 12:52 AM
> To: Pandruvada, Srinivas <srinivas.pandruvada@intel.com>; linux-input
> @vger.kernel.org; Song, Hongyan <hongyan.song@intel.com>; linux-iio@v
> ger.kernel.org
> Cc: jikos@kernel.org
> Subject: Re: [PATCH] iio: hid-sensor-trigger: Change get poll value
> function order to avoid sensor properties losing after resume from S3
>
> On 22/02/17 05:40, Pandruvada, Srinivas wrote:
> > On Wed, 2017-02-22 at 17:17 +0800, Song Hongyan wrote:
> > > In function _hid_sensor_power_state(), when
> > > hid_sensor_read_poll_value()
> > > is called, sensor's all properties will be updated by the value
> > > from
> > > sensor hardware/firmware.
> > > In some implementation, sensor hardware/firmware will do a power
> > > cycle during S3. In this case, after resume, once
> > > hid_sensor_read_poll_value()
> > > is called, sensor's all properties which are kept by driver
> > > during S3
> > > will be changed to default value.
> > > But instead, if a set feature function is called first, sensor
> > > hardware/firmware will be recovered to the last status. So change
> > > the
> > > sensor_hub_set_feature() calling order to behind of set feature
> > > function to avoid sensor properties lose.
> > >
> > > Signed-off-by: Song Hongyan <hongyan.song@intel.com>
> >
> > Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
>
> Hi Song,
>
> The patch message, whilst excellent on the technical detail, gives me
> no sense of urgency on this. Is this a fix we want to have heading
> for stable ASAP or are we looking at something seen in some
> developmental hardware for example?
> Links to bug reports, or examples of hardware suffering from the
> issue are always helpful as well.
>
> Also for something like this a 'fixes' tag is very helpful when
> people are looking to back port it.
>
> Anyhow, I'm going to hold off on taking this one until I have more
> information. Right now it makes little difference as the next fixes
> pull request from me will probably not be until next weekend.
>
> Thanks,
>
> Jonathan
> >
> > > ---
> > > drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 6 +++---
> > > 1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > index a3cce3a..ecf592d 100644
> > > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > @@ -51,8 +51,6 @@ static int _hid_sensor_power_state(struct
> > > hid_sensor_common *st, bool state)
> > > st->report_state.report_id,
> > > st->report_state.index,
> > > HID_USAGE_SENSOR_PROP_REPORTING_STATE_AL
> > > L_EV
> > > ENTS_ENUM);
> > > -
> > > - poll_value = hid_sensor_read_poll_value(st);
> > > } else {
> > > int val;
> > >
> > > @@ -89,7 +87,9 @@ static int _hid_sensor_power_state(struct
> > > hid_sensor_common *st, bool state)
> > > sensor_hub_get_feature(st->hsdev, st-
> > > >power_state.report_id,
> > > st->power_state.index,
> > > sizeof(state_val), &state_val);
> > > - if (state && poll_value)
> > > + if (state)
> > > + poll_value = hid_sensor_read_poll_value(st);
> > > + if (poll_value > 0)
> > > msleep_interruptible(poll_value * 2);
> > >
> > > return
> > > 0;N r y b X ǧv ^ ){.n + { *" ^n r z \x1a h & \x1e
> > > G
> > > h \x03( 階 ݢj" \x1a ^[m z ޖ f h ~ mml==
>
>
next prev parent reply other threads:[~2017-02-27 1:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-22 9:17 [PATCH] iio: hid-sensor-trigger: Change get poll value function order to avoid sensor properties losing after resume from S3 Song Hongyan
[not found] ` <1487755058-31310-1-git-send-email-hongyan.song-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-22 5:40 ` Pandruvada, Srinivas
[not found] ` <1487741996.19408.0.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-25 16:51 ` Jonathan Cameron
[not found] ` <1f73506c-2bdd-c527-cd13-76594a1a7375-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-27 1:00 ` Song, Hongyan
[not found] ` <AE3E3DFA698D6144A7445C92D1D41E2F10BE0440-0J0gbvR4kTggGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2017-02-27 1:37 ` Pandruvada, Srinivas [this message]
2017-03-05 10:29 ` Jonathan Cameron
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=1488159432.3489.1.camel@intel.com \
--to=srinivas.pandruvada-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=hongyan.song-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=jikos-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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).