From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 07/12] drm/i915: Add and initialize lspcon connector Date: Mon, 25 Apr 2016 21:34:35 +0000 Message-ID: <1461620074.2487.22.camel@intel.com> References: <1459771308-4405-1-git-send-email-shashank.sharma@intel.com> <1459771308-4405-7-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 3C1EA6E61A for ; Mon, 25 Apr 2016 21:34:37 +0000 (UTC) In-Reply-To: <1459771308-4405-7-git-send-email-shashank.sharma@intel.com> Content-Language: en-US Content-ID: <0272A98F4DB386479A1D3115812EEF18@intel.com> 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" , "intel-gfx@lists.freedesktop.org" , "Jindal, Sonika" , "Vetter, Daniel" , "Thulasimani, Sivakumar" List-Id: intel-gfx@lists.freedesktop.org RW0gU2VnLCAyMDE2LTA0LTA0IMOgcyAxNzozMSArMDUzMCwgU2hhc2hhbmsgU2hhcm1hIGVzY3Jl dmV1Og0KPiBsc3Bjb24gaXMgYSBkZXZpY2Ugd2hpY2ggYWN0cyBhcyBEUCBpbiBzb21lIGNhc2Vz DQo+IGFuZCBhcyBIRE1JIGluIHNvbWUuIEhlcmUgaXMgaG93Og0KPiAtIGxzcGNvbiBuZWVkcyBE UChhdXgpIGZvciBhbGwgdGhlIGkyY19vdmVfYXV4IHJlYWQvd3JpdGUNCj4gwqAgdHJhbnNpdGlv bnMgc28gaXQgbmVlZHMgdG8gaGF2ZSBzb21lIERQIGxldmVsIGluaXRpYWxpemF0aW9ucw0KPiAt IGxzcGNvbiBpcyBkZXRlY3RlZCBieSB1c2Vyc3BhY2Uvc2luayBhcyBIRE1JIGRldmljZSwgc28N Cj4gwqAgaXQgbmVlZHMgdG8gYmUgZGV0ZWN0ZCBhcyBIRE1JIGRldmljZS4NCj4gDQo+IFRoaXMg cGF0Y2ggYWRkcyBhIGN1c3RvbSBjb25uZWN0b3IgZm9yIGxzcGNvbiBkZXZpY2UsIHdoaWNoDQo+ IGNhbiBwaWNrIGFuZCBjaG9zZSB3aGF0IGl0IHdhbnRzIGZyb20gZXhpc3RpbmcgZnVuY3Rpb25h bGl0eS4NCj4gDQo+IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGZ1bmN0aW9ucyB0byBpbml0aWFsaXpl IGRwIGFuZCBoZG1pIGNvbm5lY3RvcnMNCj4gYW5kIHN0cnVjdHVyZXMgdG8gdGhlIG1pbmltdW0g cmVxdWlyZWQgbGV2ZWxzLCBhbmQgdGhlbiBwbGF5IGFyb3VuZC4NCg0KSGkNCg0KSSByZWFsaXpl ZCBJIG9ubHkgc2FpZCB0aGlzIGluIHByaXZhdGUgZGlzY3Vzc2lvbnMsIGJ1dCBuZXZlciBpbiB0 aGUNCm1haWxpbmcgbGlzdCwgc28gbGV0J3MgYnJpbmcgaXQgdG8gdGhlIGxpc3Qgc28gbW9yZSBw ZW9wbGUgY2FuIGpvaW46DQoNCk15IHByb2JsZW0gd2l0aCB0aGlzIGFwcHJvYWNoIG9mIGFkZGlu ZyBhIG5ldyBjb25uZWN0b3IgaXMgdGhlIGFtb3VudA0Kb2YgZHVwbGljYXRlZCBjb2RlIGl0IGJy aW5ncy4gQ29uc2lkZXJpbmcgb3VyIGNvbnN0YW50IG5ldmVyLWVuZGluZw0KY29kZSBjaHVybiwg YWRkZWQgd2l0aCB0aGUgY3VycmVudCBwbGFucyB0byByZXdvcmsgbWFqb3IgcGllY2VzIG9mIHRo ZQ0KRFAgY29kZSwgSSB3b3VsZCBlc3RpbWF0ZSB0aGF0IHRoaXMgbHNwY29uIGNvbm5lY3RvciBj b2RlIHdvdWxkIHZlcnkNCnF1aWNrbHkgZ2V0IG91dC1vZi1zeW5jIGFuZCwgYXMgYSBjb25zZXF1 ZW5jZSwgYnJva2VuLCBkdWUgdG8gdGhlIGZhY3QNCnRoYXQgaXQncyB2ZXJ5IGxpa2VseSB0aGF0 IHNvbWVvbmUgd291bGQgZm9yZ2V0IHRvIHBhdGNoIHRoZSBsc3Bjb24NCmNvbm5lY3RvciBkdXJp bmcgcmV3b3JrcyBvZiBEUC9IRE1JIGNvbm5lY3RvcnMuIFNvIG15IGN1cnJlbnQNCnN1Z2dlc3Rp b24gd291bGQgYmUgdG8ganVzdCBhZGQgdGhlIG5lY2Vzc2FyeSBMU1BDT04gYml0cyB0byB0aGUg SERNSQ0KYW5kIERQIGRldGVjdGlvbiBmdW5jdGlvbnMgaW5zdGVhZCBvZiBhZGRpbmcgYSB3aG9s ZSBuZXcgY29ubmVjdG9yLg0KTWF5YmUgd2UgY291bGQgZXZlbiBtZXJnZS9pbnRlZ3JhdGUgdGhl IERQIGFuZCBIRE1JIGNvbm5lY3RvciBmdW5jdGlvbnMNCnNpbmNlIGluIHRoZSBlbmQgYm90aCBm dW5jdGlvbnMgYXJlIHByb2JpbmcgdGhlIHNhbWUgcG9ydCwgYW5kIGlmIG9uZQ0KY29ubmVjdG9y IGlzIGZvdW5kLCB0aGUgb3RoZXIgY29ubmVjdG9yIGlzIGNlcnRhaW5seSBub3QgcHJlc2VudC4N Cg0KSSBjYW4gYWxzbyBwcm92aWRlIGFyZSBtb3JlIHRlY2huaWNhbCBsb3dlci1sZXZlbCByZXZp ZXcgb2YgdGhlIGNvZGUNCml0c2VsZiwgYnV0IEkgdGhpbmsgd2Ugc2hvdWxkIGZvY3VzIHRoZSBk aXNjdXNzaW9uIGluIHRoZSBoaWdoIGxldmVsDQpkZXNpZ24gZm9yIG5vdy4NCg0KVGhhbmtzLA0K UGF1bG8NCg0KPiANCj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5z aGFybWFAaW50ZWwuY29tPg0KPiAtLS0NCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jwqDCoMKgwqDCoHwgMzEgKysrKysrKysrKysrKysrDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoHzCoMKgNCArKw0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuY8KgwqDCoHwgMTcgKysrKysrKysNCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9sc3Bjb24uYyB8IDc5DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCj4gwqA0IGZpbGVzIGNoYW5nZWQsIDEzMSBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMNCj4gaW5kZXggYmE0ZGEwYy4uZjNkZjFjNiAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+IEBAIC01OTAwLDYgKzU5MDAsMzcgQEAgZmFpbDoNCj4g wqAJcmV0dXJuIGZhbHNlOw0KPiDCoH0NCj4gwqANCj4gK2ludCBpbnRlbF9kcF9pbml0X21pbmlt dW0oc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsDQo+ICsJc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQ0KPiArew0KPiArCWludCByZXQ7DQo+ ICsJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsNCj4gKwlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsNCj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7DQo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4gKw0KPiArCWlu dGVsX2RpZ19wb3J0LT5kcC5vdXRwdXRfcmVnID0gRERJX0JVRl9DVEwocG9ydCk7DQo+ICsJaWYg KFdBUk4oaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA8IDEsDQo+ICsJCcKgIk5vdCBlbm91Z2gg bGFuZXMgKCVkKSBmb3IgRFAgb24gcG9ydCAlY1xuIiwNCj4gKwkJwqBpbnRlbF9kaWdfcG9ydC0+ bWF4X2xhbmVzLCBwb3J0X25hbWUocG9ydCkpKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0K PiArCWludGVsX2RwLT5wcHNfcGlwZSA9IElOVkFMSURfUElQRTsNCj4gKwlpbnRlbF9kcC0+Z2V0 X2F1eF9jbG9ja19kaXZpZGVyID0gc2tsX2dldF9hdXhfY2xvY2tfZGl2aWRlcjsNCj4gKwlpbnRl bF9kcC0+Z2V0X2F1eF9zZW5kX2N0bCA9IHNrbF9nZXRfYXV4X3NlbmRfY3RsOw0KPiArCWludGVs X2RwLT5wcmVwYXJlX2xpbmtfcmV0cmFpbiA9DQo+IGludGVsX2RkaV9wcmVwYXJlX2xpbmtfcmV0 cmFpbjsNCj4gKwlpbnRlbF9kcC0+RFAgPSBJOTE1X1JFQUQoaW50ZWxfZHAtPm91dHB1dF9yZWcp Ow0KPiArCWludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3IgPSBpbnRlbF9jb25uZWN0b3I7DQo+ ICsJSU5JVF9ERUxBWUVEX1dPUksoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yaywNCj4gKwkJCcKg wqBlZHBfcGFuZWxfdmRkX3dvcmspOw0KPiArDQo+ICsJcmV0ID0gaW50ZWxfZHBfYXV4X2luaXQo aW50ZWxfZHAsIGludGVsX2Nvbm5lY3Rvcik7DQo+ICsJaWYgKHJldCkNCj4gKwkJRFJNX0VSUk9S KCJBdXggaW5pdCBmb3IgTFNQQ09OIGZhaWxlZFxuIik7DQo+ICsNCj4gKwlyZXR1cm4gcmV0Ow0K PiArfQ0KPiArDQo+IMKgdm9pZA0KPiDCoGludGVsX2RwX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwNCj4gwqAJwqDCoMKgwqDCoMKgaTkxNV9yZWdfdCBvdXRwdXRfcmVnLCBlbnVtIHBvcnQg cG9ydCkNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gaW5kZXggNmUzMDllYS4uZDM4 ZGI3ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gQEAgLTEzMzIsNiArMTMz Miw4IEBAIHZvaWQgaW50ZWxfZHBfY29tcHV0ZV9yYXRlKHN0cnVjdCBpbnRlbF9kcA0KPiAqaW50 ZWxfZHAsIGludCBwb3J0X2Nsb2NrLA0KPiDCoGJvb2wgaW50ZWxfZHBfc291cmNlX3N1cHBvcnRz X2hicjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7DQo+IMKgYm9vbA0KPiDCoGludGVsX2Rw X2dldF9saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90DQo+IGxp bmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdKTsNCj4gK2ludCBpbnRlbF9kcF9pbml0X21p bmltdW0oc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsDQo+ICsJCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7DQo+IMKgDQo+IMKgLyogaW50 ZWxfZHBfbXN0LmMgKi8NCj4gwqBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0DQo+ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5faWQpOw0KPiBA QCAtMTM5Nyw2ICsxMzk5LDggQEAgdm9pZCBpbnRlbF9mYmNfY2xlYW51cF9jZmIoc3RydWN0DQo+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsNCj4gwqB2b2lkIGludGVsX2hkbWlfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpOTE1X3JlZ190IGhkbWlfcmVnLA0KPiBlbnVtIHBvcnQg cG9ydCk7DQo+IMKgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQNCj4gKmludGVsX2RpZ19wb3J0LA0KPiDCoAkJCcKgwqDCoMKgwqDCoMKgc3Ry dWN0IGludGVsX2Nvbm5lY3Rvcg0KPiAqaW50ZWxfY29ubmVjdG9yKTsNCj4gK2ludCBpbnRlbF9o ZG1pX2luaXRfbWluaW11bShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0DQo+ICppbnRlbF9kaWdf cG9ydCwNCj4gKwkJCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+ICppbnRlbF9jb25uZWN0b3Ip Ow0KPiDCoHN0cnVjdCBpbnRlbF9oZG1pICplbmNfdG9faW50ZWxfaGRtaShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpOw0KPiDCoGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gwqAJCQnCoMKgwqDCoMKgwqDCoHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlDQo+ICpwaXBlX2NvbmZpZyk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMNCj4gaW5kZXggMjJiNWE3ZS4uOTJmNTA5NCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYw0KPiBAQCAtMjEyOCw2ICsyMTI4LDIzIEBAIGludGVsX2hkbWlfYWRkX3By b3BlcnRpZXMoc3RydWN0IGludGVsX2hkbWkNCj4gKmludGVsX2hkbWksIHN0cnVjdCBkcm1fY29u bmVjdG9yICpjDQo+IMKgCWludGVsX2hkbWktPmFzcGVjdF9yYXRpbyA9IEhETUlfUElDVFVSRV9B U1BFQ1RfTk9ORTsNCj4gwqB9DQo+IMKgDQo+ICtpbnQgaW50ZWxfaGRtaV9pbml0X21pbmltdW0o c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydA0KPiAqaW50ZWxfZGlnX3BvcnQsDQo+ICsJCQnCoMKg wqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9jb25uZWN0b3INCj4gKmludGVsX2Nvbm5lY3RvcikNCj4g K3sNCj4gKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZpbnRlbF9kaWdfcG9ydC0+ aGRtaTsNCj4gKw0KPiArCWlmIChXQVJOKGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPCA0LA0K PiArCQkiTm90IGVub3VnaCBsYW5lcyAoJWQpIGZvciBIRE1JIG9uIHBvcnQgJWNcbiIsDQo+ICsJ CWludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMsIHBvcnRfbmFtZShpbnRlbF9kaWdfcG9ydC0NCj4g PnBvcnQpKSkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwlpbnRlbF9oZG1pLT53cml0 ZV9pbmZvZnJhbWUgPSBoc3dfd3JpdGVfaW5mb2ZyYW1lOw0KPiArCWludGVsX2hkbWktPnNldF9p bmZvZnJhbWVzID0gaHN3X3NldF9pbmZvZnJhbWVzOw0KPiArCWludGVsX2hkbWktPmluZm9mcmFt ZV9lbmFibGVkID0gaHN3X2luZm9mcmFtZV9lbmFibGVkOw0KPiArCWludGVsX2hkbWktPmF0dGFj aGVkX2Nvbm5lY3RvciA9IGludGVsX2Nvbm5lY3RvcjsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4g Kw0KPiDCoHZvaWQgaW50ZWxfaGRtaV9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0DQo+ICppbnRlbF9kaWdfcG9ydCwNCj4gwqAJCQnCoMKgwqDCoMKgwqDCoHN0cnVjdCBp bnRlbF9jb25uZWN0b3INCj4gKmludGVsX2Nvbm5lY3RvcikNCj4gwqB7DQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYw0KPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xzcGNvbi5jDQo+IGluZGV4IDVhMTk5M2IuLmUxNzk3NTggMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jDQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jDQo+IEBAIC01NCwzICs1NCw4MiBAQCBzdHJ1 Y3QgaW50ZWxfbHNwY29uICplbmNfdG9fbHNwY29uKHN0cnVjdA0KPiBkcm1fZW5jb2RlciAqZW5j b2RlcikNCj4gwqAJCWNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0LA0KPiBiYXNlLmJhc2UpOw0KPiDCoAlyZXR1cm4gJmludGVsX2RpZ19wb3J0LT5sc3Bjb247 DQo+IMKgfQ0KPiArDQo+ICtpbnQgaW50ZWxfbHNwY29uX2luaXRfY29ubmVjdG9yKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQNCj4gKmludGVsX2RpZ19wb3J0KQ0KPiArew0KPiArCWludCByZXQ7 DQo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3Bv cnQtPmJhc2U7DQo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2VuY29kZXItPmJh c2UuZGV2Ow0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7DQo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOw0K PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7DQo+ICsJZW51bSBwb3J0IHBvcnQg PSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsNCj4gKw0KPiArCWludGVsX2Nvbm5lY3RvciA9IGludGVs X2Nvbm5lY3Rvcl9hbGxvYygpOw0KPiArCWlmICghaW50ZWxfY29ubmVjdG9yKQ0KPiArCQlyZXR1 cm4gLUVOT01FTTsNCj4gKw0KPiArCWNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7 DQo+ICsJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IHRydWU7DQo+ICsJY29ubmVjdG9y LT5kb3VibGVzY2FuX2FsbG93ZWQgPSAwOw0KPiArDQo+ICsJLyogaW5pdCBEUCAqLw0KPiArCXJl dCA9IGludGVsX2RwX2luaXRfbWluaW11bShpbnRlbF9kaWdfcG9ydCwNCj4gaW50ZWxfY29ubmVj dG9yKTsNCj4gKwlpZiAocmV0KSB7DQo+ICsJCURSTV9FUlJPUigiRFAgaW5pdCBmb3IgTFNQQ09O IGZhaWxlZFxuIik7DQo+ICsJCXJldHVybiByZXQ7DQo+ICsJfQ0KPiArDQo+ICsJLyogaW5pdCBI RE1JICovDQo+ICsJcmV0ID0gaW50ZWxfaGRtaV9pbml0X21pbmltdW0oaW50ZWxfZGlnX3BvcnQs DQo+IGludGVsX2Nvbm5lY3Rvcik7DQo+ICsJaWYgKHJldCkgew0KPiArCQlEUk1fRVJST1IoIkhE TUkgaW5pdCBmb3IgTFNQQ09OIGZhaWxlZFxuIik7DQo+ICsJCXJldHVybiByZXQ7DQo+ICsJfQ0K PiArDQo+ICsJLyogU2V0IHVwIHRoZSBob3RwbHVnIHBpbi4gKi8NCj4gKwlzd2l0Y2ggKHBvcnQp IHsNCj4gKwljYXNlIFBPUlRfQToNCj4gKwkJaW50ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9Q T1JUX0E7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgUE9SVF9COg0KPiArCQlpbnRlbF9lbmNvZGVy LT5ocGRfcGluID0gSFBEX1BPUlRfQjsNCj4gKwkJaWYgKElTX0JYVF9SRVZJRChkZXYsIDAsIEJY VF9SRVZJRF9BMSkpDQo+ICsJCQlpbnRlbF9lbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRfQTsN Cj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBQT1JUX0M6DQo+ICsJCWludGVsX2VuY29kZXItPmhwZF9w aW4gPSBIUERfUE9SVF9DOw0KPiArCQlicmVhazsNCj4gKwljYXNlIFBPUlRfRDoNCj4gKwkJaW50 ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JUX0Q7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2Ug UE9SVF9FOg0KPiArCQlpbnRlbF9lbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRfRTsNCj4gKwkJ YnJlYWs7DQo+ICsJZGVmYXVsdDoNCj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHBvcnQgdG8gY29u ZmlndXJlIExTUENPTlxuIik7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4gKw0KPiAr CS8qDQo+ICsJKiBPbiBCWFQgQTAvQTEsIHN3IG5lZWRzIHRvIGFjdGl2YXRlIERESUEgSFBEIGxv Z2ljIGFuZA0KPiArCSogaW50ZXJydXB0cyB0byBjaGVjayB0aGUgZXh0ZXJuYWwgcGFuZWwgY29u bmVjdGlvbi4NCj4gKwkqLw0KPiArCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURf QTEpICYmIHBvcnQgPT0gUE9SVF9CKQ0KPiArCQlkZXZfcHJpdi0+aG90cGx1Zy5pcnFfcG9ydFtQ T1JUX0FdID0gaW50ZWxfZGlnX3BvcnQ7DQo+ICsJZWxzZQ0KPiArCQlkZXZfcHJpdi0+aG90cGx1 Zy5pcnFfcG9ydFtwb3J0XSA9IGludGVsX2RpZ19wb3J0Ow0KPiArDQo+ICsJLyogRm9yIEc0WCBk ZXNrdG9wIGNoaXAsIFBFR19CQU5EX0dBUF9EQVRBIDM6MCBtdXN0IGZpcnN0IGJlDQo+IHdyaXR0 ZW4NCj4gKwkqIDB4ZC7CoMKgRmFpbHVyZSB0byBkbyBzbyB3aWxsIHJlc3VsdCBpbiBzcHVyaW91 cyBpbnRlcnJ1cHRzDQo+IGJlaW5nDQo+ICsJKiBnZW5lcmF0ZWQgb24gdGhlIHBvcnQgd2hlbiBh IGNhYmxlIGlzIG5vdCBhdHRhY2hlZC4NCj4gKwkqLw0KPiArCWlmIChJU19HNFgoZGV2KSAmJiAh SVNfR000NShkZXYpKSB7DQo+ICsJCXUzMiB0ZW1wID0gSTkxNV9SRUFEKFBFR19CQU5EX0dBUF9E QVRBKTsNCj4gKw0KPiArCQlJOTE1X1dSSVRFKFBFR19CQU5EX0dBUF9EQVRBLCAodGVtcCAmIH4w eGYpIHwgMHhkKTsNCj4gKwl9DQo+ICsNCj4gKwlEUk1fREVCVUdfRFJJVkVSKCJTdWNjZXNzOiBM U1BDT04gY29ubmVjdG9yIGluaXRcbiIpOw0KPiArCXJldHVybiAwOw0KPiArfQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK