From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wang, Kevin(Yang)" Subject: Re: [PATCH] drm/amd/powerplay: change smu_read_sensor sequence in smu Date: Fri, 19 Jul 2019 17:03:28 +0000 Message-ID: References: <20190719112232.28485-1-kevin1.wang@amd.com> , Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Alex Deucher Cc: "Huang, Ray" , "Feng, Kenneth" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" VGhlIHJlYWQgc2Vuc29yIGZ1bmN0aW9uIGlzIG5vdCBzYW1lIGFzIG90aGVyIG9uZSwgdGhpcyBm dW5jdGlvbiBzaG91bGQgYmUgaGFuZGxlIG1hbnkgZGlmZmVyZW50IHNlbnNvciB0eXBlLCAgSSBk b27igJl0IHdhbnQgdG8gaGFuZGxlIGFsbCBzZW5zb3IgdHlwZSBpbiBhc2ljIGZpbGUsIGJlY2F1 c2Ugc29tZSBzZW5zb3IgaXMgdmVyeSBzaW1wbGUsIG9ubHkgc2hvdWxkIGJlIHNlbmQgYSBtZXNz YWdlIHRvIHNtYywgYW5kICBzb21lIHNlbnNvciBzaG91bGQgYmUgcGFyc2UgVGFibGUgd2l0aCBm aXJtd2FyZS4NCg0KRWc6IGdldCBnZnggY2xrLA0KT25seSBuZWVkIHNlbmQgbWVzc2FnZSB0byBn ZXQgdmFsdWUuDQpCZWNhdXNlIHRoZSBtZXNzYWdlIGFscmVhZHkgbWFwcGVkIG9uIGVhY2ggYXNp Yywgc28gdGhpcyBzZW5zb3Igc2hvdWxkIGJlIGhhbmRsZWQgaW4gc211X3YxMS5jLg0KDQpFZzog Z2V0IGdwdSBsb2FkLA0KdGhpcyBzZW5zb3Igc2hvdWxkIGJlIGdldCB2YWx1ZSBmcm9tIGZpcm13 YXJlIHRhYmxlLCBzbyBzaG91bGQgbXVzdCBiZSBoYW5kbGVkIGluIHh4eF9wcHQuYw0KDQpFZzog Z2V0IHBzdGF0ZSBjbG9jaywNCkl0IGlzIGZ1bGwgc29mdHdhcmUgc2Vuc29yLCBzbyBpdCBpcyBo YW5kbGVkIGluIGFtZGdwdV9zbXUuYw0KDQpJbiB0aGlzIHBhdGNoLCB0aGUgc211IG9ubHkgd2Fu dCB0byBwdWJsaWMgb25lIGFwaSBvZiBzbXVfcmVhZF9zZW5zb3IsIGFuZCB0aGUgb3RoZXIgc2Vu c29yIG1hY3JvIGlzIGhlbHBlciBpbiBzbXUgaW50ZXJuYWxseS4NCg0KSSB3YW50IHRvIHJlZHVj ZSBkdXBsaWNhdGUgY29kZSBpbiBzbXUsIGl0IHdpbGwgYmUgbGV0IGJyaW5nIHVwIG5ldyBhc2lj IGVhc3kuDQoNClRoYW5rcw0KDQo+IE9uIEp1bCAyMCwgMjAxOSwgYXQgMTI6MTQgQU0sIEFsZXgg RGV1Y2hlciA8YWxleGRldWNoZXJAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+PiBPbiBGcmksIEp1 bCAxOSwgMjAxOSBhdCAxMjowMSBQTSBXYW5nLCBLZXZpbihZYW5nKSA8S2V2aW4xLldhbmdAYW1k LmNvbT4gd3JvdGU6DQo+PiANCj4+IA0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4+IEZyb206IEFsZXggRGV1Y2hlciA8YWxleGRldWNoZXJAZ21haWwuY29tPg0KPj4gU2Vu dDogRnJpZGF5LCBKdWx5IDE5LCAyMDE5IDExOjE3IFBNDQo+PiBUbzogV2FuZywgS2V2aW4oWWFu ZykgPEtldmluMS5XYW5nQGFtZC5jb20+DQo+PiBDYzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcgPGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsgSHVhbmcsIFJheSA8UmF5Lkh1 YW5nQGFtZC5jb20+OyBGZW5nLCBLZW5uZXRoIDxLZW5uZXRoLkZlbmdAYW1kLmNvbT4NCj4+IFN1 YmplY3Q6IFJlOiBbUEFUQ0hdIGRybS9hbWQvcG93ZXJwbGF5OiBjaGFuZ2Ugc211X3JlYWRfc2Vu c29yIHNlcXVlbmNlIGluIHNtdQ0KPj4gDQo+Pj4gT24gRnJpLCBKdWwgMTksIDIwMTkgYXQgNzoy MyBBTSBXYW5nLCBLZXZpbihZYW5nKSA8S2V2aW4xLldhbmdAYW1kLmNvbT4gd3JvdGU6DQo+Pj4g DQo+Pj4gZWFjaCBhc2ljIG1heWJlIGhhcyBkaWZmZXJlbnQgcmVhZCBzZW5zb3IgbWV0aG9kLg0K Pj4+IHNvIGNoYW5nZSByZWFkIHNlbnNvciBzZXF1ZW5jZSBpbiBzbXUuDQo+Pj4gDQo+Pj4gcmVh ZCBzZW5zb3Igc2VxdWVuY2U6DQo+Pj4gYXNpYyBzZW5zb3IgLS0+IHNtYyBzZW5zb3IgKHNtdSAx MS4uLikgLS0+IGRlZmF1bHRfc2Vuc29yIChjb21tb24pDQo+PiANCj4+IEkgdGhpbmsgdGhpcyBt YWtlcyBzZW5zZS4gIFRoYXQgc2FpZCwgdGhlIGN1cnJlbnQgc3dTTVUgY2FsbGJhY2sNCj4+IHN0 cnVjdHVyZXMgYXJlIHJlYWxseSBjb25mdXNpbmcuICBJIHRoaW5rIHdlIHNob3VsZCBzd2l0Y2gg dG8gYSBzaW5nbGUNCj4+IHNldCBvZiBwZXIgYXNpYyBjYWxsYmFja3MgYW5kIHRoZW4gYWRkIGNv bW1vbiBoZWxwZXJzLiAgVGhlbiBmb3IgYXNpY3MNCj4+IHdoZXJlIGl0IG1ha2VzIHNlbnNlIHdl IGNhbiBqdXN0IHVzZSB0aGUgaGVscGVyIGFzIHRoZSBjYWxsYmFjayBmb3INCj4+IGFsbCByZWxl dmFudCBhc2ljcy4gIElmIHRoZXkgbmVlZCBzb21ldGhpbmcgYXNpYyBzcGVjaWZpYywgdXNlIHRo ZQ0KPj4gYXNpYyBzcGVjaWZpYyBmdW5jdGlvbi4gIFRoYXQgc2hvdWxkIGF2b2lkIHRoZSBjdXJy ZW50IG1peCBvZg0KPj4gY2FsbGJhY2tzIGFuZCBtYWtlIGl0IGNsZWFyZXIgd2hhdCBjb2RlIGdl dHMgdXNlZCB3aGVuLg0KPj4gDQo+PiBBbGV4DQo+PiANCj4+IFtrZXZpbl06DQo+PiANCj4+IHRo YW5rcyByZXZpZXcsIGluIGN1cnJlbnQgY29kZSwgdGhlIHJlYWQgc2Vuc29yIHJlbGF0ZWQgZnVu Y3Rpb24gaXMgbm90IHZlcnkgY2xlYXIsIHNvIGkgd2FudCB0byByZWZpbmUgdGhlbS4NCj4+IGJ1 dCBJJ20gbm90IHN1cmUgd2hpY2ggd2F5IHRvIHdyaXRlIGdvb2QgY29kZSBsb2dpYy4NCj4+IA0K Pj4gd2F5IDE6DQo+PiANCj4+IHByb3ZpZGUgYSBwdWlibGljIGZ1bmN0aW9uIG5hbWVkIHNtdV9y ZWFkX3NlbnNvciBhcyBwdWJsaWMgc211IGFwaSBmb3Igb3RoZXIga2VuZWwgbW9kdWxlLCBsaWtl IHRoaXMgcGF0Y2guDQo+PiB0aGlzIGZ1bmN0aW9uIHdpbGwgdHJ5IHRvIGdldCB2YWx1ZSBmcm9t IGFzaWMgb3Igc211IGlwIGxldmVsIG9yIGNvbW1vbiwgY2FsbCB0aGVtIGluIHR1cm4gYWNjb3Jk aW5nIHRvIHRoZSBydWxlcy4NCj4+IA0KPj4gd2F5IDI6DQo+PiANCj4+IGRlZmluZSBhIG1hY28g bmFtZWQgc211X3JlYWRfc2Vuc29yIGFzIHB1YmxpYyBhcGksIGltcGxlbWVudCBpdCBpbiB4eHhf cHB0LmMgZmlsZSwNCj4+IGlmIGNhbid0IGhhbmRsZSBzZW5zb3IgdHlwZSBpbiB4eHhfcHB0LmMs IHRoZW4gY2FsbCBoZWxwZXIgaW4gc211X3YxMV8wLmMsICB0aGVuIGNhbGwgYW1kZ3B1X3NtdS5j IGhlbHBlci4NCj4+IA0KPj4gaW4gdGhpcyB3YXksIGl0IG1lYW5zIHdlIG11c3QgaW1wbGVtZW50 IHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gaW4geHh4X3BwdC5jLg0KPj4gaWYgbmVlZCB0byBzdXBw b3J0IG5ldyBhc2ljLCB3ZSBzaG91bGQgYWRkIHNvbWUgZHVsaWNhdGVkIGNvZGUgaW4geHh4X3Bw dC5jLCBpZiBub3QgdGhlIHNtdV9yZWFkX3NlbnNvciBhcGkgaXMgbm90IHdvcmsgd2VsbC4NCj4+ IGluIHNtdSBtb2R1bGUsIHVzZSBtYW55IG1hY3JvcyBhcyBtb2R1bGUgcHVibGljIGFwaSwgaXQg aXMgaW1wb3NzaWJsZSB0byB0ZWxsIGF0IHdoYXQgbGV2ZWwgdGhlc2UgbWFjcm9zIGltcGxlbWVu dCBzcGVjaWZpYyBjb2RlIGxvZ2ljLg0KPj4gc28gaSB3YW50IHRvIHJlZmluZSB0aGVtLg0KPj4g DQo+PiBkbyB5b3UgdGhpbmsgd2hpY2ggd2F5IGlzIGdvb2QgZm9yIHRoaXMgY2FzZT8NCj4gDQo+ IEkgcGVyc29uYWxseSBwcmVmZXIgd2F5IDIuICBXaXRoIHdheSAxLCB0aGUgY29tbW9uIGZ1bmN0 aW9ucyB3b3VsZA0KPiBqdXN0IGJlIGEgd3JhcHBlciBhcm91bmQgdGhlIGFzaWMgc3BlY2lmaWMg Y2FsbGJhY2tzLiAgVGhlIG9sZGVyDQo+IHBvd2VycGxheSBjb2RlIHdvcmtlZCB0aGF0IHdheS4g IElmIHRoZXJlIGlzIHNvbWV0aGluZyBjb21tb24gdGhhdA0KPiBuZWVkcyB0byBiZSBkb25lIGZv ciBhbGwgYXNpY3MsIEkgdGhpbmsgdGhhdCB3b3VsZCBtYWtlIHNlbnNlLCBidXQgSQ0KPiBkb24n dCBrbm93IHRoYXQgd2UgaGF2ZSBhbnkgY2FzZXMgbGlrZSB0aGF0LiAgSWYgd2UgZG8gZW5kIHVw IG5lZWRpbmcNCj4gc29tZXRoaW5nIGxpa2UgdGhhdCwgd2UgY2FuIGFsd2F5cyByZXZpc2l0IHRo aXMuDQo+IA0KPiBJIHdhcyB0aGlua2luZyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nOg0K PiANCj4gc3RydWN0IHNtdV9hc2ljX2Z1bmNzIHsNCj4gICAgaW50ICgqZ2V0X2N1cnJlbnRfY2xv Y2tfZnJlcSkoKTsNCj4gICAgaW50ICgqZ2V0X2Zhbl9zcGVlZF9ycG0pKCk7DQo+ICAgIC4uLg0K PiB9DQo+IA0KPiBUaGVuIGZvciBjYXNlcyB3aGVyZSB0d28gYXNpY3MgdXNlIHRoZSBzYW1lIFNN VSBpbnRlcmZhY2UsIHlvdSBjYW4NCj4gY3JlYXRlIGEgY29tbW9uIGZ1bmN0aW9uLiAgU28gZm9y IHZlZ2EyMCwgaXQgbWlnaHQgbG9vayBsaWtlOg0KPiANCj4gc3RhdGljIGNvbnN0IHN0cnVjdCBz bXVfYXNpY19mdW5jcyB2ZWdhMjBfc211X2FzaWNfZnVuY3MgPQ0KPiB7DQo+ICAgIC5nZXRfY3Vy cmVudF9jbG9ja19mcmVxID0gc211X3YxMV8wX2dldF9jdXJyZW50X2Nsb2NrX2ZyZXEsDQo+ICAg IC5nZXRfZmFuX3NwZWVkX3JwbSA9IHZlZ2EyMF9nZXRfZmFuX3NwZWVkX3JwbSwNCj4gICAgLi4u DQo+IH07DQo+IA0KPiBhbmQgbmF2aTEwIHdvdWxkIGxvb2sgbGlrZToNCj4gDQo+IHN0YXRpYyBj b25zdCBzdHJ1Y3Qgc211X2FzaWNfZnVuY3MgbmF2aTEwX3NtdV9hc2ljX2Z1bmNzID0NCj4gew0K PiAgICAuZ2V0X2N1cnJlbnRfY2xvY2tfZnJlcSA9IHNtdV92MTFfMF9nZXRfY3VycmVudF9jbG9j a19mcmVxLA0KPiAgICAuZ2V0X2Zhbl9zcGVlZF9ycG0gPSBuYXZpMTBfZ2V0X2Zhbl9zcGVlZF9y cG0sDQo+ICAgIC4uLg0KPiB9Ow0KPiANCj4gQWxleA0KPiANCj4gDQo+PiB0aGFua3MuDQo+PiAN Cj4+PiANCj4+PiBTaWduZWQtb2ZmLWJ5OiBLZXZpbiBXYW5nIDxrZXZpbjEud2FuZ0BhbWQuY29t Pg0KPj4+IC0tLQ0KPj4+IGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZGdwdV9zbXUu YyAgICB8IDI2ICsrKysrKysrKysrKysrKysrLS0NCj4+PiAuLi4vZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2luYy9hbWRncHVfc211LmggICAgfCAgOSArKysrLS0tDQo+Pj4gZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvbmF2aTEwX3BwdC5jICAgIHwgIDMgKysrDQo+Pj4gZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMgfCAxMCArKystLS0tDQo+Pj4gZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvdmVnYTIwX3BwdC5jICAgIHwgIDMgKysrDQo+Pj4gNSBmaWxl cyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4+PiANCj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jDQo+Pj4gaW5kZXggMDVi OTFiYzUwNTRjLi44NTI2OWY4NmNhZTIgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jDQo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvYW1kZ3B1X3NtdS5jDQo+Pj4gQEAgLTI4NCwxMSArMjg0LDE0IEBAIGludCBz bXVfZ2V0X3Bvd2VyX251bV9zdGF0ZXMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsDQo+Pj4gICAg ICAgIHJldHVybiAwOw0KPj4+IH0NCj4+PiANCj4+PiAtaW50IHNtdV9jb21tb25fcmVhZF9zZW5z b3Ioc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gYW1kX3BwX3NlbnNvcnMgc2Vuc29yLA0K Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEsIHVpbnQzMl90ICpzaXpl KQ0KPj4+ICtpbnQgc211X2RlZmF1bHRfcmVhZF9zZW5zb3Ioc3RydWN0IHNtdV9jb250ZXh0ICpz bXUsIGVudW0gYW1kX3BwX3NlbnNvcnMgc2Vuc29yLA0KPj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICB2b2lkICpkYXRhLCB1aW50MzJfdCAqc2l6ZSkNCj4+PiB7DQo+Pj4gICAgICAgIGlu dCByZXQgPSAwOw0KPj4+IA0KPj4+ICsgICAgICAgaWYgKCFkYXRhIHx8ICFzaXplKQ0KPj4+ICsg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+PiArDQo+Pj4gICAgICAgIHN3aXRjaCAo c2Vuc29yKSB7DQo+Pj4gICAgICAgIGNhc2UgQU1ER1BVX1BQX1NFTlNPUl9TVEFCTEVfUFNUQVRF X1NDTEs6DQo+Pj4gICAgICAgICAgICAgICAgKigodWludDMyX3QgKilkYXRhKSA9IHNtdS0+cHN0 YXRlX3NjbGs7DQo+Pj4gQEAgLTMyMSw2ICszMjQsMjUgQEAgaW50IHNtdV9jb21tb25fcmVhZF9z ZW5zb3Ioc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0gYW1kX3BwX3NlbnNvcnMgc2Vuc29y LA0KPj4+ICAgICAgICByZXR1cm4gcmV0Ow0KPj4+IH0NCj4+PiANCj4+PiAraW50IHNtdV9yZWFk X3NlbnNvcihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBhbWRfcHBfc2Vuc29ycyBzZW5z b3IsDQo+Pj4gKyAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLCB1aW50MzJfdCAqc2l6ZSkN Cj4+PiArew0KPj4+ICsgICAgICAgaW50IHJldCA9IDA7DQo+Pj4gKw0KPj4+ICsgICAgICAgaWYg KCFkYXRhIHx8ICFzaXplKQ0KPj4+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ PiArDQo+Pj4gKyAgICAgICAvKiBoYW5kbGUgc2Vuc29yIHNlcXVlbmNlOiBhc2ljIC0tPiBpcCBs ZXZlbCAtLT4gIGRlZmF1bHQgKi8NCj4+PiArICAgICAgIHJldCA9IHNtdV9hc2ljX3JlYWRfc2Vu c29yKHNtdSwgc2Vuc29yLCBkYXRhLCBzaXplKTsNCj4+PiArICAgICAgIGlmIChyZXQpIHsNCj4+ PiArICAgICAgICAgICAgICAgcmV0ID0gc211X3NtY19yZWFkX3NlbnNvcihzbXUsIHNlbnNvciwg ZGF0YSwgc2l6ZSk7DQo+Pj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpDQo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0ID0gc211X2RlZmF1bHRfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3Is IGRhdGEsIHNpemUpOw0KPj4+ICsgICAgICAgfQ0KPj4+ICsNCj4+PiArICAgICAgIHJldHVybiBy ZXQ7DQo+Pj4gK30NCj4+PiArDQo+Pj4gaW50IHNtdV91cGRhdGVfdGFibGUoc3RydWN0IHNtdV9j b250ZXh0ICpzbXUsIGVudW0gc211X3RhYmxlX2lkIHRhYmxlX2luZGV4LCBpbnQgYXJndW1lbnQs DQo+Pj4gICAgICAgICAgICAgICAgICAgICB2b2lkICp0YWJsZV9kYXRhLCBib29sIGRydjJzbXUp DQo+Pj4gew0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9p bmMvYW1kZ3B1X3NtdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdw dV9zbXUuaA0KPj4+IGluZGV4IDM0MDkzZGRjYTEwNS4uNDYyYmFlOGQ2MmFhIDEwMDY0NA0KPj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgNCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kZ3B1X3NtdS5oDQo+ Pj4gQEAgLTgyMCwxMCArODIwLDEwIEBAIHN0cnVjdCBzbXVfZnVuY3MNCj4+PiAgICAgICAgKChz bXUpLT5wcHRfZnVuY3MtPnNldF90aGVybWFsX2Zhbl90YWJsZSA/IChzbXUpLT5wcHRfZnVuY3Mt PnNldF90aGVybWFsX2Zhbl90YWJsZSgoc211KSkgOiAwKQ0KPj4+ICNkZWZpbmUgc211X3N0YXJ0 X3RoZXJtYWxfY29udHJvbChzbXUpIFwNCj4+PiAgICAgICAgKChzbXUpLT5mdW5jcy0+c3RhcnRf dGhlcm1hbF9jb250cm9sPyAoc211KS0+ZnVuY3MtPnN0YXJ0X3RoZXJtYWxfY29udHJvbCgoc211 KSkgOiAwKQ0KPj4+IC0jZGVmaW5lIHNtdV9yZWFkX3NlbnNvcihzbXUsIHNlbnNvciwgZGF0YSwg c2l6ZSkgXA0KPj4+IC0gICAgICAgKChzbXUpLT5mdW5jcy0+cmVhZF9zZW5zb3I/IChzbXUpLT5m dW5jcy0+cmVhZF9zZW5zb3IoKHNtdSksIChzZW5zb3IpLCAoZGF0YSksIChzaXplKSkgOiAwKQ0K Pj4+ICsjZGVmaW5lIHNtdV9zbWNfcmVhZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUp IFwNCj4+PiArICAgICAgICgoc211KS0+ZnVuY3MtPnJlYWRfc2Vuc29yPyAoc211KS0+ZnVuY3Mt PnJlYWRfc2Vuc29yKChzbXUpLCAoc2Vuc29yKSwgKGRhdGEpLCAoc2l6ZSkpIDogLUVJTlZBTCkN Cj4+PiAjZGVmaW5lIHNtdV9hc2ljX3JlYWRfc2Vuc29yKHNtdSwgc2Vuc29yLCBkYXRhLCBzaXpl KSBcDQo+Pj4gLSAgICAgICAoKHNtdSktPnBwdF9mdW5jcy0+cmVhZF9zZW5zb3I/IChzbXUpLT5w cHRfZnVuY3MtPnJlYWRfc2Vuc29yKChzbXUpLCAoc2Vuc29yKSwgKGRhdGEpLCAoc2l6ZSkpIDog MCkNCj4+PiArICAgICAgICgoc211KS0+cHB0X2Z1bmNzLT5yZWFkX3NlbnNvcj8gKHNtdSktPnBw dF9mdW5jcy0+cmVhZF9zZW5zb3IoKHNtdSksIChzZW5zb3IpLCAoZGF0YSksIChzaXplKSkgOiAt RUlOVkFMKQ0KPj4+ICNkZWZpbmUgc211X2dldF9wb3dlcl9wcm9maWxlX21vZGUoc211LCBidWYp IFwNCj4+PiAgICAgICAgKChzbXUpLT5wcHRfZnVuY3MtPmdldF9wb3dlcl9wcm9maWxlX21vZGUg PyAoc211KS0+cHB0X2Z1bmNzLT5nZXRfcG93ZXJfcHJvZmlsZV9tb2RlKChzbXUpLCBidWYpIDog MCkNCj4+PiAjZGVmaW5lIHNtdV9zZXRfcG93ZXJfcHJvZmlsZV9tb2RlKHNtdSwgcGFyYW0sIHBh cmFtX3NpemUpIFwNCj4+PiBAQCAtOTg5LDUgKzk4OSw2IEBAIGVudW0gYW1kX2RwbV9mb3JjZWRf bGV2ZWwgc211X2dldF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSk7 DQo+Pj4gaW50IHNtdV9mb3JjZV9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3Qgc211X2NvbnRleHQg KnNtdSwgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBsZXZlbCk7DQo+Pj4gaW50IHNtdV9zZXRf ZGlzcGxheV9jb3VudChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgdWludDMyX3QgY291bnQpOw0K Pj4+IGJvb2wgc211X2Nsa19kcG1faXNfZW5hYmxlZChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwg ZW51bSBzbXVfY2xrX3R5cGUgY2xrX3R5cGUpOw0KPj4+IC0NCj4+PiAraW50IHNtdV9yZWFkX3Nl bnNvcihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgZW51bSBhbWRfcHBfc2Vuc29ycyBzZW5zb3Is DQo+Pj4gKyAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLCB1aW50MzJfdCAqc2l6ZSk7DQo+ Pj4gI2VuZGlmDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L25hdmkxMF9wcHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L25hdmkxMF9wcHQu Yw0KPj4+IGluZGV4IDQ2ZTI5MTNlNGFmNC4uMGE1MzY5NTc4NWI2IDEwMDY0NA0KPj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L25hdmkxMF9wcHQuYw0KPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L25hdmkxMF9wcHQuYw0KPj4+IEBAIC0xMzY1LDYg KzEzNjUsOSBAQCBzdGF0aWMgaW50IG5hdmkxMF9yZWFkX3NlbnNvcihzdHJ1Y3Qgc211X2NvbnRl eHQgKnNtdSwNCj4+PiAgICAgICAgc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICp0YWJsZV9jb250 ZXh0ID0gJnNtdS0+c211X3RhYmxlOw0KPj4+ICAgICAgICBQUFRhYmxlX3QgKnBwdGFibGUgPSB0 YWJsZV9jb250ZXh0LT5kcml2ZXJfcHB0YWJsZTsNCj4+PiANCj4+PiArICAgICAgIGlmICghZGF0 YSB8fCAhc2l6ZSkNCj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4gKw0K Pj4+ICAgICAgICBzd2l0Y2ggKHNlbnNvcikgew0KPj4+ICAgICAgICBjYXNlIEFNREdQVV9QUF9T RU5TT1JfTUFYX0ZBTl9SUE06DQo+Pj4gICAgICAgICAgICAgICAgKih1aW50MzJfdCAqKWRhdGEg PSBwcHRhYmxlLT5GYW5NYXhpbXVtUnBtOw0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9zbXVfdjExXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L3NtdV92MTFfMC5jDQo+Pj4gaW5kZXggNzZiYzE1NzUyNWQwLi4yNjc5YjZmZjZjYTMgMTAw NjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMN Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVfdjExXzAuYw0KPj4+ IEBAIC0xMjY3LDYgKzEyNjcsMTAgQEAgc3RhdGljIGludCBzbXVfdjExXzBfcmVhZF9zZW5zb3Io c3RydWN0IHNtdV9jb250ZXh0ICpzbXUsDQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2b2lkICpkYXRhLCB1aW50MzJfdCAqc2l6ZSkNCj4+PiB7DQo+Pj4gICAgICAgIGludCBy ZXQgPSAwOw0KPj4+ICsNCj4+PiArICAgICAgIGlmICghZGF0YSB8fCAhc2l6ZSkNCj4+PiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4gKw0KPj4+ICAgICAgICBzd2l0Y2ggKHNl bnNvcikgew0KPj4+ICAgICAgICBjYXNlIEFNREdQVV9QUF9TRU5TT1JfR0ZYX01DTEs6DQo+Pj4g ICAgICAgICAgICAgICAgcmV0ID0gc211X2dldF9jdXJyZW50X2Nsa19mcmVxKHNtdSwgU01VX1VD TEssICh1aW50MzJfdCAqKWRhdGEpOw0KPj4+IEBAIC0xMjg1LDE0ICsxMjg5LDEwIEBAIHN0YXRp YyBpbnQgc211X3YxMV8wX3JlYWRfc2Vuc29yKHN0cnVjdCBzbXVfY29udGV4dCAqc211LA0KPj4+ ICAgICAgICAgICAgICAgICpzaXplID0gNDsNCj4+PiAgICAgICAgICAgICAgICBicmVhazsNCj4+ PiAgICAgICAgZGVmYXVsdDoNCj4+PiAtICAgICAgICAgICAgICAgcmV0ID0gc211X2NvbW1vbl9y ZWFkX3NlbnNvcihzbXUsIHNlbnNvciwgZGF0YSwgc2l6ZSk7DQo+Pj4gKyAgICAgICAgICAgICAg IHJldCA9IC1FSU5WQUw7DQo+Pj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+Pj4gICAgICAgIH0N Cj4+PiANCj4+PiAtICAgICAgIC8qIHRyeSBnZXQgc2Vuc29yIGRhdGEgYnkgYXNpYyAqLw0KPj4+ IC0gICAgICAgaWYgKHJldCkNCj4+PiAtICAgICAgICAgICAgICAgcmV0ID0gc211X2FzaWNfcmVh ZF9zZW5zb3Ioc211LCBzZW5zb3IsIGRhdGEsIHNpemUpOw0KPj4+IC0NCj4+PiAgICAgICAgaWYg KHJldCkNCj4+PiAgICAgICAgICAgICAgICAqc2l6ZSA9IDA7DQo+Pj4gDQo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYw0KPj4+IGluZGV4IGJjZDBlZmFmN2Ji ZC4uYjQ0ZWM3YzY3MGM1IDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93 ZXJwbGF5L3ZlZ2EyMF9wcHQuYw0KPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L3ZlZ2EyMF9wcHQuYw0KPj4+IEBAIC0zMTQ2LDYgKzMxNDYsOSBAQCBzdGF0aWMgaW50IHZl Z2EyMF9yZWFkX3NlbnNvcihzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwNCj4+PiAgICAgICAgc3Ry dWN0IHNtdV90YWJsZV9jb250ZXh0ICp0YWJsZV9jb250ZXh0ID0gJnNtdS0+c211X3RhYmxlOw0K Pj4+ICAgICAgICBQUFRhYmxlX3QgKnBwdGFibGUgPSB0YWJsZV9jb250ZXh0LT5kcml2ZXJfcHB0 YWJsZTsNCj4+PiANCj4+PiArICAgICAgIGlmICghZGF0YSB8fCAhc2l6ZSkNCj4+PiArICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4gKw0KPj4+ICAgICAgICBzd2l0Y2ggKHNlbnNv cikgew0KPj4+ICAgICAgICBjYXNlIEFNREdQVV9QUF9TRU5TT1JfTUFYX0ZBTl9SUE06DQo+Pj4g ICAgICAgICAgICAgICAgKih1aW50MzJfdCAqKWRhdGEgPSBwcHRhYmxlLT5GYW5NYXhpbXVtUnBt Ow0KPj4+IC0tDQo+Pj4gMi4yMi4wDQo+Pj4gDQo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdA0KPj4+IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2FtZC1nZng=