From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 10/12] drm/i915: Add lspcon core functions Date: Wed, 4 May 2016 21:09:06 +0000 Message-ID: <1462396143.29701.9.camel@intel.com> References: <1459771308-4405-1-git-send-email-shashank.sharma@intel.com> <1459771308-4405-10-git-send-email-shashank.sharma@intel.com> <20160502135143.GX4329@intel.com> <5728C861.7080101@intel.com> <20160503160925.GH4329@intel.com> <5728CE73.6030902@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id D6A8F89E41 for ; Wed, 4 May 2016 21:09:11 +0000 (UTC) In-Reply-To: <5728CE73.6030902@intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" , "Sharma, Shashank" Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE2LTA1LTAzIMOgcyAyMTo0NCArMDUzMCwgU2hhcm1hLCBTaGFzaGFuayBlc2Ny ZXZldToNCj4gDQo+IE9uIDUvMy8yMDE2IDk6MzkgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToN Cj4gPiANCj4gPiBPbiBUdWUsIE1heSAwMywgMjAxNiBhdCAwOToxODo0OVBNICswNTMwLCBTaGFy bWEsIFNoYXNoYW5rIHdyb3RlOg0KPiA+ID4gDQo+ID4gPiBSZWdhcmRzDQo+ID4gPiBTaGFzaGFu aw0KPiA+ID4gDQo+ID4gPiBPbiA1LzIvMjAxNiA3OjIxIFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3Jv dGU6DQo+ID4gPiA+IA0KPiA+ID4gPiBPbiBNb24sIEFwciAwNCwgMjAxNiBhdCAwNTozMTo0NlBN ICswNTMwLCBTaGFzaGFuayBTaGFybWENCj4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gDQo+ID4g PiA+ID4gVGhpcyBwYXRjaCBhZGRzIGxzcGNvbidzIGludGVybmFsIGZ1bmN0aW9ucywgd2hpY2gg d29yaw0KPiA+ID4gPiA+IG9uIHRoZSBwcm9iZSBsYXllciwgYW5kIGluZGljYXRlIHRoZSB3b3Jr aW5nIHN0YXR1cyBvZg0KPiA+ID4gPiA+IGxzcGNvbiwgd2hpY2ggYXJlIG1vc3RseToNCj4gPiA+ ID4gPiANCj4gPiA+ID4gPiBwcm9iZTogQSBsc3Bjb24gZGV2aWNlIGlzIHByb2JlZCBvbmx5IG9u Y2UsIGR1cmluZyBib290DQo+ID4gPiA+ID4gdGltZSwgYXMgaXRzIGFsd2F5cyBwcmVzZW50IHdp dGggdGhlIGRldmljZSwgbmV4dCB0byBwb3J0Lg0KPiA+ID4gPiA+IFNvIHRoZSBpMmNfb3Zlcl9h dXggY2hhbm5lbCBpcyBhbHd5YXMgcmVhZC93cml0ZWFibGUgaWYgREMgaXMNCj4gPiA+ID4gPiBw b3dlcmVkIG9uLiBJZiBWQlQgc2F5cyB0aGF0IHRoaXMgcG9ydCBjb250YWlucyBsc3Bjb24sIHdl DQo+ID4gPiA+ID4gY2hlY2sgYW5kIHByb2JlIHRoZSBIVyB0byB2ZXJpZnkgYW5kIGluaXRpYWxp emUgaXQuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gZ2V0X21vZGU6IFRoaXMgZnVuY3Rpb24gaW5k aWNhdGVzIHRoZSBjdXJyZW50IG1vZGUgb2YNCj4gPiA+ID4gPiBvcGVyYXRpb24NCj4gPiA+ID4g PiBvZiBsc3Bjb24gKGxzIG9yIHBjb24gbW9kZSkNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBjaGFu Z2VfbW9kZTogVGhpcyBmdW5jdGlvbiBjYW4gY2hhbmdlIHRoZSBsc3Bjb24ncyBtb2RlIG9mDQo+ ID4gPiA+ID4gb3BlcmF0aW9uIHRvIGRlc2lyZWQgbW9kZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4g PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5j b20+DQo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogQWthc2hkZWVwIFNoYXJtYSA8QWthc2hkZWVw LnNoYXJtYUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gwqDCoMKgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCAxNDUNCj4gPiA+ID4gPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4gPiDCoMKgwqAxIGZpbGUgY2hhbmdl ZCwgMTQ1IGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMNCj4gPiA+ID4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jDQo+ID4gPiA+ID4gaW5kZXggYzNjMWNkMi4uNjE3 ZmUzZiAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s c3Bjb24uYw0KPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNv bi5jDQo+ID4gPiA+ID4gQEAgLTYxLDYgKzYxLDE0NCBAQCBzdGF0aWMgc3RydWN0IGludGVsX2xz cGNvbg0KPiA+ID4gPiA+IMKgwqDCoAlyZXR1cm4NCj4gPiA+ID4gPiBlbmNfdG9fbHNwY29uKCZp bnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3RvciktPmJhc2UpOw0KPiA+ID4gPiA+IMKgwqDC oH0NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiArZW51bSBsc3Bjb25fbW9kZSBsc3Bjb25fZ2V0X2N1 cnJlbnRfbW9kZShzdHJ1Y3QgaW50ZWxfbHNwY29uDQo+ID4gPiA+ID4gKmxzcGNvbikNCj4gPiA+ ID4gPiArew0KPiA+ID4gPiA+ICsJdTggZGF0YTsNCj4gPiA+ID4gPiArCWludCBlcnIgPSAwOw0K PiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPQ0KPiA+ID4g PiA+IGxzcGNvbl90b19kaWdfcG9ydChsc3Bjb24pOw0KPiA+ID4gPiA+ICsJc3RydWN0IGkyY19h ZGFwdGVyICphZGFwdGVyID0gJmRpZ19wb3J0LT5kcC5hdXguZGRjOw0KPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiArCS8qIFJlYWQgU3RhdHVzOiBpMmMgb3ZlciBhdXggKi8NCj4gPiA+ID4gPiArCWVy ciA9IGRybV9kcF9kdWFsX21vZGVfaW9hX3JlYWQoYWRhcHRlciwgJmRhdGEsDQo+ID4gPiA+ID4g KwkJTFNQQ09OX01PREVfQ0hFQ0tfT0ZGU0VULCBzaXplb2YoZGF0YSkpOw0KPiA+ID4gPiA+ICsJ aWYgKGVyciA8IDApIHsNCj4gPiA+ID4gPiArCQlEUk1fRVJST1IoIkxTUENPTiByZWFkIG1vZGUg aW9hICgweDgwLCAweDQxKQ0KPiA+ID4gPiA+IGZhaWxlZFxuIik7DQo+ID4gPiA+ID4gKwkJcmV0 dXJuIGxzcGNvbl9tb2RlX2ludmFsaWQ7DQo+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ICsJRFJNX0RFQlVHX0RSSVZFUigiTFNQQ09OIG1vZGUgKDB4ODAsIDB4NDEpID0gJXhc biIsDQo+ID4gPiA+ID4gKHVuc2lnbmVkIGludClkYXRhKTsNCj4gPiA+ID4gPiArCXJldHVybiBk YXRhICYgTFNQQ09OX01PREVfTUFTSyA/IGxzcGNvbl9tb2RlX3Bjb24gOg0KPiA+ID4gPiA+IGxz cGNvbl9tb2RlX2xzOw0KPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtpbnQg bHNwY29uX2NoYW5nZV9tb2RlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiwNCj4gPiA+ID4g PiArCWVudW0gbHNwY29uX21vZGUgbW9kZSwgYm9vbCBmb3JjZSkNCj4gPiA+ID4gPiArew0KPiA+ ID4gPiA+ICsJdTggZGF0YTsNCj4gPiA+ID4gPiArCWludCBlcnI7DQo+ID4gPiA+ID4gKwlpbnQg dGltZV9vdXQgPSAyMDA7DQo+ID4gPiA+ID4gKwllbnVtIGxzcGNvbl9tb2RlIGN1cnJlbnRfbW9k ZTsNCj4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0NCj4g PiA+ID4gPiBsc3Bjb25fdG9fZGlnX3BvcnQobHNwY29uKTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gKwljdXJyZW50X21vZGUgPSBsc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShsc3Bjb24pOw0KPiA+ ID4gPiA+ICsJaWYgKGN1cnJlbnRfbW9kZSA9PSBsc3Bjb25fbW9kZV9pbnZhbGlkKSB7DQo+ID4g PiA+ID4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgTFNQQ09ODQo+ID4gPiA+ ID4gbW9kZVxuIik7DQo+ID4gPiA+ID4gKwkJcmV0dXJuIC1FRkFVTFQ7DQo+ID4gPiA+ID4gKwl9 DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJaWYgKGN1cnJlbnRfbW9kZSA9PSBtb2RlICYmICFm b3JjZSkgew0KPiA+ID4gPiA+ICsJCURSTV9ERUJVR19EUklWRVIoIkN1cnJlbnQgbW9kZSA9IGRl c2lyZWQNCj4gPiA+ID4gPiBMU1BDT04gbW9kZVxuIik7DQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7 DQo+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJaWYgKG1vZGUgPT0gbHNw Y29uX21vZGVfbHMpDQo+ID4gPiA+ID4gKwkJZGF0YSA9IH5MU1BDT05fTU9ERV9NQVNLOw0KPiA+ ID4gPiA+ICsJZWxzZQ0KPiA+ID4gPiA+ICsJCWRhdGEgPSBMU1BDT05fTU9ERV9NQVNLOw0KPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiArCS8qIENoYW5nZSBtb2RlICovDQo+ID4gPiA+ID4gKwllcnIg PSBkcm1fZHBfZHVhbF9tb2RlX2lvYV93cml0ZSgmZGlnX3BvcnQtDQo+ID4gPiA+ID4gPmRwLmF1 eC5kZGMsICZkYXRhLA0KPiA+ID4gPiA+ICsJCQlMU1BDT05fTU9ERV9DSEFOR0VfT0ZGU0VULA0K PiA+ID4gPiA+IHNpemVvZihkYXRhKSk7DQo+ID4gPiA+ID4gKwlpZiAoZXJyIDwgMCkgew0KPiA+ ID4gPiA+ICsJCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIGZhaWxlZFxuIik7DQo+ID4g PiA+ID4gKwkJcmV0dXJuIGVycjsNCj4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gKwkvKg0KPiA+ID4gPiA+ICsJKiBDb25maXJtIG1vZGUgY2hhbmdlIGJ5IHJlYWRpbmcgdGhl IHN0YXR1cyBiaXQuDQo+ID4gPiA+ID4gKwkqIFNvbWV0aW1lcywgaXQgdGFrZXMgYSB3aGlsZSB0 byBjaGFuZ2UgdGhlIG1vZGUsDQo+ID4gPiA+ID4gKwkqIHNvIHdhaXQgYW5kIHJldHJ5IHVudGls IHRpbWUgb3V0IG9yIGRvbmUuDQo+ID4gPiA+ID4gKwkqLw0KPiA+ID4gPiA+ICsJd2hpbGUgKHRp bWVfb3V0KSB7DQo+ID4gPiA+ID4gKwkJY3VycmVudF9tb2RlID0NCj4gPiA+ID4gPiBsc3Bjb25f Z2V0X2N1cnJlbnRfbW9kZShsc3Bjb24pOw0KPiA+ID4gPiA+ICsJCWlmIChjdXJyZW50X21vZGUg IT0gbW9kZSkgew0KPiA+ID4gPiA+ICsJCQltZGVsYXkoMTApOw0KPiA+ID4gPiA+ICsJCQl0aW1l X291dCAtPSAxMDsNCj4gPiA+ID4gPiArCQl9IGVsc2Ugew0KPiA+ID4gPiA+ICsJCQlsc3Bjb24t Pm1vZGVfb2Zfb3AgPSBtb2RlOw0KPiA+ID4gPiA+ICsJCQlEUk1fREVCVUdfRFJJVkVSKCJMU1BD T04gbW9kZQ0KPiA+ID4gPiA+IGNoYW5nZWQgdG8gJXNcbiIsDQo+ID4gPiA+ID4gKwkJCQltb2Rl ID09IGxzcGNvbl9tb2RlX2xzID8NCj4gPiA+ID4gPiAiTFMiIDogIlBDT04iKTsNCj4gPiA+ID4g PiArCQkJcmV0dXJuIDA7DQo+ID4gPiA+ID4gKwkJfQ0KPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiArCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIHRpbWVkIG91dFxu Iik7DQo+ID4gPiA+ID4gKwlyZXR1cm4gLUVGQVVMVDsNCj4gPiA+ID4gPiArfQ0KPiA+ID4gPiBJ IHRoaW5rIHdlIHByb2JhYmx5IHdhbnQgdG8gcHV0IG1vc3Qgb2YgdGhpcyBzdHVmZiBpbnRvIHRo ZQ0KPiA+ID4gPiBoZWxwZXIuIFdlDQo+ID4gPiA+IGFscmVhZHkgaGF2ZSB0aGUgTFNQQ09OIGlk ZW50aWZpY2F0aW9uIHRoZXJlLCBzbyBoYXZpbmcgYSBmZXcNCj4gPiA+ID4gaGVscGVycw0KPiA+ ID4gPiB0byBzZXQvZ2V0IHRoZSBscyB2cy4gcGNvbm4gbW9kZSB3b3VsZCBzZWVtIGFwcHJvcHJp YXRlLg0KPiA+ID4gPiANCj4gPiA+IEFjdHVhbGx5IGhhbmRsaW5nIG9mIExTL1BDT04gbW9kZXMg YXJlIHNwZWNpZmljIHRvIE1DQSBjaGlwcywgYW5kDQo+ID4gPiBzb21lDQo+ID4gPiBvZiB0aGUg bW9kZSBjaGFuZ2UgbWVjaGFuaXNtIGFuZCBmZXcgb3RoZXIgY29udHJvbCBzdHVmZiBtYXkgbm90 DQo+ID4gPiBiZSBzYW1lDQo+ID4gPiBvbiBwYXJhZGUgb3Igc29tZSBvdGhlciB2ZW5kb3IncyBj aGlwLCBzbyBJIGFtIG5vdCBzdXJlIGlmIHdlDQo+ID4gPiBzaG91bGQNCj4gPiA+IGNyZWF0ZSBh IGhlbHBlciBmb3Igc29tZXRoaW5nIHdoaWNoIGlzIHNwZWNpZmljIHRvIHRoaXMgY2hpcC4gWW91 DQo+ID4gPiBzdWdnZXN0IHNvID8NCj4gPiBXZWxsLCBpZiB3ZSBhbHJlYWR5IHB1dCB0aGUgZGV0 ZWN0aW9uIGludG8gdGhlIGhlbHBlciB3ZSBhbHJlYWR5DQo+ID4gaGF2ZQ0KPiA+IHNvbWUgdmVu ZG9yIHNwZWNpZmljIHN0dWZmIHRoZXJlLCBubz8gT3Igd291bGQgdGhlIG90aGVyIHZlbmRvcidz DQo+ID4gY2hpcHMNCj4gPiBiZSBpZGVudGlmaWFibGUgaW4gdGhlIHNhbWUgd2F5Pw0KPiA+IA0K PiA+IEFueXdheXMsIEkgcHJlc3VtZSBzb21lb25lIGVsc2UgdGhhbiBJbnRlbCBtaWdodCB3YW50 IHRvIHVzZSB0aGVzZQ0KPiA+IHNhbWUNCj4gPiBjaGlwcyBpbiB0aGVpciBwcm9kdWN0cywgc28g aGF2aW5nIHRoZSBzdXBwb3J0IGluIGEgY2VudHJhbCBwbGFjZQ0KPiA+IHdvdWxkDQo+ID4gc2Vl bSBsaWtlIGEgZ29vZCBpZGVhLiBJZiB3ZSBzdGFydCB0byBzZWUgaW5jb21wYXRibGUgTFNQQ09O IGNoaXBzDQo+ID4gZnJvbQ0KPiA+IG11bHRpcGxlIHZlbmRvcnMgd2UnbGwgbmVlZCB0byByZXRo aW5rIGhvdyB3ZSBzdXBwb3J0IHRoZW0gYWxsLCBidXQNCj4gPiB1bnRpbCB3ZSBrbm93IGhvdyBl eGFjdGx5IHRoZXkgZGlmZmVyIGl0J3MgcmF0aGVyIGltcG9zc2libGUgdG8NCj4gPiBkZXNpZ24N Cj4gPiB0aGUgaGVscGVyIHRvIGRlYWwgd2l0aCB0aGVtLiBTbyBhcyBhIGZpcnN0IHN0ZXAgSSdk IHN0dWZmIGl0IGFsbA0KPiA+IGludG8NCj4gPiB0aGUgaGVscGVyLg0KPiA+IA0KPiBZZXMsIG1h a2VzIG1vcmUgc2Vuc2UgdGhpcyB3YXkuIEkgd2lsbCB0cnkgdG8gZ28gdGhyb3VnaCBwYXJhZGUN Cj4gc3BlY3PCoA0KPiBvbmNlLCBhbmQgc2VlIGlmIEkgY2FuIGZpbmQgc29tZXRoaW5nIHdoaWNo IG5lZWRzIGltbWVkaWF0ZQ0KPiBkaXNjdXNzaW9uwqANCj4gaGVyZS4gRWxzZSwgSSB3aWxsIG1v dmUgdGhpcyBpbnRvIHRoZSBjZW50cmFsIGxheWVyLg0KDQpUaGUgYmlnIHByb2JsZW0gd2l0aCBM U1BDT04gaXMgdGhhdCBpdCB1c2VzIGJpdHMgdGhhdCBhcmUgcmVzZXJ2ZWQgYnkNCnRoZSBWRVNB IHNwZWNzLCBzdWNoIGFzIGJpdCAzIG9mIEkyQyBhZGRyZXNzIDgwaCBvZmZzZXQgMTBoLiBOb3Ro aW5nDQpwcmV2ZW50cyBWRVNBIGZyb20gZGVmaW5pbmcgYW4gYWN0dWFsIG1lYW5pbmcgdG8gdGhh dCBiaXQgdGhhdCB3aWxsIGJlDQppbmNvbXBhdGlibGUgd2l0aCBMU1BDT04uDQoNCj4gPiANCj4g PiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK2Jvb2wg bHNwY29uX2RldGVjdF9pZGVudGlmaWVyKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikNCj4g PiA+ID4gPiArew0KPiA+ID4gPiA+ICsJZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgYWRhcHRv cl90eXBlOw0KPiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQg PQ0KPiA+ID4gPiA+IGxzcGNvbl90b19kaWdfcG9ydChsc3Bjb24pOw0KPiA+ID4gPiA+ICsJc3Ry dWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gJmRpZ19wb3J0LT5kcC5hdXguZGRjOw0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiArCS8qIExldHMgcHJvYmUgdGhlIGFkYXB0b3IgYW5kIGNoZWNrIGl0 cyB0eXBlICovDQo+ID4gPiA+ID4gKwlhZGFwdG9yX3R5cGUgPSBkcm1fZHBfZHVhbF9tb2RlX2Rl dGVjdChhZGFwdGVyKTsNCj4gPiA+ID4gPiArCWlmIChhZGFwdG9yX3R5cGUgIT0gRFJNX0RQX0RV QUxfTU9ERV9UWVBFMl9MU1BDT04pIHsNCj4gPiA+ID4gPiArCQlEUk1fREVCVUdfRFJJVkVSKCJO byBMU1BDT04gZGV0ZWN0ZWQsIGZvdW5kDQo+ID4gPiA+ID4gJXNcbiIsDQo+ID4gPiA+ID4gKwkJ CWRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZShhZGFwdA0KPiA+ID4gPiA+IG9yX3R5cGUp KTsNCj4gPiA+ID4gPiArCQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ICsJLyogWWF5IC4uLiBnb3QgYSBMU1BDT04gZGV2aWNlICovDQo+ID4gPiA+ ID4gKwlEUk1fREVCVUdfRFJJVkVSKCJMU1BDT04gZGV0ZWN0ZWRcbiIpOw0KPiA+ID4gPiA+ICsJ cmV0dXJuIHRydWU7DQo+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK2VudW0g bHNwY29uX21vZGUgbHNwY29uX3Byb2JlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikNCj4g PiA+ID4gPiArew0KPiA+ID4gPiA+ICsJZW51bSBsc3Bjb25fbW9kZSBjdXJyZW50X21vZGU7DQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJLyogRGV0ZWN0IGEgdmFsaWQgbHNwY29uICovDQo+ID4g PiA+ID4gKwlpZiAoIWxzcGNvbl9kZXRlY3RfaWRlbnRpZmllcihsc3Bjb24pKSB7DQo+ID4gPiA+ ID4gKwkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIGZpbmQgTFNQQ09ODQo+ID4gPiA+ID4g aWRlbnRpZmllclxuIik7DQo+ID4gPiA+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ID4gPiA+ICsJ fQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArCS8qIExTUENPTidzIG1vZGUgb2Ygb3BlcmF0aW9u ICovDQo+ID4gPiA+ID4gKwljdXJyZW50X21vZGUgPSBsc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShs c3Bjb24pOw0KPiA+ID4gPiA+ICsJaWYgKGN1cnJlbnRfbW9kZSA9PSBsc3Bjb25fbW9kZV9pbnZh bGlkKSB7DQo+ID4gPiA+ID4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCBMU1BDT04gbW9k ZVxuIik7DQo+ID4gPiA+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ID4gPiA+ICsJfQ0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiArCS8qIEFsbCBpcyB3ZWxsICovDQo+ID4gPiA+ID4gKwlsc3Bjb24t Pm1vZGVfb2Zfb3AgPSBjdXJyZW50X21vZGU7DQo+ID4gPiA+ID4gKwlsc3Bjb24tPmFjdGl2ZSA9 IHRydWU7DQo+ID4gPiA+ID4gKwlyZXR1cm4gY3VycmVudF9tb2RlOw0KPiA+ID4gPiA+ICt9DQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtib29sIGxzcGNvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgaW50 ZWxfbHNwY29uICpsc3Bjb24pDQo+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4g KwkvKiBMZXRzIGNoZWNrIExTUENPTiBub3csIHByb2JlIHRoZSBIVyBzdGF0dXMgKi8NCj4gPiA+ ID4gPiArCWxzcGNvbi0+YWN0aXZlID0gZmFsc2U7DQo+ID4gPiA+ID4gKwlsc3Bjb24tPm1vZGVf b2Zfb3AgPSBsc3Bjb25fbW9kZV9pbnZhbGlkOw0KPiA+ID4gPiA+ICsJaWYgKCFsc3Bjb25fcHJv YmUobHNwY29uKSkgew0KPiA+ID4gPiA+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIHByb2JlIGxz cGNvbiIpOw0KPiA+ID4gPiA+ICsJCXJldHVybiBmYWxzZTsNCj4gPiA+ID4gPiArCX0NCj4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gKwkvKiBXZSB3aXNoIHRvIGtlZXAgTFNQQ09OIGluIExTIG1vZGUg Ki8NCj4gPiA+ID4gPiArCWlmIChsc3Bjb24tPmFjdGl2ZSAmJiBsc3Bjb24tPm1vZGVfb2Zfb3Ag IT0NCj4gPiA+ID4gPiBsc3Bjb25fbW9kZV9scykgew0KPiA+ID4gPiA+ICsJCWlmIChsc3Bjb25f Y2hhbmdlX21vZGUobHNwY29uLA0KPiA+ID4gPiA+IGxzcGNvbl9tb2RlX2xzLCB0cnVlKSA8IDAp IHsNCj4gPiA+ID4gPiArCQkJRFJNX0VSUk9SKCJMU1BDT04gbW9kZSBjaGFuZ2UgdG8gTFMNCj4g PiA+ID4gPiBmYWlsZWRcbiIpOw0KPiA+ID4gPiA+ICsJCQlyZXR1cm4gZmFsc2U7DQo+ID4gPiA+ ID4gKwkJfQ0KPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ICsJRFJNX0RFQlVHX0RSSVZFUigiTFNQ Q09OIGluaXQgc3VjY2Vzc1xuIik7DQo+ID4gPiA+ID4gKwlyZXR1cm4gdHJ1ZTsNCj4gPiA+ID4g PiArfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiDCoMKgwqBzdHJ1Y3QgZWRpZCAqbHNwY29uX2dl dF9lZGlkKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiwNCj4gPiA+ID4gPiBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcg0KPiA+ID4gPiA+IMKgwqDCoAkJCQkJCSpjb25uZWN0b3INCj4gPiA+ID4gPiAp DQo+ID4gPiA+ID4gwqDCoMKgew0KPiA+ID4gPiA+IEBAIC0yMzMsNiArMzcxLDcgQEAgaW50IGlu dGVsX2xzcGNvbl9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QNCj4gPiA+ID4gPiBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0KQ0KPiA+ID4gPiA+IMKgwqDCoAlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciA9DQo+ID4gPiA+ID4gJmludGVsX2RpZ19wb3J0LT5iYXNlOw0K PiA+ID4gPiA+IMKgwqDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZW5jb2Rlci0+ YmFzZS5kZXY7DQo+ID4gPiA+ID4gwqDCoMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0NCj4gPiA+ID4gPiA+ZGV2X3ByaXZhdGU7DQo+ID4gPiA+ID4gKwlzdHJ1Y3Qg aW50ZWxfbHNwY29uICpsc3Bjb24gPSAmaW50ZWxfZGlnX3BvcnQtDQo+ID4gPiA+ID4gPmxzcGNv bjsNCj4gPiA+ID4gPiDCoMKgwqAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVj dG9yOw0KPiA+ID4gPiA+IMKgwqDCoAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOw0K PiA+ID4gPiA+IMKgwqDCoAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Ow0K PiA+ID4gPiA+IEBAIC0zMTQsNiArNDUzLDEyIEBAIGludCBpbnRlbF9sc3Bjb25faW5pdF9jb25u ZWN0b3Ioc3RydWN0DQo+ID4gPiA+ID4gaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCkNCj4gPiA+ID4gPiDCoMKgwqAJCUk5MTVfV1JJVEUoUEVHX0JBTkRfR0FQX0RBVEEsICh0ZW1w ICYNCj4gPiA+ID4gPiB+MHhmKSB8IDB4ZCk7DQo+ID4gPiA+ID4gwqDCoMKgCX0NCj4gPiA+ID4g PiANCj4gPiA+ID4gPiArCS8qIE5vdyBpbml0aWFsaXplIHRoZSBMU1BDT04gZGV2aWNlICovDQo+ ID4gPiA+ID4gKwlpZiAoIWxzcGNvbl9kZXZpY2VfaW5pdChsc3Bjb24pKSB7DQo+ID4gPiA+ID4g KwkJRFJNX0VSUk9SKCJMU1BDT04gZGV2aWNlIGluaXQgZmFpbGVkXG4iKTsNCj4gPiA+ID4gPiAr CQlnb3RvIGZhaWw7DQo+ID4gPiA+ID4gKwl9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+IMKgwqDC oAlEUk1fREVCVUdfRFJJVkVSKCJTdWNjZXNzOiBMU1BDT04gY29ubmVjdG9yDQo+ID4gPiA+ID4g aW5pdFxuIik7DQo+ID4gPiA+ID4gwqDCoMKgCXJldHVybiAwOw0KPiA+ID4gPiA+IA0KPiA+ID4g PiA+IC0tDQo+ID4gPiA+ID4gMS45LjEKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==