All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1488159432.3489.1.camel@intel.com>

diff --git a/a/1.txt b/N1/1.txt
index 0416f3c..caff788 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,150 +1,106 @@
-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==
-> 
->
+T24gTW9uLCAyMDE3LTAyLTI3IGF0IDAxOjAwICswMDAwLCBTb25nLCBIb25neWFuIHdyb3RlOg0K
+PiBIaSBKb25hdGhhbiwNCj4gCUkgYWRkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhdGNo
+Og0KPiAJDQo+IEJ1ZyBmb3VuZDrCoA0KPiBXaGVuIHdlIGNhdCBzZW5zb3IgaW5jbGkgc2Vuc29y
+IGRhdGEgd2l0aCBoeXN0ZXJlc2lzIHZhbHVlIGlzIDAsDQo+IHRoZXJlIGFsd2F5cyBoYXZlIHN0
+cmVhbWVkIHNlbnNvciBkYXRhIG91dHB1dCwNCj4gQnV0IHdoZW4gc3lzdGVtIGVudGVyIFMzIGFu
+ZCByZXN1bWUgYmFjaywgdGhlIHN0cmVhbWluZyB0aHJlYWQgaXMNCj4gc3RpbGwgb24gYnV0IHRo
+ZXJlIGlzIG5vdCBzdHJlYW1pbmcgc2Vuc29yIGRhdGEgb3V0cHV0Lg0KPiBUZXN0IGRhdGEgYXMg
+YmVsb3c6DQo+IDI3OTogMjAxNy0wMS0yNCAwMToxNjowMC4yNzkzODUgKjUqIGluY2xpXzNkOiBN
+aW4gRGVsdGE6IDk5Ljc3OW1zLA0KPiBNYXggRGVsdGE6IDEwMC4zMTZtcywgUmVjZWl2ZWQ6IDEw
+L3MsIE92ZXJhbGw6IDE3MC8xNnM7IFNhbXBsZSB2YWx1ZXMNCj4gLDAuMDEwNTQ2LC0wLjAwNjcx
+MiwyLjc5NzU3OQ0KPiAyODA6IDIwMTctMDEtMjQgMDE6MTY6NDEuMjExMzg1ICo1KiBpbmNsaV8z
+ZDogTWluIERlbHRhOiAxMDAuMTZtcywNCj4gTWF4IERlbHRhOiA0MDkyNC42bXMsIFJlY2VpdmVk
+OiAyL3MsIE92ZXJhbGw6IDE3Mi8xOXM7IFNhbXBsZSB2YWx1ZXMNCj4gLDAuMDEwNTQ2LC0wLjAw
+NjcxMiwyLjc5NzU3OQ0KPiAyODE6IDIwMTctMDEtMjQgMDE6MTY6NDIuMjE5ODkyICo1KiBpbmNs
+aV8zZDogTWluIERlbHRhOiAwLjAyM21zLCBNYXgNCj4gRGVsdGE6IDU0My4yOG1zLCBSZWNlaXZl
+ZDogMi9zLCBPdmVyYWxsOiAxNzQvMjBzOyBTYW1wbGUgdmFsdWVzDQo+ICwwLjAxMDU0NiwtMC4w
+MDY3MTIsMi43OTc1NzkNCj4gMjgyOiAyMDE3LTAxLTI0IDAxOjE2OjQyLjc1NTU0OCAqNCoNCj4g
+Q0lJT1NlbnNvckluZm9ybTo6c2Vuc29yX3dhaXRfZXZlbnQgcG9sbCB0aW1lb3V0DQo+IDI4Mzog
+MjAxNy0wMS0yNCAwMToxNjo0My4yMjMwNjIgKjUqIGluY2xpXzNkOiBNaW4gRGVsdGE6IC0tLCBN
+YXgNCj4gRGVsdGE6IC0tLCBSZWNlaXZlZDogMC9zLCBPdmVyYWxsOiAxNzQvMjFzDQo+IDI4NDog
+MjAxNy0wMS0yNCAwMToxNjo0My43NTY5ODAgKjQqDQo+IENJSU9TZW5zb3JJbmZvcm06OnNlbnNv
+cl93YWl0X2V2ZW50IHBvbGwgdGltZW91dA0KPiAyODU6IDIwMTctMDEtMjQgMDE6MTY6NDQuMjI1
+NTI3ICo1KiBpbmNsaV8zZDogTWluIERlbHRhOiAtLSwgTWF4DQo+IERlbHRhOiAtLSwgUmVjZWl2
+ZWQ6IDAvcywgT3ZlcmFsbDogMTc0LzIycw0KPiAyODY6IDIwMTctMDEtMjQgMDE6MTY6NDQuNzU4
+NDY3ICo0Kg0KPiBDSUlPU2Vuc29ySW5mb3JtOjpzZW5zb3Jfd2FpdF9ldmVudCBwb2xsIHRpbWVv
+dXQNCj4gMjg3OiAyMDE3LTAxLTI0IDAxOjE2OjQ1LjIyODA4MiAqNSogaW5jbGlfM2Q6IE1pbiBE
+ZWx0YTogLS0sIE1heA0KPiBEZWx0YTogLS0sIFJlY2VpdmVkOiAwL3MsIE92ZXJhbGw6IDE3NC8y
+M3MNCj4gMjg4OiAyMDE3LTAxLTI0IDAxOjE2OjQ1Ljc1OTk1OCAqNCoNCj4gQ0lJT1NlbnNvcklu
+Zm9ybTo6c2Vuc29yX3dhaXRfZXZlbnQgcG9sbCB0aW1lb3V0DQo+IA0KPiBSb290IGNhdXNlOsKg
+DQo+IHdoZW4gc2Vuc29yIHJlc3VtZSBiYWNrIGZyb20gUzMsIHRoZSBzZW5zb3IgcHJvcGVydHkg
+dXNlciBzZXQgaXMNCj4gbG9zdC4NCj4gRm9yIGV4YW1wbGUsIGlmIHdlIHNldCBzZW5zb3IgaHlz
+dGVyZXNpcyB2YWx1ZSB0byBiZSAwLCB0aGVuIGxldA0KPiBzeXN0ZW0gZW50ZXIgUzMsIHdoZW4g
+cmVzdW1lIGJhY2ssIHRoZSBoeXN0ZXJlc2lzIHZhbHVlIHdpbGwgYmUgbm90IDANCj4gYnV0IHRo
+ZSBkZWZhdWx0IHZhbHVlIDEuDQo+IA0KPiB0aGlzIGlzIG5vdCB3aGF0IHdlIHdhbnQsIHJlc3Vt
+ZSBiYWNrIGZyb20gUzMgc2hvdWxkIG5vdCBsb3NlIHRoZQ0KPiBwcm9wZXJ0aWVzIHdoaWNoIGlz
+IHNldCBiZWZvcmUgUzMsIGp1c3QgYmVjYXVzZSB0aGUgcHJvcGVydHkgc2V0dGluZw0KPiBzZXF1
+ZW5jZSBsZWFkIHRvIHRoaXMgbG9zZS4NCj4gDQo+IFRoaXMgaXMgcGF0Y2ggaXMgYSBmaXggcGF0
+Y2ggYW5kIG5lZWRlZCBmb3Igc3RhYmxlLg0KQnV0IG5vdCB1cmdlbnQuDQoNClRoYW5rcywNClNy
+aW5pdmFzDQoNCj4gDQo+IFRoYW5rcyBhIGxvdCENCj4gDQo+IEJSDQo+IFNvbmcgSG9uZ3lhbg0K
+PiANCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEpvbmF0aGFuIENh
+bWVyb24gW21haWx0bzpqaWMyM0BrZXJuZWwub3JnXcKgDQo+IFNlbnQ6IFN1bmRheSwgRmVicnVh
+cnkgMjYsIDIwMTcgMTI6NTIgQU0NCj4gVG86IFBhbmRydXZhZGEsIFNyaW5pdmFzIDxzcmluaXZh
+cy5wYW5kcnV2YWRhQGludGVsLmNvbT47IGxpbnV4LWlucHV0DQo+IEB2Z2VyLmtlcm5lbC5vcmc7
+IFNvbmcsIEhvbmd5YW4gPGhvbmd5YW4uc29uZ0BpbnRlbC5jb20+OyBsaW51eC1paW9Adg0KPiBn
+ZXIua2VybmVsLm9yZw0KPiBDYzogamlrb3NAa2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BB
+VENIXSBpaW86IGhpZC1zZW5zb3ItdHJpZ2dlcjogQ2hhbmdlIGdldCBwb2xsIHZhbHVlDQo+IGZ1
+bmN0aW9uIG9yZGVyIHRvIGF2b2lkIHNlbnNvciBwcm9wZXJ0aWVzIGxvc2luZyBhZnRlciByZXN1
+bWUgZnJvbSBTMw0KPiANCj4gT24gMjIvMDIvMTcgMDU6NDAsIFBhbmRydXZhZGEsIFNyaW5pdmFz
+IHdyb3RlOg0KPiA+IE9uIFdlZCwgMjAxNy0wMi0yMiBhdCAxNzoxNyArMDgwMCwgU29uZyBIb25n
+eWFuIHdyb3RlOg0KPiA+ID4gSW4gZnVuY3Rpb24gX2hpZF9zZW5zb3JfcG93ZXJfc3RhdGUoKSwg
+d2hlbg0KPiA+ID4gaGlkX3NlbnNvcl9yZWFkX3BvbGxfdmFsdWUoKQ0KPiA+ID4gaXMgY2FsbGVk
+LCBzZW5zb3IncyBhbGwgcHJvcGVydGllcyB3aWxsIGJlIHVwZGF0ZWQgYnkgdGhlIHZhbHVlDQo+
+ID4gPiBmcm9twqANCj4gPiA+IHNlbnNvciBoYXJkd2FyZS9maXJtd2FyZS4NCj4gPiA+IEluIHNv
+bWUgaW1wbGVtZW50YXRpb24sIHNlbnNvciBoYXJkd2FyZS9maXJtd2FyZSB3aWxsIGRvIGEgcG93
+ZXLCoA0KPiA+ID4gY3ljbGUgZHVyaW5nIFMzLiBJbiB0aGlzIGNhc2UsIGFmdGVyIHJlc3VtZSwg
+b25jZQ0KPiA+ID4gaGlkX3NlbnNvcl9yZWFkX3BvbGxfdmFsdWUoKQ0KPiA+ID4gaXMgY2FsbGVk
+LCBzZW5zb3IncyBhbGwgcHJvcGVydGllcyB3aGljaCBhcmUga2VwdCBieSBkcml2ZXINCj4gPiA+
+IGR1cmluZyBTM8KgDQo+ID4gPiB3aWxsIGJlIGNoYW5nZWQgdG8gZGVmYXVsdCB2YWx1ZS4NCj4g
+PiA+IEJ1dCBpbnN0ZWFkLCBpZiBhIHNldCBmZWF0dXJlIGZ1bmN0aW9uIGlzIGNhbGxlZCBmaXJz
+dCwgc2Vuc29ywqANCj4gPiA+IGhhcmR3YXJlL2Zpcm13YXJlIHdpbGwgYmUgcmVjb3ZlcmVkIHRv
+IHRoZSBsYXN0IHN0YXR1cy4gU28gY2hhbmdlDQo+ID4gPiB0aGUNCj4gPiA+IHNlbnNvcl9odWJf
+c2V0X2ZlYXR1cmUoKSBjYWxsaW5nIG9yZGVyIHRvIGJlaGluZCBvZiBzZXQgZmVhdHVyZcKgDQo+
+ID4gPiBmdW5jdGlvbiB0byBhdm9pZCBzZW5zb3IgcHJvcGVydGllcyBsb3NlLg0KPiA+ID4gDQo+
+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTb25nIEhvbmd5YW4gPGhvbmd5YW4uc29uZ0BpbnRlbC5jb20+
+DQo+ID4gDQo+ID4gQWNrZWQtYnk6IFNyaW5pdmFzIFBhbmRydXZhZGEgPHNyaW5pdmFzLnBhbmRy
+dXZhZGFAbGludXguaW50ZWwuY29tPg0KPiANCj4gSGkgU29uZywNCj4gDQo+IFRoZSBwYXRjaCBt
+ZXNzYWdlLCB3aGlsc3QgZXhjZWxsZW50IG9uIHRoZSB0ZWNobmljYWwgZGV0YWlsLCBnaXZlcyBt
+ZQ0KPiBubyBzZW5zZSBvZiB1cmdlbmN5IG9uIHRoaXMuIElzIHRoaXMgYSBmaXggd2Ugd2FudCB0
+byBoYXZlIGhlYWRpbmcNCj4gZm9yIHN0YWJsZSBBU0FQIG9yIGFyZSB3ZSBsb29raW5nIGF0IHNv
+bWV0aGluZyBzZWVuIGluIHNvbWUNCj4gZGV2ZWxvcG1lbnRhbCBoYXJkd2FyZSBmb3IgZXhhbXBs
+ZT8NCj4gTGlua3MgdG8gYnVnIHJlcG9ydHMsIG9yIGV4YW1wbGVzIG9mIGhhcmR3YXJlIHN1ZmZl
+cmluZyBmcm9tIHRoZQ0KPiBpc3N1ZSBhcmUgYWx3YXlzIGhlbHBmdWwgYXMgd2VsbC4NCj4gDQo+
+IEFsc28gZm9yIHNvbWV0aGluZyBsaWtlIHRoaXMgYSAnZml4ZXMnIHRhZyBpcyB2ZXJ5IGhlbHBm
+dWwgd2hlbg0KPiBwZW9wbGUgYXJlIGxvb2tpbmcgdG8gYmFjayBwb3J0IGl0Lg0KPiANCj4gQW55
+aG93LCBJJ20gZ29pbmcgdG8gaG9sZCBvZmYgb24gdGFraW5nIHRoaXMgb25lIHVudGlsIEkgaGF2
+ZSBtb3JlDQo+IGluZm9ybWF0aW9uLiBSaWdodCBub3cgaXQgbWFrZXMgbGl0dGxlIGRpZmZlcmVu
+Y2UgYXMgdGhlIG5leHQgZml4ZXMNCj4gcHVsbCByZXF1ZXN0IGZyb20gbWUgd2lsbCBwcm9iYWJs
+eSBub3QgYmUgdW50aWwgbmV4dCB3ZWVrZW5kLg0KPiANCj4gVGhhbmtzLA0KPiANCj4gSm9uYXRo
+YW4NCj4gPiANCj4gPiA+IC0tLQ0KPiA+ID4gwqBkcml2ZXJzL2lpby9jb21tb24vaGlkLXNlbnNv
+cnMvaGlkLXNlbnNvci10cmlnZ2VyLmMgfCA2ICsrKy0tLQ0KPiA+ID4gwqAxIGZpbGUgY2hhbmdl
+ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0t
+Z2l0IGEvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5j
+DQo+ID4gPiBiL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdn
+ZXIuYw0KPiA+ID4gaW5kZXggYTNjY2UzYS4uZWNmNTkyZCAxMDA2NDQNCj4gPiA+IC0tLSBhL2Ry
+aXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuYw0KPiA+ID4g
+KysrIGIvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5j
+DQo+ID4gPiBAQCAtNTEsOCArNTEsNiBAQCBzdGF0aWMgaW50IF9oaWRfc2Vuc29yX3Bvd2VyX3N0
+YXRlKHN0cnVjdMKgDQo+ID4gPiBoaWRfc2Vuc29yX2NvbW1vbiAqc3QsIGJvb2wgc3RhdGUpDQo+
+ID4gPiDCoAkJCXN0LT5yZXBvcnRfc3RhdGUucmVwb3J0X2lkLA0KPiA+ID4gwqAJCQlzdC0+cmVw
+b3J0X3N0YXRlLmluZGV4LA0KPiA+ID4gwqAJCQlISURfVVNBR0VfU0VOU09SX1BST1BfUkVQT1JU
+SU5HX1NUQVRFX0FMDQo+ID4gPiBMX0VWDQo+ID4gPiBFTlRTX0VOVU0pOw0KPiA+ID4gLQ0KPiA+
+ID4gLQkJcG9sbF92YWx1ZSA9IGhpZF9zZW5zb3JfcmVhZF9wb2xsX3ZhbHVlKHN0KTsNCj4gPiA+
+IMKgCX0gZWxzZSB7DQo+ID4gPiDCoAkJaW50IHZhbDsNCj4gPiA+IMKgDQo+ID4gPiBAQCAtODks
+NyArODcsOSBAQCBzdGF0aWMgaW50IF9oaWRfc2Vuc29yX3Bvd2VyX3N0YXRlKHN0cnVjdMKgDQo+
+ID4gPiBoaWRfc2Vuc29yX2NvbW1vbiAqc3QsIGJvb2wgc3RhdGUpDQo+ID4gPiDCoAlzZW5zb3Jf
+aHViX2dldF9mZWF0dXJlKHN0LT5oc2Rldiwgc3QtDQo+ID4gPiA+cG93ZXJfc3RhdGUucmVwb3J0
+X2lkLA0KPiA+ID4gwqAJCQnCoMKgwqDCoMKgwqDCoHN0LT5wb3dlcl9zdGF0ZS5pbmRleCwNCj4g
+PiA+IMKgCQkJwqDCoMKgwqDCoMKgwqBzaXplb2Yoc3RhdGVfdmFsKSwgJnN0YXRlX3ZhbCk7DQo+
+ID4gPiAtCWlmIChzdGF0ZSAmJiBwb2xsX3ZhbHVlKQ0KPiA+ID4gKwlpZiAoc3RhdGUpDQo+ID4g
+PiArCQlwb2xsX3ZhbHVlID0gaGlkX3NlbnNvcl9yZWFkX3BvbGxfdmFsdWUoc3QpOw0KPiA+ID4g
+KwlpZiAocG9sbF92YWx1ZSA+IDApDQo+ID4gPiDCoAkJbXNsZWVwX2ludGVycnVwdGlibGUocG9s
+bF92YWx1ZSAqIDIpOw0KPiA+ID4gwqANCj4gPiA+IMKgCXJldHVybsKgDQo+ID4gPiAwO07CoMKg
+wqDCoMKgcsKgwqB5wqDCoMKgYiBYwqDCoMendiBeICneunsubiArwqDCoMKgwqB7wqDCoCoiwqDC
+oF5uIHLCoMKgwqB6IBrCoMKgaMKgwqDCoMKgJsKgwqAeDQo+ID4gPiBHwqDCoMKgDQo+ID4gPiBo
+IAMoIOmajiDdomoiwqDCoBogG23CoMKgwqDCoMKgeiDelsKgwqDCoGbCoMKgwqBowqDCoMKgfiBt
+bWw9PQ0KPiANCj4g
diff --git a/a/content_digest b/N1/content_digest
index f614a20..e276036 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -2,167 +2,122 @@
  "ref\01487741996.19408.0.camel@intel.com\0"
  "ref\01f73506c-2bdd-c527-cd13-76594a1a7375@kernel.org\0"
  "ref\0AE3E3DFA698D6144A7445C92D1D41E2F10BE0440@SHSMSX103.ccr.corp.intel.com\0"
