From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ardelean, Alexandru" Subject: Re: [PATCH v4 1/9] staging: iio: ad7780: add gain & filter gpio support Date: Fri, 1 Mar 2019 06:56:14 +0000 Message-ID: <4f945f058c8536a2731c4de3e0b9227a41cd2891.camel@analog.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: <4F09E2FDB8CAE349AE074D38FE9DF402@analog.com> Sender: linux-kernel-owner@vger.kernel.org To: "lars@metafoo.de" , "robh+dt@kernel.org" , "Popa, Stefan Serban" , "knaack.h@gmx.de" , "jic23@kernel.org" , "Hennerich, Michael" , "renatogeh@gmail.com" , "mark.rutland@arm.com" , "giuliano.belinassi@usp.br" , "pmeerw@pmeerw.net" , "gregkh@linuxfoundation.org" Cc: "linux-kernel@vger.kernel.org" , "linux-iio@vger.kernel.org" , "devel@driverdev.osuosl.org" , "kernel-usp@googlegroups.com" , "devicetree@vger.kernel.org" List-Id: devicetree@vger.kernel.org T24gVGh1LCAyMDE5LTAyLTI4IGF0IDExOjIzIC0wMzAwLCBSZW5hdG8gTHVpIEdlaCB3cm90ZToN Cj4gDQo+IA0KPiBQcmV2aW91c2x5LCB0aGUgQUQ3NzgwIGRyaXZlciBvbmx5IHN1cHBvcnRlZCBn cGlvIGZvciB0aGUgJ3Bvd2VyZG93bicNCj4gcGluLiBUaGlzIGNvbW1pdCBhZGRzIHN1cHBwb3J0 IGZvciB0aGUgJ2dhaW4nIGFuZCAnZmlsdGVyJyBwaW4uDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBS ZW5hdG8gTHVpIEdlaCA8cmVuYXRvZ2VoQGdtYWlsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogR2l1 bGlhbm8gQmVsaW5hc3NpIDxnaXVsaWFuby5iZWxpbmFzc2lAdXNwLmJyPg0KPiBDby1kZXZlbG9w ZWQtYnk6IEdpdWxpYW5vIEJlbGluYXNzaSA8Z2l1bGlhbm8uYmVsaW5hc3NpQHVzcC5icj4NCj4g LS0tDQo+IENoYW5nZXMgaW4gdjM6DQo+ICAtIFJlbmFtZWQgYWQ3NzgwX2NoaXBfaW5mbydzIGZp bHRlciB0byBvZHINCj4gIC0gUmVuYW1lZCBhZDc3OHhfZmlsdGVyIHRvIGFkNzc4eF9vZHJfYXZh aWwNCj4gIC0gQ2hhbmdlZCB2cmVmIHZhcmlhYmxlIGZyb20gdW5zaWduZWQgaW50IHRvIHVuc2ln bmVkIGxvbmcgbG9uZyB0byBhdm9pZA0KPiAgICBvdmVyZmxvdw0KPiAgLSBSZW1vdmVkIHVubmVj ZXNzYXJ5IEFEX1NEX0NIQU5ORUwgbWFjcm8NCj4gQ2hhbmdlcyBpbiB2NDoNCj4gIC0gUmVtb3Zl ZCB1c2VsZXNzIG1hY3JvDQo+ICAtIEFkZGVkIGRlZmF1bHQgY2FzZSBmb3Igc3dpdGNoIHRvIHN1 cHByZXNzIHdhcm5pbmcNCj4gIC0gUmVtb3ZlZCBjaHVua3MgYmVsb25naW5nIHRvIGZpbHRlciBy ZWFkaW5nLCBhZGRpbmcgdGhlc2UgYXMgYQ0KPiAgICBwYXRjaCBmb3IgaXRzZWxmDQo+IA0KPiAg ZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NzgwLmMgfCA5MCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3 NzgwLmMNCj4gYi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc3ODAuYw0KPiBpbmRleCBjNGE4 NTc4OWMyZGIuLjg3ZmJjZjUxMGQ0NSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lp by9hZGMvYWQ3NzgwLmMNCj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3NzgwLmMN Cj4gQEAgLTM5LDYgKzM5LDEyIEBADQo+ICAjZGVmaW5lIEFENzE3MF9QQVRURVJOICAgICAgICAg KEFENzc4MF9QQVQwIHwgQUQ3MTcwX1BBVDIpDQo+ICAjZGVmaW5lIEFENzE3MF9QQVRURVJOX01B U0sgICAgKEFENzc4MF9QQVQwIHwgQUQ3NzgwX1BBVDEgfCBBRDcxNzBfUEFUMikNCj4gDQo+ICsj ZGVmaW5lIEFENzc4MF9HQUlOX01JRFBPSU5UICAgNjQNCj4gKyNkZWZpbmUgQUQ3NzgwX0ZJTFRF Ul9NSURQT0lOVCAxMzM1MA0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGFkNzc4 eF9nYWluWzJdICAgICAgPSB7IDEsIDEyOCB9Ow0KPiArc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu dCBhZDc3OHhfb2RyX2F2YWlsWzJdID0geyAxMDAwMCwgMTY3MDAgfTsNCg0KYWQ3Nzh4X29kcl9h dmFpbFsyXSBpcyBub3QgdXNlZCBpbiB0aGlzIHBhdGNoLCBzbyBpdCBzaG91bGQgcHJvYmFibHkg Z28NCmludG8gdGhlIG5leHQgb25lIA0KKGkuZS4gc3RhZ2luZzogaWlvOiBhZDc3ODA6IGFkZCBm aWx0ZXIgcmVhZGluZyB0byBhZDc3OHggKQ0KDQpvbmUgZ29vZCB3YXkgb2YgY2F0Y2hpbmcgc3R1 ZmYgbGlrZSB0aGlzIGlzIHRvIGRvIGludGVyYWN0aXZlIHJlYmFzZSBhbmQNCmNvbXBpbGUgeW91 ciBkcml2ZXIgb24gZWFjaCBwYXRjaCB0byBzZWUgaWYgdGhlIGNvbXBpbGVyIGNhdGNoZXMgdGhp czsNCmkgc3VzcGVjdCB0aGUgY29tcGlsZXIgd291bGQgaGF2ZSB0aHJvd24gYW4gZXJyb3IgZm9y IHRoaXMgY2hhbmdlDQoNCg0KPiANCj4gIHN0cnVjdCBhZDc3ODBfY2hpcF9pbmZvDQo+ICAgICAg ICAgc3RydWN0IGlpb19jaGFuX3NwZWMgICAgY2hhbm5lbDsNCj4gICAgICAgICB1bnNpZ25lZCBp bnQgICAgICAgICAgICBwYXR0ZXJuX21hc2s7DQo+IEBAIC01MCw3ICs1NiwxMCBAQCBzdHJ1Y3Qg YWQ3NzgwX3N0YXRlIHsNCj4gICAgICAgICBjb25zdCBzdHJ1Y3QgYWQ3NzgwX2NoaXBfaW5mbyAg ICpjaGlwX2luZm87DQo+ICAgICAgICAgc3RydWN0IHJlZ3VsYXRvciAgICAgICAgICAgICAgICAq cmVnOw0KPiAgICAgICAgIHN0cnVjdCBncGlvX2Rlc2MgICAgICAgICAgICAgICAgKnBvd2VyZG93 bl9ncGlvOw0KPiAtICAgICAgIHVuc2lnbmVkIGludCAgICBnYWluOw0KPiArICAgICAgIHN0cnVj dCBncGlvX2Rlc2MgICAgICAgICAgICAgICAgKmdhaW5fZ3BpbzsNCj4gKyAgICAgICBzdHJ1Y3Qg Z3Bpb19kZXNjICAgICAgICAgICAgICAgICpmaWx0ZXJfZ3BpbzsNCj4gKyAgICAgICB1bnNpZ25l ZCBpbnQgICAgICAgICAgICAgICAgICAgIGdhaW47DQo+ICsgICAgICAgdW5zaWduZWQgaW50ICAg ICAgICAgICAgICAgICAgICBpbnRfdnJlZl9tdjsNCj4gDQo+ICAgICAgICAgc3RydWN0IGFkX3Np Z21hX2RlbHRhIHNkOw0KPiAgfTsNCj4gQEAgLTEwNCwxNyArMTEzLDY1IEBAIHN0YXRpYyBpbnQg YWQ3NzgwX3JlYWRfcmF3KHN0cnVjdCBpaW9fZGV2DQo+ICppbmRpb19kZXYsDQo+ICAgICAgICAg ICAgICAgICB2b2x0YWdlX3V2ID0gcmVndWxhdG9yX2dldF92b2x0YWdlKHN0LT5yZWcpOw0KPiAg ICAgICAgICAgICAgICAgaWYgKHZvbHRhZ2VfdXYgPCAwKQ0KPiAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gdm9sdGFnZV91djsNCj4gLSAgICAgICAgICAgICAgICp2YWwgPSAodm9sdGFn ZV91diAvIDEwMDApICogc3QtPmdhaW47DQo+ICsgICAgICAgICAgICAgICB2b2x0YWdlX3V2IC89 IDEwMDA7DQo+ICsgICAgICAgICAgICAgICAqdmFsID0gdm9sdGFnZV91diAqIHN0LT5nYWluOw0K PiAgICAgICAgICAgICAgICAgKnZhbDIgPSBjaGFuLT5zY2FuX3R5cGUucmVhbGJpdHMgLSAxOw0K PiArICAgICAgICAgICAgICAgc3QtPmludF92cmVmX212ID0gdm9sdGFnZV91djsNCj4gICAgICAg ICAgICAgICAgIHJldHVybiBJSU9fVkFMX0ZSQUNUSU9OQUxfTE9HMjsNCj4gICAgICAgICBjYXNl IElJT19DSEFOX0lORk9fT0ZGU0VUOg0KPiAgICAgICAgICAgICAgICAgKnZhbCA9IC0oMSA8PCAo Y2hhbi0+c2Nhbl90eXBlLnJlYWxiaXRzIC0gMSkpOw0KPiAgICAgICAgICAgICAgICAgcmV0dXJu IElJT19WQUxfSU5UOw0KPiArICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgYnJlYWs7DQoNClRo ZSBpbmRlbnRhdGlvbiBvZiB0aGUgYnJlYWsgc3RhdGVtZW50IGlzIGluY29uc2lzdGVudCB3aXRo IG90aGVyIHBsYWNlcy4NClN0aWxsLCBpdCBkb2VzIG5vdCBhZGQgbXVjaCB2YWx1ZSBhZGRpbmcg dGhpcyBjaGFuZ2UgYXMtaXMsIHNpbmNlIGl0IGRvZXMNCm5vdCBjaGFuZ2UgYW55IGJlaGF2aW9y LCBhbmQgaXMgbm90IGFuIGVsZW1lbnQgbmVlZGVkIGJ5IHRoaXMgY2hhbmdlIChpLmUuDQphZGRp bmcgZ2FpbiAmIGZpbHRlciBzdXBwb3J0IHZpYSBncGlvcykNCg0KPiAgICAgICAgIH0NCj4gDQo+ ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICB9DQo+IA0KPiArc3RhdGljIGludCBhZDc3ODBf d3JpdGVfcmF3KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBjb25zdCAqY2hhbiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCB2YWwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgdmFsMiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbSkNCj4gK3sN Cj4gKyAgICAgICBzdHJ1Y3QgYWQ3NzgwX3N0YXRlICpzdCA9IGlpb19wcml2KGluZGlvX2Rldik7 DQo+ICsgICAgICAgY29uc3Qgc3RydWN0IGFkNzc4MF9jaGlwX2luZm8gKmNoaXBfaW5mbyA9IHN0 LT5jaGlwX2luZm87DQo+ICsgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHZyZWY7DQo+ICsgICAg ICAgdW5zaWduZWQgaW50IGZ1bGxfc2NhbGUsIGdhaW47DQo+ICsNCj4gKyAgICAgICBpZiAoIWNo aXBfaW5mby0+aXNfYWQ3Nzh4KQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICsNCj4g KyAgICAgICBzd2l0Y2ggKG0pIHsNCj4gKyAgICAgICBjYXNlIElJT19DSEFOX0lORk9fU0NBTEU6 DQo+ICsgICAgICAgICAgICAgICBpZiAodmFsICE9IDApDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsgICAgICAgICAgICAgICB2cmVmID0gc3QtPmlu dF92cmVmX212ICogMTAwMDAwMExMOw0KPiArICAgICAgICAgICAgICAgZnVsbF9zY2FsZSA9IDEg PDwgKGNoaXBfaW5mby0+Y2hhbm5lbC5zY2FuX3R5cGUucmVhbGJpdHMNCj4gLSAxKTsNCj4gKyAg ICAgICAgICAgICAgIGdhaW4gPSBESVZfUk9VTkRfQ0xPU0VTVCh2cmVmLCBmdWxsX3NjYWxlKTsN Cj4gKyAgICAgICAgICAgICAgIGdhaW4gPSBESVZfUk9VTkRfQ0xPU0VTVChnYWluLCB2YWwyKTsN Cj4gKyAgICAgICAgICAgICAgIHN0LT5nYWluID0gZ2FpbjsNCj4gKyAgICAgICAgICAgICAgIGlm IChnYWluIDwgQUQ3NzgwX0dBSU5fTUlEUE9JTlQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAg IGdhaW4gPSAwOw0KPiArICAgICAgICAgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICBnYWluID0gMTsNCj4gKyAgICAgICAgICAgICAgIGdwaW9kX3NldF92YWx1ZShzdC0+Z2Fp bl9ncGlvLCBnYWluKTsNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgIGNhc2Ug SUlPX0NIQU5fSU5GT19TQU1QX0ZSRVE6DQo+ICsgICAgICAgICAgICAgICBpZiAoMTAwMCp2YWwg KyB2YWwyLzEwMDAgPCBBRDc3ODBfRklMVEVSX01JRFBPSU5UKQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICB2YWwgPSAwOw0KPiArICAgICAgICAgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICB2YWwgPSAxOw0KPiArICAgICAgICAgICAgICAgZ3Bpb2Rfc2V0X3ZhbHVlKHN0 LT5maWx0ZXJfZ3BpbywgdmFsKTsNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAg IGRlZmF1bHQ6DQo+ICsgICAgICAgYnJlYWs7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAg cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbnQgYWQ3NzgwX3Bvc3Rwcm9jZXNzX3Nh bXBsZShzdHJ1Y3QgYWRfc2lnbWFfZGVsdGEgKnNpZ21hX2RlbHRhLA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJhd19zYW1wbGUpDQo+ICB7DQo+ IEBAIC0xMjYsMTAgKzE4Myw3IEBAIHN0YXRpYyBpbnQgYWQ3NzgwX3Bvc3Rwcm9jZXNzX3NhbXBs ZShzdHJ1Y3QNCj4gYWRfc2lnbWFfZGVsdGEgKnNpZ21hX2RlbHRhLA0KPiAgICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU87DQo+IA0KPiAgICAgICAgIGlmIChjaGlwX2luZm8tPmlzX2FkNzc4eCkg ew0KPiAtICAgICAgICAgICAgICAgaWYgKHJhd19zYW1wbGUgJiBBRDc3ODBfR0FJTikNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgc3QtPmdhaW4gPSAxOw0KPiAtICAgICAgICAgICAgICAgZWxz ZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICBzdC0+Z2FpbiA9IDEyODsNCj4gKyAgICAgICAg ICAgICAgIHN0LT5nYWluID0gYWQ3Nzh4X2dhaW5bcmF3X3NhbXBsZSAmIEFENzc4MF9HQUlOXTsN Cg0KVGhlIG5ldyBgYWQ3Nzh4X2dhaW5bXWAgYXJyYXkgY291bGQgaGF2ZSBiZWVuIGl0J3Mgb3du IHBhdGNoLCBidXQgZnJvbSBteQ0Kc2lkZSBpdCdzIGZpbmUgdG8gbGVhdmUgaXQgaGVyZS4NCkkg ZG8gbGlrZSB0aGlzIGNoYW5nZSwgYnV0IGl0J3Mgbm90IGEgcGF0Y2ggdGhhdCBzZW1hbnRpY2Fs bHkgaGFzIHRvIGRvDQphbnl0aGluZyB3aXRoIGFkZGluZyBnYWluICYgZmlsdGVyIGdwaW8gc3Vw cG9ydC4NCg0KDQpMZXQncyBzZWUgd2hhdCBKb25hdGhhbiBzYXlzLg0KDQo+ICAgICAgICAgfQ0K PiANCj4gICAgICAgICByZXR1cm4gMDsNCj4gQEAgLTE3Myw2ICsyMjcsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGFkNzc4MF9jaGlwX2luZm8NCj4gYWQ3NzgwX2NoaXBfaW5mb190YmxbXSA9IHsN Cj4gDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGlpb19pbmZvIGFkNzc4MF9pbmZvID0gew0KPiAg ICAgICAgIC5yZWFkX3JhdyA9IGFkNzc4MF9yZWFkX3JhdywNCj4gKyAgICAgICAud3JpdGVfcmF3 ID0gYWQ3NzgwX3dyaXRlX3JhdywNCj4gIH07DQo+IA0KPiAgc3RhdGljIGludCBhZDc3ODBfcHJv YmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkNCj4gQEAgLTIyMiw2ICsyNzcsMjkgQEAgc3RhdGlj IGludCBhZDc3ODBfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkNCj4gICAgICAgICAgICAg ICAgIGdvdG8gZXJyb3JfZGlzYWJsZV9yZWc7DQo+ICAgICAgICAgfQ0KPiANCj4gKyAgICAgICBp ZiAoc3QtPmNoaXBfaW5mby0+aXNfYWQ3Nzh4KSB7DQo+ICsgICAgICAgICAgICAgICBzdC0+Z2Fp bl9ncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoJnNwaS0+ZGV2LA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGksZ2FpbiIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR1BJT0RfT1VUX0hJR0gpOw0KPiArICAgICAgICAgICAgICAgaWYgKElTX0VSUihzdC0+Z2Fp bl9ncGlvKSkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJSKHN0LT5n YWluX2dwaW8pOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBkZXZfZXJyKCZzcGktPmRldiwg IkZhaWxlZCB0byByZXF1ZXN0IGdhaW4gR1BJTzoNCj4gJWRcbiIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBl cnJvcl9kaXNhYmxlX3JlZzsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gKw0KPiArICAgICAgICAg ICAgICAgc3QtPmZpbHRlcl9ncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoJnNwaS0+ZGV2 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFkaSxmaWx0ZXIiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR1BJT0RfT1VUX0hJR0gpDQo+IDsNCj4gKyAgICAgICAg ICAgICAgIGlmIChJU19FUlIoc3QtPmZpbHRlcl9ncGlvKSkgew0KPiArICAgICAgICAgICAgICAg ICAgICAgICByZXQgPSBQVFJfRVJSKHN0LT5maWx0ZXJfZ3Bpbyk7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGRldl9lcnIoJnNwaS0+ZGV2LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJGYWlsZWQgdG8gcmVxdWVzdCBmaWx0ZXIgR1BJTzogJWRcbiIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg Z290byBlcnJvcl9kaXNhYmxlX3JlZzsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gKyAgICAgICB9 DQo+ICsNCg0KVGhpcyBpcyBqdXN0IGEgcHJlZmVyZW5jZSBvZiBtaW5lIFtmZWVsIGZyZWUgdG8g aWdub3JlIGZvciB0aGlzIHBhdGNoXS4NCkJ1dCwgZm9yIHRoaXMgYmxvY2sgb2YgY29kZSwgSSB3 b3VsZCBoYXZlIGFkZGVkIGEgc2VwYXJhdGUgZnVuY3Rpb24gWw0KY2FsbGVkIHNvbWV0aGluZyBs aWtlIGFkNzc4MF9pbml0X2dwaW9zKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQphZDc3ODBf c3RhdGUgKnN0KSApDQoNCnlvdSBjb3VsZCBhbHNvIG1vdmUgdGhlIHBvd2VyZG93biBncGlvIHRo ZXJlOyBhbmQgZG8gc29tZXRoaW5nIGxpa2UNCg0Kc3RhdGljIGludCBhZDc3ODBfaW5pdF9ncGlv cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBhZDc3ODBfc3RhdGUgKnN0KQ0Kew0KDQogICAg ICBzdC0+cG93ZXJkb3duX2dwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcmRv d24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHUElPRF9PVVRfTE9XKTsNCiAgICAgICAgaWYgKElTX0VSUihzdC0+cG93ZXJkb3duX2dwaW8p KSB7DQogICAgICAgICAgICAgIHJldCA9IFBUUl9FUlIoc3QtPnBvd2VyZG93bl9ncGlvKTsNCiAg ICAgICAgICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBwb3dlcmRvd24gR1BJ TzogJWRcbiIsIHJldCk7DQogICAgICAgICAgICAgIHJldHVybiByZXQ7DQogICAgICAgIH0NCg0K ICAgICAgIC8qKg0KICAgICAgICAqIE5vdGUgQWxleDogSSdtIGEgYmlnIGZhbiBvZiBrZWVwaW5n IHRoaW5ncyB0byBhIG1pbmltYWwgDQogICAgICAgICogaW5kZW50YXRpb24gbGV2ZWwgW2VzcGVj aWFsbHkgd2hlcmUgdGhpbmdzIGNhbiBiZSBlbGVnYW50XSwgDQogICAgICAgICogYnV0IHRoYXQn cyBhIHByZWZlcmVuY2Ugb2YgbWluZQ0KICAgICAgICAqLw0KICAgICAgIGlmICghc3QtPmNoaXBf aW5mby0+aXNfYWQ3Nzh4KQ0KICAgICAgICAgICByZXR1cm4gMDsNCg0KDQogICAgICAgIHN0LT5n YWluX2dwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsDQogICAgICAgICAgICAgICAg ICAgICAgICAiYWRpLGdhaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgR1BJT0RfT1VUX0hJ R0gpOw0KICAgICAgICBpZiAoSVNfRVJSKHN0LT5nYWluX2dwaW8pKSB7DQogICAgICAgICAgICAg ICAgcmV0ID0gUFRSX0VSUihzdC0+Z2Fpbl9ncGlvKTsNCiAgICAgICAgICAgICAgICBkZXZfZXJy KGRldiwgIkZhaWxlZCB0byByZXF1ZXN0IGdhaW4gR1BJTzogJWRcbiIsIHJldCk7DQogICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCiAgICAgICAgfQ0KDQogICAgICAgIHN0LT5maWx0ZXJfZ3Bp byA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwNCiAgICAgICAgICAgICAgICAgICAgICAg ICJhZGksZmlsdGVyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIEdQSU9EX09VVF9ISUdIKTsN Cg0KICAgICAgICBpZiAoSVNfRVJSKHN0LT5maWx0ZXJfZ3BpbykpIHsNCiAgICAgICAgICAgICAg ICByZXQgPSBQVFJfRVJSKHN0LT5maWx0ZXJfZ3Bpbyk7DQogICAgICAgICAgICAgICAgZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBmaWx0ZXIgR1BJTzogJWRcbiIsIHJldCk7DQogICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiAwOw0K fQ0KDQoNCg0KPiAgICAgICAgIHJldCA9IGFkX3NkX3NldHVwX2J1ZmZlcl9hbmRfdHJpZ2dlcihp bmRpb19kZXYpOw0KPiAgICAgICAgIGlmIChyZXQpDQo+ICAgICAgICAgICAgICAgICBnb3RvIGVy cm9yX2Rpc2FibGVfcmVnOw0KPiAtLQ0KPiAyLjIxLjANCj4gDQo=