From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH v3 2/4] drm/i915: Add lspcon support for I915 driver Date: Thu, 11 Aug 2016 14:36:23 +0530 Message-ID: References: <1467723950-14093-1-git-send-email-shashank.sharma@intel.com> <1467723950-14093-3-git-send-email-shashank.sharma@intel.com> <20160811070316.GZ4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 794F26E1B7 for ; Thu, 11 Aug 2016 09:06:33 +0000 (UTC) In-Reply-To: <20160811070316.GZ4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com, rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiA4LzExLzIwMTYgMTI6MzMgUE0sIFZpbGxlIFN5cmrDpGzD pCB3cm90ZToKPiBPbiBUdWUsIEp1bCAwNSwgMjAxNiBhdCAwNjozNTo0OFBNICswNTMwLCBTaGFz aGFuayBTaGFybWEgd3JvdGU6Cj4+IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmaWxlLCB0byBhY2Nv bW1vZGF0ZSBsc3Bjb24gc3VwcG9ydAo+PiBmb3IgSTkxNSBkcml2ZXIuIFRoZXNlIGZ1bmN0aW9u cyBwcm9iZSwgZGV0ZWN0LCBpbml0aWFsaXplCj4+IGFuZCBjb25maWd1cmUgYW4gb24tYm9hcmQg bHNwY29uIGRldmljZSBkdXJpbmcgdGhlIGRyaXZlcgo+PiBpbml0IHRpbWUuCj4+Cj4+IEFsc28s IHRoaXMgcGF0Y2ggYWRkcyBhIHNtYWxsIHN0cnVjdHVyZSBmb3IgbHNwY29uIGRldmljZSwKPj4g d2hpY2ggd2lsbCBwcm92aWRlIHRoZSBydW50aW1lIHN0YXR1cyBvZiB0aGUgZGV2aWNlLgo+Pgo+ PiBWMjogYWRkcmVzc2VkIHZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzCj4+IC0gQ2xlYW4gdGhlIGxl ZnRvdmVyIG1hY3JvcyBmcm9tIHByZXZpb3VzIHBhdGNoIHNldAo+Pgo+PiBWMzogUmViYXNlCj4+ Cj4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVs LmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogQWthc2hkZWVwIFNoYXJtYSA8YWthc2hkZWVwLnNoYXJt YUBpbnRlbC5jb20+Cj4+IFJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAg IHwgICAxICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAxMyAr KystCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCAxNDUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNTgg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ PiBpbmRleCA2MTgyOTNjLi42NGNkMzczIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiBA QCAtOTUsNiArOTUsNyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKPj4gICAJICBpbnRlbF9k dm8ubyBcCj4+ICAgCSAgaW50ZWxfaGRtaS5vIFwKPj4gICAJICBpbnRlbF9pMmMubyBcCj4+ICsJ ICBpbnRlbF9sc3Bjb24ubyBcCj4+ICAgCSAgaW50ZWxfbHZkcy5vIFwKPj4gICAJICBpbnRlbF9w YW5lbC5vIFwKPj4gICAJICBpbnRlbF9zZHZvLm8gXAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+PiBpbmRleCBlNmEyNGQyLi5lNjk4MmNmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+PiBAQCAtOTIyLDEyICs5MjIsMTkgQEAgc3RydWN0IGludGVsX2RwIHsKPj4gICAJYm9v bCBjb21wbGlhbmNlX3Rlc3RfYWN0aXZlOwo+PiAgIH07Cj4+ICAgCj4+ICtzdHJ1Y3QgaW50ZWxf bHNwY29uIHsKPj4gKwlib29sIGFjdGl2ZTsKPj4gKwllbnVtIGRybV9sc3Bjb25fbW9kZSBtb2Rl X29mX29wOwo+IEknZCBjYWxsIHRoaXMganVzdCAnbW9kZScKSSBkb250IHdhbnQgcmVhZGVyIHRv IGdldCBjb25mdXNlZCB0aGlzIHdpdGggYSB2aWRlb21vZGUsIHNvIG1hZGUgaXQgCm1vcmUgY2xl YXIgOikKRG8geW91IHRoaW5rIHdlIGNhbiBrZWVwIGl0IHRoaXMgd2F5ID8KPj4gKwlzdHJ1Y3Qg ZHJtX2RwX2F1eCAqYXV4Owo+PiArfTsKPj4gKwo+PiAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgewo+PiAgIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciBiYXNlOwo+PiAgIAllbnVtIHBvcnQgcG9y dDsKPj4gICAJdTMyIHNhdmVkX3BvcnRfYml0czsKPj4gICAJc3RydWN0IGludGVsX2RwIGRwOwo+ PiAgIAlzdHJ1Y3QgaW50ZWxfaGRtaSBoZG1pOwo+PiArCXN0cnVjdCBpbnRlbF9sc3Bjb24gbHNw Y29uOwo+PiAgIAllbnVtIGlycXJldHVybiAoKmhwZF9wdWxzZSkoc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqLCBib29sKTsKPj4gICAJYm9vbCByZWxlYXNlX2NsMl9vdmVycmlkZTsKPj4gICAJ dWludDhfdCBtYXhfbGFuZXM7Cj4+IEBAIC0xNDc4LDcgKzE0ODUsNiBAQCBib29sIGludGVsX2hk bWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCQkJ ICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4+ICAgdm9pZCBp bnRlbF9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBpbnRlbF9oZG1pICpoZG1p LCBib29sIGVuYWJsZSk7Cj4+ICAgCj4+IC0KPj4gICAvKiBpbnRlbF9sdmRzLmMgKi8KPj4gICB2 b2lkIGludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4gICBzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZ2V0X2x2ZHNfZW5jb2RlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPj4gQEAgLTE3NzksNCArMTc4NSw5IEBAIGludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwo+PiAgIHZv aWQgaW50ZWxfY29sb3Jfc2V0X2NzYyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Owo+PiAgIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSk7Cj4+ICAgCj4+ICsvKiBpbnRlbF9sc3Bjb24uYyAqLwo+PiArYm9vbCBsc3Bj b25faW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7Cj4+ICtl bnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4+ICtsc3Bjb25fbHNfbW9kZV9kZXRlY3Qoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSk7Cj4+ICtib29sIGlzX2xzcGNv bl9hY3RpdmUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+PiAgICNlbmRp ZiAvKiBfX0lOVEVMX0RSVl9IX18gKi8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMK Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uZmRlZmY3MQo+PiAtLS0g L2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCj4+ IEBAIC0wLDAgKzEsMTQ1IEBACj4+ICsvKgo+PiArICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwg Q29ycG9yYXRpb24KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+PiArICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKPj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPj4gKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlCj4+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+PiArICoKPj4gKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlIG5leHQKPj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPj4gKyAqIFNvZnR3YXJlLgo+PiAr ICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4gKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAo+PiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPj4gKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCj4+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu Cj4+ICsgKgo+PiArICoKPj4gKyAqLwo+PiArI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+PiAr I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+PiArI2luY2x1ZGUgPGRybS9kcm1f ZHBfZHVhbF9tb2RlX2hlbHBlci5oPgo+PiArI2luY2x1ZGUgImludGVsX2Rydi5oIgo+PiArCj4+ ICtib29sIGlzX2xzcGNvbl9hY3RpdmUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQpCj4+ICt7Cj4+ICsJcmV0dXJuIGRpZ19wb3J0LT5sc3Bjb24uYWN0aXZlOwo+PiArfQo+IHVu dXNlZCAtPiBraWxsIGl0Cj4KPiBJbiBmYWN0IHRoZSB3aG9sZSBsc3Bjb24uYWN0aXZlIGZsYWdz IHNlZW1zIHByZXR0eSBwb2ludGxlc3MsIHNvIEknZAo+IGp1c3Qga2lsbCB0aGF0IHRvby4KUGxl YXNlIG5vdGUgdGhhdCwgSSB0cmllZCB0byBhZGRyZXNzIGJvdGggbW90aGVyYm9hcmQtZG93biBt b2RlIGFzIHdlbGwgCmFzIGFkYXB0ZXItbW9kZSBMU1BDT04KaW4gdGhpcyBkZXNpZ24uIEluIGNh c2Ugb2YgYWRhcHRlciBtb2RlIGxzcGNvbiwgd2Ugd2lsbCBuZWVkIHRoaXMuCj4KPj4gKwo+PiAr ZW51bSBkcm1fbHNwY29uX21vZGUgbHNwY29uX2dldF9jdXJyZW50X21vZGUoc3RydWN0IGludGVs X2xzcGNvbiAqbHNwY29uKQo+PiArewo+PiArCWVudW0gZHJtX2xzcGNvbl9tb2RlIGN1cnJlbnRf bW9kZSA9IERSTV9MU1BDT05fTU9ERV9JTlZBTElEOwo+PiArCXN0cnVjdCBpMmNfYWRhcHRlciAq YWRhcHRlciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwo+PiArCj4+ICsJaWYgKGRybV9sc3Bjb25fZ2V0 X21vZGUoYWRhcHRlciwgJmN1cnJlbnRfbW9kZSkpCj4+ICsJCURSTV9FUlJPUigiRXJyb3IgcmVh ZGluZyBMU1BDT04gbW9kZVxuIik7Cj4+ICsJZWxzZQo+PiArCQlEUk1fREVCVUdfS01TKCJDdXJy ZW50IExTUENPTiBtb2RlICVzXG4iLAo+PiArCQkJY3VycmVudF9tb2RlID09IERSTV9MU1BDT05f TU9ERV9QQ09OID8gIlBDT04iIDogIkxTIik7Cj4+ICsJcmV0dXJuIGN1cnJlbnRfbW9kZTsKPj4g K30KPiBJIHdhcyBnb2luZyB0byBzdWdnZXN0IGtpbGxpbmcgdGhpcyBvbmUgdG9vLCBidXQgSSBn dWVzcyB0aGUgZGVidWcKPiBvdXRwdXQgbWlnaHQgYmUgdXNlZnVsLiBNYWtlIGl0IHN0YXRpYyBh dCBsZWFzdC4KU3VyZSwgd2lsbCBtYWtlIGl0IHN0YXRpYy4gQWxzbyB3ZSBoYXZlIGEgcGxhbiB0 byBleHBvc2Ugb25lIERSTSAKcHJvcGVydHkgdG8gaGFuZGxlIGFkYXB0ZXIgbW9kZSBsc3Bjb24K YXQgdGhhdCB0aW1lIHRoaXMgd2lsbCBoZWxwLgo+PiArCj4+ICtpbnQgbHNwY29uX2NoYW5nZV9t b2RlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiwKPj4gKwllbnVtIGRybV9sc3Bjb25fbW9k ZSBtb2RlLCBib29sIGZvcmNlKQo+IHN0YXRpYwpTdXJlLgo+Cj4+ICt7Cj4+ICsJaW50IGVycjsK Pj4gKwllbnVtIGRybV9sc3Bjb25fbW9kZSBjdXJyZW50X21vZGU7Cj4+ICsJc3RydWN0IGkyY19h ZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5kZGM7Cj4+ICsKPj4gKwllcnIgPSBkcm1f bHNwY29uX2dldF9tb2RlKGFkYXB0ZXIsICZjdXJyZW50X21vZGUpOwo+PiArCWlmIChlcnIpIHsK Pj4gKwkJRFJNX0VSUk9SKCJFcnJvciByZWFkaW5nIExTUENPTiBtb2RlXG4iKTsKPj4gKwkJcmV0 dXJuIGVycjsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoY3VycmVudF9tb2RlID09IG1vZGUgJiYgIWZv cmNlKSB7Cj4+ICsJCURSTV9ERUJVR19LTVMoIkN1cnJlbnQgbW9kZSA9IGRlc2lyZWQgTFNQQ09O IG1vZGVcbiIpOwo+PiArCQlyZXR1cm4gMDsKPj4gKwl9Cj4gV2UgYWx3YXlzIGNhbGwgdGhpcyB3 aXRoIGZvcmNlPT10cnVlLCBzbyBpdCBsb29rcyBsaWtlIGEgcG9pbnRsZXNzCj4gcGFyYW1ldGVy LiBBbHNvIGlmIGZvcmNlPT10cnVlIGFsd2F5cywgaXQgZG9lc24ndCBuZWNlc3NhcnkgdG8gZXZl bgo+IHF1ZXJ5IHRoZSBjdXJyZW50IG1vZGUuIE9oIGFuZCBJIHRoaW5rIHdlJ3ZlIGFscmVhZHkg cXVlcmllZCB0aGUgbW9kZQo+IHdoZW4gdGhpcyBnZXRzIGNhbGxlZC4KQXMgbWVudGlvbmVkLCBJ IHdhbnRlZCB0byBrZWVwIHRoZSBzY29wZSBvZiBzd2l0Y2hpbmcgbHNwY29uIG1vZGVzLCBpbiAK dGhlIGRlc2lnbiBpbmZyYXN0cnVjdHVyZS4KU28gSSBrZXB0IHRoZXNlIHRoaW5ncyBhcyBwb3Nz aWJpbGl0eS4KCklGIHdlIGNyZWF0ZSBhIERSTSBwcm9wZXJ0eSB0byBxdWVyeSBMU1BDT04gbW9k ZSwgdGhhdCBnZXRfcHJvcGVydHkgCmZ1bmN0aW9uIHdpbGwgY2FsbCB0aGlzCmZ1bmN0aW9uIHdp dGggZm9yY2UgPSBmYWxzZSwgY296IGZvciB0aGlzIHF1ZXJ5IHdlIGRvbnQgd2FudCB0byBwcm9i ZSAKdGhlIEhXIGFnYWluLgo+PiArCj4+ICsJZXJyID0gZHJtX2xzcGNvbl9zZXRfbW9kZShhZGFw dGVyLCBtb2RlKTsKPj4gKwlpZiAoZXJyIDwgMCkgewo+PiArCQlEUk1fRVJST1IoIkxTUENPTiBt b2RlIGNoYW5nZSBmYWlsZWRcbiIpOwo+PiArCQlyZXR1cm4gZXJyOwo+PiArCX0KPj4gKwo+PiAr CWxzcGNvbi0+bW9kZV9vZl9vcCA9IG1vZGU7Cj4+ICsJRFJNX0RFQlVHX0tNUygiTFNQQ09OIG1v ZGUgY2hhbmdlZCBkb25lXG4iKTsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArYm9vbCBs c3Bjb25fZGV0ZWN0X2lkZW50aWZpZXIoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQo+IHN0 YXRpYwpnb3QgaXQuCj4KPj4gK3sKPj4gKwllbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBhZGFw dG9yX3R5cGU7Cj4+ICsJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4 LT5kZGM7Cj4+ICsKPj4gKwkvKiBMZXRzIHByb2JlIHRoZSBhZGFwdG9yIGFuZCBjaGVjayBpdHMg dHlwZSAqLwo+PiArCWFkYXB0b3JfdHlwZSA9IGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KGFkYXB0 ZXIpOwo+PiArCWlmIChhZGFwdG9yX3R5cGUgIT0gRFJNX0RQX0RVQUxfTU9ERV9MU1BDT04pIHsK Pj4gKwkJRFJNX0RFQlVHX0tNUygiTm8gTFNQQ09OIGRldGVjdGVkLCBmb3VuZCAlc1xuIiwKPj4g KwkJCWRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZShhZGFwdG9yX3R5cGUpKTsKPj4gKwkJ cmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+PiArCS8qIFlheSAuLi4gZ290IGEgTFNQQ09OIGRl dmljZSAqLwo+PiArCURSTV9ERUJVR19LTVMoIkxTUENPTiBkZXRlY3RlZFxuIik7Cj4+ICsJcmV0 dXJuIHRydWU7Cj4+ICt9Cj4gVGhpcyBpcyBzbWFsbCBmdW5jdGlvbiBhbmQgY2FsbGVkIG9ubHkg b25jZSwgc28gSSdkIGp1c3QgaW5saW5lIGl0IGludG8KPiB0aGUgY2FsbGVyIGFjdHVhbGx5LgpD YW4gYmUgZG9uZSwgYnV0IHRoZSBjYWxsZXIgaXMgaW50ZWxJX2RkaV9pbml0LCB3aGljaCBJIGRv bnQgd2FudCB0byAKcG9wdWxhdGUgd2l0aCBsc3Bjb24gc3BlY2lmaWMgY29kZSwgd2hlbiB3ZSBo YXZlIGEgc2VwYXJhdGUgZmlsZQpmb3IgbHNwY29uLiBEbyB5b3UgdGhpbmsgaXRzIGEgZ29vZCBp ZGVhID8gb3IgeW91IHByZWZlciB0byBoYXZlIHRoYXQgaW4gCmRkaV9pbml0IG9ubHkgPwo+PiAr Cj4+ICtlbnVtIGRybV9sc3Bjb25fbW9kZSBsc3Bjb25fcHJvYmUoc3RydWN0IGludGVsX2xzcGNv biAqbHNwY29uKQo+IHN0YXRpYwpHb3QgaXQuCj4KPj4gK3sKPj4gKwo+PiArCS8qIERldGVjdCBh IHZhbGlkIGxzcGNvbiBhZGFwdG9yICovCj4+ICsJaWYgKCFsc3Bjb25fZGV0ZWN0X2lkZW50aWZp ZXIobHNwY29uKSkgewo+PiArCQlEUk1fREVCVUdfS01TKCJObyBMU1BDT04gaWRlbnRpZmllciBm b3VuZFxuIik7Cj4+ICsJCXJldHVybiBmYWxzZTsKPj4gKwl9Cj4+ICsKPj4gKwkvKiBHZXQgTFNQ Q09OJ3MgbW9kZSBvZiBvcGVyYXRpb24gKi8KPj4gKwlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBsc3Bj b25fZ2V0X2N1cnJlbnRfbW9kZShsc3Bjb24pOwo+PiArCWxzcGNvbi0+YWN0aXZlID0gdHJ1ZTsK Pj4gKwlyZXR1cm4gdHJ1ZTsKPj4gK30KPj4gKwo+PiArYm9vbCBsc3Bjb25faW5pdChzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50 ZWxfZHAgKmRwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPj4gKwlzdHJ1Y3QgaW50ZWxfbHNwY29u ICpsc3Bjb24gPSAmaW50ZWxfZGlnX3BvcnQtPmxzcGNvbjsKPj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4+ICsKPj4gKwlpZiAoIUlT X0dFTjkoZGV2KSkgewo+PiArCQlEUk1fRVJST1IoIkxTUENPTiBpcyBzdXBwb3J0ZWQgb24gR0VO OSBvbmx5XG4iKTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPiBKdXN0IHJlbW92ZSB0aGlz IGNoZWNrPyBJZiBpdCdzIG5vdCBwcmVzZW50LCB3ZSB3b24ndCBkZXRlY3QgaXQuCkZhdWx0eSBW QlQgPyBKdXN0IGJlaW5nIHBhcmFub2lkLgo+PiArCj4+ICsJbHNwY29uLT5hY3RpdmUgPSBmYWxz ZTsKPj4gKwlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBEUk1fTFNQQ09OX01PREVfSU5WQUxJRDsKPj4g Kwlsc3Bjb24tPmF1eCA9ICZkcC0+YXV4Owo+PiArCj4+ICsJaWYgKCFsc3Bjb25fcHJvYmUobHNw Y29uKSkgewo+PiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwcm9iZSBsc3Bjb25cbiIpOwo+PiAr CQlyZXR1cm4gZmFsc2U7Cj4+ICsJfQo+PiArCj4+ICsJLyoKPj4gKwkqIEluIHRoZSBTVyBzdGF0 ZSBtYWNoaW5lLCBsZXRzIFB1dCBMU1BDT04gaW4gUENPTiBtb2RlIG9ubHkuCj4+ICsJKiBJbiB0 aGlzIHdheSwgaXQgd2lsbCB3b3JrIHdpdGggYm90aCBIRE1JIDEuNCBzaW5rcyBhcyB3ZWxsIGFz IEhETUkKPj4gKwkqIDIuMCBzaW5rcy4KPj4gKwkqLwo+PiArCWlmIChsc3Bjb24tPmFjdGl2ZSAm JiBsc3Bjb24tPm1vZGVfb2Zfb3AgIT0gRFJNX0xTUENPTl9NT0RFX1BDT04pIHsKPj4gKwkJaWYg KGxzcGNvbl9jaGFuZ2VfbW9kZShsc3Bjb24sIERSTV9MU1BDT05fTU9ERV9QQ09OLAo+PiArCQkJ dHJ1ZSkgPCAwKSB7Cj4gaW5kZW50IGZhaWwuCnNhbWUgYXMgcHJldmlvdXMuCgpSZWdhcmRzClNo YXNoYW5rCj4+ICsJCQlEUk1fRVJST1IoIkxTUENPTiBtb2RlIGNoYW5nZSB0byBQQ09OIGZhaWxl ZFxuIik7Cj4+ICsJCQlyZXR1cm4gZmFsc2U7Cj4+ICsJCX0KPj4gKwl9Cj4+ICsKPj4gKwlEUk1f REVCVUdfS01TKCJTdWNjZXNzOiBMU1BDT04gaW5pdFxuIik7Cj4+ICsJcmV0dXJuIHRydWU7Cj4+ ICt9Cj4+IC0tIAo+PiAxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==