- "ref\0AE3E3DFA698D6144A7445C92D1D41E2F10BE0440-0J0gbvR4kTggGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org\0"
- "From\0Pandruvada, Srinivas <srinivas.pandruvada-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>\0"
+ "From\0Pandruvada, Srinivas <srinivas.pandruvada@intel.com>\0"
  "Subject\0Re: [PATCH] iio: hid-sensor-trigger: Change get poll value function order to avoid sensor properties losing after resume from S3\0"
  "Date\0Mon, 27 Feb 2017 01:37:17 +0000\0"
- "To\0linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>"
+ "To\0linux-input@vger.kernel.org <linux-input@vger.kernel.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>\0"
- "Cc\0jikos-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org <jikos-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>\0"
+  Hongyan <hongyan.song@intel.com>
+  linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>
+ " jic23@kernel.org <jic23@kernel.org>\0"
+ "Cc\0jikos@kernel.org <jikos@kernel.org>\0"
  "\00:1\0"
  "b\0"
- "On Mon, 2017-02-27 at 01:00 +0000, Song, Hongyan wrote:\n"
- "> Hi Jonathan,\n"
- "> \tI add more information about the patch:\n"
- "> \t\n"
- "> Bug found:\302\240\n"
- "> When we cat sensor incli sensor data with hysteresis value is 0,\n"
- "> there always have streamed sensor data output,\n"
- "> But when system enter S3 and resume back, the streaming thread is\n"
- "> still on but there is not streaming sensor data output.\n"
- "> Test data as below:\n"
- "> 279: 2017-01-24 01:16:00.279385 *5* incli_3d: Min Delta: 99.779ms,\n"
- "> Max Delta: 100.316ms, Received: 10/s, Overall: 170/16s; Sample values\n"
- "> ,0.010546,-0.006712,2.797579\n"
- "> 280: 2017-01-24 01:16:41.211385 *5* incli_3d: Min Delta: 100.16ms,\n"
- "> Max Delta: 40924.6ms, Received: 2/s, Overall: 172/19s; Sample values\n"
- "> ,0.010546,-0.006712,2.797579\n"
- "> 281: 2017-01-24 01:16:42.219892 *5* incli_3d: Min Delta: 0.023ms, Max\n"
- "> Delta: 543.28ms, Received: 2/s, Overall: 174/20s; Sample values\n"
- "> ,0.010546,-0.006712,2.797579\n"
- "> 282: 2017-01-24 01:16:42.755548 *4*\n"
- "> CIIOSensorInform::sensor_wait_event poll timeout\n"
- "> 283: 2017-01-24 01:16:43.223062 *5* incli_3d: Min Delta: --, Max\n"
- "> Delta: --, Received: 0/s, Overall: 174/21s\n"
- "> 284: 2017-01-24 01:16:43.756980 *4*\n"
- "> CIIOSensorInform::sensor_wait_event poll timeout\n"
- "> 285: 2017-01-24 01:16:44.225527 *5* incli_3d: Min Delta: --, Max\n"
- "> Delta: --, Received: 0/s, Overall: 174/22s\n"
- "> 286: 2017-01-24 01:16:44.758467 *4*\n"
- "> CIIOSensorInform::sensor_wait_event poll timeout\n"
- "> 287: 2017-01-24 01:16:45.228082 *5* incli_3d: Min Delta: --, Max\n"
- "> Delta: --, Received: 0/s, Overall: 174/23s\n"
- "> 288: 2017-01-24 01:16:45.759958 *4*\n"
- "> CIIOSensorInform::sensor_wait_event poll timeout\n"
- "> \n"
- "> Root cause:\302\240\n"
- "> when sensor resume back from S3, the sensor property user set is\n"
- "> lost.\n"
- "> For example, if we set sensor hysteresis value to be 0, then let\n"
- "> system enter S3, when resume back, the hysteresis value will be not 0\n"
- "> but the default value 1.\n"
- "> \n"
- "> this is not what we want, resume back from S3 should not lose the\n"
- "> properties which is set before S3, just because the property setting\n"
- "> sequence lead to this lose.\n"
- "> \n"
- "> This is patch is a fix patch and needed for stable.\n"
- "But not urgent.\n"
- "\n"
- "Thanks,\n"
- "Srinivas\n"
- "\n"
- "> \n"
- "> Thanks a lot!\n"
- "> \n"
- "> BR\n"
- "> Song Hongyan\n"
- "> \n"
- "> \n"
- "> -----Original Message-----\n"
- "> From: Jonathan Cameron [mailto:jic23@kernel.org]\302\240\n"
- "> Sent: Sunday, February 26, 2017 12:52 AM\n"
- "> To: Pandruvada, Srinivas <srinivas.pandruvada@intel.com>; linux-input\n"
- "> @vger.kernel.org; Song, Hongyan <hongyan.song@intel.com>; linux-iio@v\n"
- "> ger.kernel.org\n"
- "> Cc: jikos@kernel.org\n"
- "> Subject: Re: [PATCH] iio: hid-sensor-trigger: Change get poll value\n"
- "> function order to avoid sensor properties losing after resume from S3\n"
- "> \n"
- "> On 22/02/17 05:40, Pandruvada, Srinivas wrote:\n"
- "> > On Wed, 2017-02-22 at 17:17 +0800, Song Hongyan wrote:\n"
- "> > > In function _hid_sensor_power_state(), when\n"
- "> > > hid_sensor_read_poll_value()\n"
- "> > > is called, sensor's all properties will be updated by the value\n"
- "> > > from\302\240\n"
- "> > > sensor hardware/firmware.\n"
- "> > > In some implementation, sensor hardware/firmware will do a power\302\240\n"
- "> > > cycle during S3. In this case, after resume, once\n"
- "> > > hid_sensor_read_poll_value()\n"
- "> > > is called, sensor's all properties which are kept by driver\n"
- "> > > during S3\302\240\n"
- "> > > will be changed to default value.\n"
- "> > > But instead, if a set feature function is called first, sensor\302\240\n"
- "> > > hardware/firmware will be recovered to the last status. So change\n"
- "> > > the\n"
- "> > > sensor_hub_set_feature() calling order to behind of set feature\302\240\n"
- "> > > function to avoid sensor properties lose.\n"
- "> > > \n"
- "> > > Signed-off-by: Song Hongyan <hongyan.song@intel.com>\n"
- "> > \n"
- "> > Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>\n"
- "> \n"
- "> Hi Song,\n"
- "> \n"
- "> The patch message, whilst excellent on the technical detail, gives me\n"
- "> no sense of urgency on this. Is this a fix we want to have heading\n"
- "> for stable ASAP or are we looking at something seen in some\n"
- "> developmental hardware for example?\n"
- "> Links to bug reports, or examples of hardware suffering from the\n"
- "> issue are always helpful as well.\n"
- "> \n"
- "> Also for something like this a 'fixes' tag is very helpful when\n"
- "> people are looking to back port it.\n"
- "> \n"
- "> Anyhow, I'm going to hold off on taking this one until I have more\n"
- "> information. Right now it makes little difference as the next fixes\n"
- "> pull request from me will probably not be until next weekend.\n"
- "> \n"
- "> Thanks,\n"
- "> \n"
- "> Jonathan\n"
- "> > \n"
- "> > > ---\n"
- "> > > \302\240drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 6 +++---\n"
- "> > > \302\2401 file changed, 3 insertions(+), 3 deletions(-)\n"
- "> > > \n"
- "> > > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c\n"
- "> > > b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c\n"
- "> > > index a3cce3a..ecf592d 100644\n"
- "> > > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c\n"
- "> > > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c\n"
- "> > > @@ -51,8 +51,6 @@ static int _hid_sensor_power_state(struct\302\240\n"
- "> > > hid_sensor_common *st, bool state)\n"
- "> > > \302\240\t\t\tst->report_state.report_id,\n"
- "> > > \302\240\t\t\tst->report_state.index,\n"
- "> > > \302\240\t\t\tHID_USAGE_SENSOR_PROP_REPORTING_STATE_AL\n"
- "> > > L_EV\n"
- "> > > ENTS_ENUM);\n"
- "> > > -\n"
- "> > > -\t\tpoll_value = hid_sensor_read_poll_value(st);\n"
- "> > > \302\240\t} else {\n"
- "> > > \302\240\t\tint val;\n"
- "> > > \302\240\n"
- "> > > @@ -89,7 +87,9 @@ static int _hid_sensor_power_state(struct\302\240\n"
- "> > > hid_sensor_common *st, bool state)\n"
- "> > > \302\240\tsensor_hub_get_feature(st->hsdev, st-\n"
- "> > > >power_state.report_id,\n"
- "> > > \302\240\t\t\t\302\240\302\240\302\240\302\240\302\240\302\240\302\240st->power_state.index,\n"
- "> > > \302\240\t\t\t\302\240\302\240\302\240\302\240\302\240\302\240\302\240sizeof(state_val), &state_val);\n"
- "> > > -\tif (state && poll_value)\n"
- "> > > +\tif (state)\n"
- "> > > +\t\tpoll_value = hid_sensor_read_poll_value(st);\n"
- "> > > +\tif (poll_value > 0)\n"
- "> > > \302\240\t\tmsleep_interruptible(poll_value * 2);\n"
- "> > > \302\240\n"
- "> > > \302\240\treturn\302\240\n"
- "> > > 0;N\302\240\302\240\302\240\302\240\302\240r\302\240\302\240y\302\240\302\240\302\240b X\302\240\302\240\307\247v ^ )\336\272{.n +\302\240\302\240\302\240\302\240{\302\240\302\240*\"\302\240\302\240^n r\302\240\302\240\302\240z \032\302\240\302\240h\302\240\302\240\302\240\302\240&\302\240\302\240\036\n"
- "> > > G\302\240\302\240\302\240\n"
- "> > > h \003( \351\232\216 \335\242j\"\302\240\302\240\032 \033m\302\240\302\240\302\240\302\240\302\240z \336\226\302\240\302\240\302\240f\302\240\302\240\302\240h\302\240\302\240\302\240~ mml==\n"
- "> \n"
- >
+ "T24gTW9uLCAyMDE3LTAyLTI3IGF0IDAxOjAwICswMDAwLCBTb25nLCBIb25neWFuIHdyb3RlOg0K\n"
+ "PiBIaSBKb25hdGhhbiwNCj4gCUkgYWRkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhdGNo\n"
+ "Og0KPiAJDQo+IEJ1ZyBmb3VuZDrCoA0KPiBXaGVuIHdlIGNhdCBzZW5zb3IgaW5jbGkgc2Vuc29y\n"
+ "IGRhdGEgd2l0aCBoeXN0ZXJlc2lzIHZhbHVlIGlzIDAsDQo+IHRoZXJlIGFsd2F5cyBoYXZlIHN0\n"
+ "cmVhbWVkIHNlbnNvciBkYXRhIG91dHB1dCwNCj4gQnV0IHdoZW4gc3lzdGVtIGVudGVyIFMzIGFu\n"
+ "ZCByZXN1bWUgYmFjaywgdGhlIHN0cmVhbWluZyB0aHJlYWQgaXMNCj4gc3RpbGwgb24gYnV0IHRo\n"
+ "ZXJlIGlzIG5vdCBzdHJlYW1pbmcgc2Vuc29yIGRhdGEgb3V0cHV0Lg0KPiBUZXN0IGRhdGEgYXMg\n"
+ "YmVsb3c6DQo+IDI3OTogMjAxNy0wMS0yNCAwMToxNjowMC4yNzkzODUgKjUqIGluY2xpXzNkOiBN\n"
+ "aW4gRGVsdGE6IDk5Ljc3OW1zLA0KPiBNYXggRGVsdGE6IDEwMC4zMTZtcywgUmVjZWl2ZWQ6IDEw\n"
+ "L3MsIE92ZXJhbGw6IDE3MC8xNnM7IFNhbXBsZSB2YWx1ZXMNCj4gLDAuMDEwNTQ2LC0wLjAwNjcx\n"
+ "MiwyLjc5NzU3OQ0KPiAyODA6IDIwMTctMDEtMjQgMDE6MTY6NDEuMjExMzg1ICo1KiBpbmNsaV8z\n"
+ "ZDogTWluIERlbHRhOiAxMDAuMTZtcywNCj4gTWF4IERlbHRhOiA0MDkyNC42bXMsIFJlY2VpdmVk\n"
+ "OiAyL3MsIE92ZXJhbGw6IDE3Mi8xOXM7IFNhbXBsZSB2YWx1ZXMNCj4gLDAuMDEwNTQ2LC0wLjAw\n"
+ "NjcxMiwyLjc5NzU3OQ0KPiAyODE6IDIwMTctMDEtMjQgMDE6MTY6NDIuMjE5ODkyICo1KiBpbmNs\n"
+ "aV8zZDogTWluIERlbHRhOiAwLjAyM21zLCBNYXgNCj4gRGVsdGE6IDU0My4yOG1zLCBSZWNlaXZl\n"
+ "ZDogMi9zLCBPdmVyYWxsOiAxNzQvMjBzOyBTYW1wbGUgdmFsdWVzDQo+ICwwLjAxMDU0NiwtMC4w\n"
+ "MDY3MTIsMi43OTc1NzkNCj4gMjgyOiAyMDE3LTAxLTI0IDAxOjE2OjQyLjc1NTU0OCAqNCoNCj4g\n"
+ "Q0lJT1NlbnNvckluZm9ybTo6c2Vuc29yX3dhaXRfZXZlbnQgcG9sbCB0aW1lb3V0DQo+IDI4Mzog\n"
+ "MjAxNy0wMS0yNCAwMToxNjo0My4yMjMwNjIgKjUqIGluY2xpXzNkOiBNaW4gRGVsdGE6IC0tLCBN\n"
+ "YXgNCj4gRGVsdGE6IC0tLCBSZWNlaXZlZDogMC9zLCBPdmVyYWxsOiAxNzQvMjFzDQo+IDI4NDog\n"
+ "MjAxNy0wMS0yNCAwMToxNjo0My43NTY5ODAgKjQqDQo+IENJSU9TZW5zb3JJbmZvcm06OnNlbnNv\n"
+ "cl93YWl0X2V2ZW50IHBvbGwgdGltZW91dA0KPiAyODU6IDIwMTctMDEtMjQgMDE6MTY6NDQuMjI1\n"
+ "NTI3ICo1KiBpbmNsaV8zZDogTWluIERlbHRhOiAtLSwgTWF4DQo+IERlbHRhOiAtLSwgUmVjZWl2\n"
+ "ZWQ6IDAvcywgT3ZlcmFsbDogMTc0LzIycw0KPiAyODY6IDIwMTctMDEtMjQgMDE6MTY6NDQuNzU4\n"
+ "NDY3ICo0Kg0KPiBDSUlPU2Vuc29ySW5mb3JtOjpzZW5zb3Jfd2FpdF9ldmVudCBwb2xsIHRpbWVv\n"
+ "dXQNCj4gMjg3OiAyMDE3LTAxLTI0IDAxOjE2OjQ1LjIyODA4MiAqNSogaW5jbGlfM2Q6IE1pbiBE\n"
+ "ZWx0YTogLS0sIE1heA0KPiBEZWx0YTogLS0sIFJlY2VpdmVkOiAwL3MsIE92ZXJhbGw6IDE3NC8y\n"
+ "M3MNCj4gMjg4OiAyMDE3LTAxLTI0IDAxOjE2OjQ1Ljc1OTk1OCAqNCoNCj4gQ0lJT1NlbnNvcklu\n"
+ "Zm9ybTo6c2Vuc29yX3dhaXRfZXZlbnQgcG9sbCB0aW1lb3V0DQo+IA0KPiBSb290IGNhdXNlOsKg\n"
+ "DQo+IHdoZW4gc2Vuc29yIHJlc3VtZSBiYWNrIGZyb20gUzMsIHRoZSBzZW5zb3IgcHJvcGVydHkg\n"
+ "dXNlciBzZXQgaXMNCj4gbG9zdC4NCj4gRm9yIGV4YW1wbGUsIGlmIHdlIHNldCBzZW5zb3IgaHlz\n"
+ "dGVyZXNpcyB2YWx1ZSB0byBiZSAwLCB0aGVuIGxldA0KPiBzeXN0ZW0gZW50ZXIgUzMsIHdoZW4g\n"
+ "cmVzdW1lIGJhY2ssIHRoZSBoeXN0ZXJlc2lzIHZhbHVlIHdpbGwgYmUgbm90IDANCj4gYnV0IHRo\n"
+ "ZSBkZWZhdWx0IHZhbHVlIDEuDQo+IA0KPiB0aGlzIGlzIG5vdCB3aGF0IHdlIHdhbnQsIHJlc3Vt\n"
+ "ZSBiYWNrIGZyb20gUzMgc2hvdWxkIG5vdCBsb3NlIHRoZQ0KPiBwcm9wZXJ0aWVzIHdoaWNoIGlz\n"
+ "IHNldCBiZWZvcmUgUzMsIGp1c3QgYmVjYXVzZSB0aGUgcHJvcGVydHkgc2V0dGluZw0KPiBzZXF1\n"
+ "ZW5jZSBsZWFkIHRvIHRoaXMgbG9zZS4NCj4gDQo+IFRoaXMgaXMgcGF0Y2ggaXMgYSBmaXggcGF0\n"
+ "Y2ggYW5kIG5lZWRlZCBmb3Igc3RhYmxlLg0KQnV0IG5vdCB1cmdlbnQuDQoNClRoYW5rcywNClNy\n"
+ "aW5pdmFzDQoNCj4gDQo+IFRoYW5rcyBhIGxvdCENCj4gDQo+IEJSDQo+IFNvbmcgSG9uZ3lhbg0K\n"
+ "PiANCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEpvbmF0aGFuIENh\n"
+ "bWVyb24gW21haWx0bzpqaWMyM0BrZXJuZWwub3JnXcKgDQo+IFNlbnQ6IFN1bmRheSwgRmVicnVh\n"
+ "cnkgMjYsIDIwMTcgMTI6NTIgQU0NCj4gVG86IFBhbmRydXZhZGEsIFNyaW5pdmFzIDxzcmluaXZh\n"
+ "cy5wYW5kcnV2YWRhQGludGVsLmNvbT47IGxpbnV4LWlucHV0DQo+IEB2Z2VyLmtlcm5lbC5vcmc7\n"
+ "IFNvbmcsIEhvbmd5YW4gPGhvbmd5YW4uc29uZ0BpbnRlbC5jb20+OyBsaW51eC1paW9Adg0KPiBn\n"
+ "ZXIua2VybmVsLm9yZw0KPiBDYzogamlrb3NAa2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BB\n"
+ "VENIXSBpaW86IGhpZC1zZW5zb3ItdHJpZ2dlcjogQ2hhbmdlIGdldCBwb2xsIHZhbHVlDQo+IGZ1\n"
+ "bmN0aW9uIG9yZGVyIHRvIGF2b2lkIHNlbnNvciBwcm9wZXJ0aWVzIGxvc2luZyBhZnRlciByZXN1\n"
+ "bWUgZnJvbSBTMw0KPiANCj4gT24gMjIvMDIvMTcgMDU6NDAsIFBhbmRydXZhZGEsIFNyaW5pdmFz\n"
+ "IHdyb3RlOg0KPiA+IE9uIFdlZCwgMjAxNy0wMi0yMiBhdCAxNzoxNyArMDgwMCwgU29uZyBIb25n\n"
+ "eWFuIHdyb3RlOg0KPiA+ID4gSW4gZnVuY3Rpb24gX2hpZF9zZW5zb3JfcG93ZXJfc3RhdGUoKSwg\n"
+ "d2hlbg0KPiA+ID4gaGlkX3NlbnNvcl9yZWFkX3BvbGxfdmFsdWUoKQ0KPiA+ID4gaXMgY2FsbGVk\n"
+ "LCBzZW5zb3IncyBhbGwgcHJvcGVydGllcyB3aWxsIGJlIHVwZGF0ZWQgYnkgdGhlIHZhbHVlDQo+\n"
+ "ID4gPiBmcm9twqANCj4gPiA+IHNlbnNvciBoYXJkd2FyZS9maXJtd2FyZS4NCj4gPiA+IEluIHNv\n"
+ "bWUgaW1wbGVtZW50YXRpb24sIHNlbnNvciBoYXJkd2FyZS9maXJtd2FyZSB3aWxsIGRvIGEgcG93\n"
+ "ZXLCoA0KPiA+ID4gY3ljbGUgZHVyaW5nIFMzLiBJbiB0aGlzIGNhc2UsIGFmdGVyIHJlc3VtZSwg\n"
+ "b25jZQ0KPiA+ID4gaGlkX3NlbnNvcl9yZWFkX3BvbGxfdmFsdWUoKQ0KPiA+ID4gaXMgY2FsbGVk\n"
+ "LCBzZW5zb3IncyBhbGwgcHJvcGVydGllcyB3aGljaCBhcmUga2VwdCBieSBkcml2ZXINCj4gPiA+\n"
+ "IGR1cmluZyBTM8KgDQo+ID4gPiB3aWxsIGJlIGNoYW5nZWQgdG8gZGVmYXVsdCB2YWx1ZS4NCj4g\n"
+ "PiA+IEJ1dCBpbnN0ZWFkLCBpZiBhIHNldCBmZWF0dXJlIGZ1bmN0aW9uIGlzIGNhbGxlZCBmaXJz\n"
+ "dCwgc2Vuc29ywqANCj4gPiA+IGhhcmR3YXJlL2Zpcm13YXJlIHdpbGwgYmUgcmVjb3ZlcmVkIHRv\n"
+ "IHRoZSBsYXN0IHN0YXR1cy4gU28gY2hhbmdlDQo+ID4gPiB0aGUNCj4gPiA+IHNlbnNvcl9odWJf\n"
+ "c2V0X2ZlYXR1cmUoKSBjYWxsaW5nIG9yZGVyIHRvIGJlaGluZCBvZiBzZXQgZmVhdHVyZcKgDQo+\n"
+ "ID4gPiBmdW5jdGlvbiB0byBhdm9pZCBzZW5zb3IgcHJvcGVydGllcyBsb3NlLg0KPiA+ID4gDQo+\n"
+ "ID4gPiBTaWduZWQtb2ZmLWJ5OiBTb25nIEhvbmd5YW4gPGhvbmd5YW4uc29uZ0BpbnRlbC5jb20+\n"
+ "DQo+ID4gDQo+ID4gQWNrZWQtYnk6IFNyaW5pdmFzIFBhbmRydXZhZGEgPHNyaW5pdmFzLnBhbmRy\n"
+ "dXZhZGFAbGludXguaW50ZWwuY29tPg0KPiANCj4gSGkgU29uZywNCj4gDQo+IFRoZSBwYXRjaCBt\n"
+ "ZXNzYWdlLCB3aGlsc3QgZXhjZWxsZW50IG9uIHRoZSB0ZWNobmljYWwgZGV0YWlsLCBnaXZlcyBt\n"
+ "ZQ0KPiBubyBzZW5zZSBvZiB1cmdlbmN5IG9uIHRoaXMuIElzIHRoaXMgYSBmaXggd2Ugd2FudCB0\n"
+ "byBoYXZlIGhlYWRpbmcNCj4gZm9yIHN0YWJsZSBBU0FQIG9yIGFyZSB3ZSBsb29raW5nIGF0IHNv\n"
+ "bWV0aGluZyBzZWVuIGluIHNvbWUNCj4gZGV2ZWxvcG1lbnRhbCBoYXJkd2FyZSBmb3IgZXhhbXBs\n"
+ "ZT8NCj4gTGlua3MgdG8gYnVnIHJlcG9ydHMsIG9yIGV4YW1wbGVzIG9mIGhhcmR3YXJlIHN1ZmZl\n"
+ "cmluZyBmcm9tIHRoZQ0KPiBpc3N1ZSBhcmUgYWx3YXlzIGhlbHBmdWwgYXMgd2VsbC4NCj4gDQo+\n"
+ "IEFsc28gZm9yIHNvbWV0aGluZyBsaWtlIHRoaXMgYSAnZml4ZXMnIHRhZyBpcyB2ZXJ5IGhlbHBm\n"
+ "dWwgd2hlbg0KPiBwZW9wbGUgYXJlIGxvb2tpbmcgdG8gYmFjayBwb3J0IGl0Lg0KPiANCj4gQW55\n"
+ "aG93LCBJJ20gZ29pbmcgdG8gaG9sZCBvZmYgb24gdGFraW5nIHRoaXMgb25lIHVudGlsIEkgaGF2\n"
+ "ZSBtb3JlDQo+IGluZm9ybWF0aW9uLiBSaWdodCBub3cgaXQgbWFrZXMgbGl0dGxlIGRpZmZlcmVu\n"
+ "Y2UgYXMgdGhlIG5leHQgZml4ZXMNCj4gcHVsbCByZXF1ZXN0IGZyb20gbWUgd2lsbCBwcm9iYWJs\n"
+ "eSBub3QgYmUgdW50aWwgbmV4dCB3ZWVrZW5kLg0KPiANCj4gVGhhbmtzLA0KPiANCj4gSm9uYXRo\n"
+ "YW4NCj4gPiANCj4gPiA+IC0tLQ0KPiA+ID4gwqBkcml2ZXJzL2lpby9jb21tb24vaGlkLXNlbnNv\n"
+ "cnMvaGlkLXNlbnNvci10cmlnZ2VyLmMgfCA2ICsrKy0tLQ0KPiA+ID4gwqAxIGZpbGUgY2hhbmdl\n"
+ "ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0t\n"
+ "Z2l0IGEvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5j\n"
+ "DQo+ID4gPiBiL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdn\n"
+ "ZXIuYw0KPiA+ID4gaW5kZXggYTNjY2UzYS4uZWNmNTkyZCAxMDA2NDQNCj4gPiA+IC0tLSBhL2Ry\n"
+ "aXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuYw0KPiA+ID4g\n"
+ "KysrIGIvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5j\n"
+ "DQo+ID4gPiBAQCAtNTEsOCArNTEsNiBAQCBzdGF0aWMgaW50IF9oaWRfc2Vuc29yX3Bvd2VyX3N0\n"
+ "YXRlKHN0cnVjdMKgDQo+ID4gPiBoaWRfc2Vuc29yX2NvbW1vbiAqc3QsIGJvb2wgc3RhdGUpDQo+\n"
+ "ID4gPiDCoAkJCXN0LT5yZXBvcnRfc3RhdGUucmVwb3J0X2lkLA0KPiA+ID4gwqAJCQlzdC0+cmVw\n"
+ "b3J0X3N0YXRlLmluZGV4LA0KPiA+ID4gwqAJCQlISURfVVNBR0VfU0VOU09SX1BST1BfUkVQT1JU\n"
+ "SU5HX1NUQVRFX0FMDQo+ID4gPiBMX0VWDQo+ID4gPiBFTlRTX0VOVU0pOw0KPiA+ID4gLQ0KPiA+\n"
+ "ID4gLQkJcG9sbF92YWx1ZSA9IGhpZF9zZW5zb3JfcmVhZF9wb2xsX3ZhbHVlKHN0KTsNCj4gPiA+\n"
+ "IMKgCX0gZWxzZSB7DQo+ID4gPiDCoAkJaW50IHZhbDsNCj4gPiA+IMKgDQo+ID4gPiBAQCAtODks\n"
+ "NyArODcsOSBAQCBzdGF0aWMgaW50IF9oaWRfc2Vuc29yX3Bvd2VyX3N0YXRlKHN0cnVjdMKgDQo+\n"
+ "ID4gPiBoaWRfc2Vuc29yX2NvbW1vbiAqc3QsIGJvb2wgc3RhdGUpDQo+ID4gPiDCoAlzZW5zb3Jf\n"
+ "aHViX2dldF9mZWF0dXJlKHN0LT5oc2Rldiwgc3QtDQo+ID4gPiA+cG93ZXJfc3RhdGUucmVwb3J0\n"
+ "X2lkLA0KPiA+ID4gwqAJCQnCoMKgwqDCoMKgwqDCoHN0LT5wb3dlcl9zdGF0ZS5pbmRleCwNCj4g\n"
+ "PiA+IMKgCQkJwqDCoMKgwqDCoMKgwqBzaXplb2Yoc3RhdGVfdmFsKSwgJnN0YXRlX3ZhbCk7DQo+\n"
+ "ID4gPiAtCWlmIChzdGF0ZSAmJiBwb2xsX3ZhbHVlKQ0KPiA+ID4gKwlpZiAoc3RhdGUpDQo+ID4g\n"
+ "PiArCQlwb2xsX3ZhbHVlID0gaGlkX3NlbnNvcl9yZWFkX3BvbGxfdmFsdWUoc3QpOw0KPiA+ID4g\n"
+ "KwlpZiAocG9sbF92YWx1ZSA+IDApDQo+ID4gPiDCoAkJbXNsZWVwX2ludGVycnVwdGlibGUocG9s\n"
+ "bF92YWx1ZSAqIDIpOw0KPiA+ID4gwqANCj4gPiA+IMKgCXJldHVybsKgDQo+ID4gPiAwO07CoMKg\n"
+ "wqDCoMKgcsKgwqB5wqDCoMKgYiBYwqDCoMendiBeICneunsubiArwqDCoMKgwqB7wqDCoCoiwqDC\n"
+ "oF5uIHLCoMKgwqB6IBrCoMKgaMKgwqDCoMKgJsKgwqAeDQo+ID4gPiBHwqDCoMKgDQo+ID4gPiBo\n"
+ "IAMoIOmajiDdomoiwqDCoBogG23CoMKgwqDCoMKgeiDelsKgwqDCoGbCoMKgwqBowqDCoMKgfiBt\n"
+ bWw9PQ0KPiANCj4g
 
-783f1d14cba002a4cd2abe41680eb7d71749e1b82010cb709f07d32abbf10212
+650eb32c6617178ca292a59dc476e59ae3fbfcf94207cdb86413d87a0481ccb6

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.