From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 2/4] drm/i915: Add lspcon support for I915 driver Date: Thu, 11 Aug 2016 10:03:16 +0300 Message-ID: <20160811070316.GZ4329@intel.com> References: <1467723950-14093-1-git-send-email-shashank.sharma@intel.com> <1467723950-14093-3-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 41E3B6E168 for ; Thu, 11 Aug 2016 07:03:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1467723950-14093-3-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com, rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMDUsIDIwMTYgYXQgMDY6MzU6NDhQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmaWxlLCB0byBhY2NvbW1vZGF0ZSBsc3Bj b24gc3VwcG9ydAo+IGZvciBJOTE1IGRyaXZlci4gVGhlc2UgZnVuY3Rpb25zIHByb2JlLCBkZXRl Y3QsIGluaXRpYWxpemUKPiBhbmQgY29uZmlndXJlIGFuIG9uLWJvYXJkIGxzcGNvbiBkZXZpY2Ug ZHVyaW5nIHRoZSBkcml2ZXIKPiBpbml0IHRpbWUuCj4gCj4gQWxzbywgdGhpcyBwYXRjaCBhZGRz IGEgc21hbGwgc3RydWN0dXJlIGZvciBsc3Bjb24gZGV2aWNlLAo+IHdoaWNoIHdpbGwgcHJvdmlk ZSB0aGUgcnVudGltZSBzdGF0dXMgb2YgdGhlIGRldmljZS4KPiAKPiBWMjogYWRkcmVzc2VkIHZp bGxlJ3MgcmV2aWV3IGNvbW1lbnRzCj4gLSBDbGVhbiB0aGUgbGVmdG92ZXIgbWFjcm9zIGZyb20g cHJldmlvdXMgcGF0Y2ggc2V0Cj4gCj4gVjM6IFJlYmFzZQo+IAo+IFNpZ25lZC1vZmYtYnk6IFNo YXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBBa2FzaGRlZXAgU2hhcm1hIDxha2FzaGRlZXAuc2hhcm1hQGludGVsLmNvbT4KPiBSZXZpZXdl ZC1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgIHwgIDEzICsrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHNwY29uLmMgfCAxNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gIDMgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBpbmRleCA2MTgyOTNjLi42NGNkMzczIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUKPiBAQCAtOTUsNiArOTUsNyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5v IFwKPiAgCSAgaW50ZWxfZHZvLm8gXAo+ICAJICBpbnRlbF9oZG1pLm8gXAo+ICAJICBpbnRlbF9p MmMubyBcCj4gKwkgIGludGVsX2xzcGNvbi5vIFwKPiAgCSAgaW50ZWxfbHZkcy5vIFwKPiAgCSAg aW50ZWxfcGFuZWwubyBcCj4gIAkgIGludGVsX3Nkdm8ubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBpbmRleCBlNmEyNGQyLi5lNjk4MmNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBAQCAtOTIyLDEyICs5MjIsMTkgQEAgc3RydWN0IGludGVsX2RwIHsKPiAgCWJvb2wg Y29tcGxpYW5jZV90ZXN0X2FjdGl2ZTsKPiAgfTsKPiAgCj4gK3N0cnVjdCBpbnRlbF9sc3Bjb24g ewo+ICsJYm9vbCBhY3RpdmU7Cj4gKwllbnVtIGRybV9sc3Bjb25fbW9kZSBtb2RlX29mX29wOwoK SSdkIGNhbGwgdGhpcyBqdXN0ICdtb2RlJwoKPiArCXN0cnVjdCBkcm1fZHBfYXV4ICphdXg7Cj4g K307Cj4gKwo+ICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPiAgCXN0cnVjdCBpbnRlbF9l bmNvZGVyIGJhc2U7Cj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCXUzMiBzYXZlZF9wb3J0X2JpdHM7 Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgZHA7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSBoZG1pOwo+ICsJ c3RydWN0IGludGVsX2xzcGNvbiBsc3Bjb247Cj4gIAllbnVtIGlycXJldHVybiAoKmhwZF9wdWxz ZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqLCBib29sKTsKPiAgCWJvb2wgcmVsZWFzZV9j bDJfb3ZlcnJpZGU7Cj4gIAl1aW50OF90IG1heF9sYW5lczsKPiBAQCAtMTQ3OCw3ICsxNDg1LDYg QEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln KTsKPiAgdm9pZCBpbnRlbF9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBpbnRl bF9oZG1pICpoZG1pLCBib29sIGVuYWJsZSk7Cj4gIAo+IC0KPiAgLyogaW50ZWxfbHZkcy5jICov Cj4gIHZvaWQgaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZ2V0X2x2ZHNfZW5jb2RlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiBAQCAtMTc3OSw0ICsxNzg1LDkgQEAgaW50IGludGVsX2NvbG9yX2NoZWNrKHN0 cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSk7Cj4gIHZv aWQgaW50ZWxfY29sb3Jfc2V0X2NzYyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Owo+ICB2b2lkIGludGVsX2NvbG9yX2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpOwo+ICAKPiArLyogaW50ZWxfbHNwY29uLmMgKi8KPiArYm9vbCBsc3Bjb25faW5p dChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7Cj4gK2VudW0gZHJt X2Nvbm5lY3Rvcl9zdGF0dXMKPiArbHNwY29uX2xzX21vZGVfZGV0ZWN0KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpOwo+ICtib29sIGlzX2xzcGNvbl9hY3RpdmUo c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ICAjZW5kaWYgLyogX19JTlRF TF9EUlZfSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xz cGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmZkZWZmNzEKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPiBAQCAtMCwwICsxLDE0NSBA QAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKgo+ICsgKi8KPiArI2luY2x1ZGUgPGRybS9k cm1fZWRpZC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gKyNpbmNs dWRlIDxkcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaD4KPiArI2luY2x1ZGUgImludGVsX2Ry di5oIgo+ICsKPiArYm9vbCBpc19sc3Bjb25fYWN0aXZlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmRpZ19wb3J0KQo+ICt7Cj4gKwlyZXR1cm4gZGlnX3BvcnQtPmxzcGNvbi5hY3RpdmU7Cj4g K30KCnVudXNlZCAtPiBraWxsIGl0CgpJbiBmYWN0IHRoZSB3aG9sZSBsc3Bjb24uYWN0aXZlIGZs YWdzIHNlZW1zIHByZXR0eSBwb2ludGxlc3MsIHNvIEknZApqdXN0IGtpbGwgdGhhdCB0b28uCgo+ ICsKPiArZW51bSBkcm1fbHNwY29uX21vZGUgbHNwY29uX2dldF9jdXJyZW50X21vZGUoc3RydWN0 IGludGVsX2xzcGNvbiAqbHNwY29uKQo+ICt7Cj4gKwllbnVtIGRybV9sc3Bjb25fbW9kZSBjdXJy ZW50X21vZGUgPSBEUk1fTFNQQ09OX01PREVfSU5WQUxJRDsKPiArCXN0cnVjdCBpMmNfYWRhcHRl ciAqYWRhcHRlciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwo+ICsKPiArCWlmIChkcm1fbHNwY29uX2dl dF9tb2RlKGFkYXB0ZXIsICZjdXJyZW50X21vZGUpKQo+ICsJCURSTV9FUlJPUigiRXJyb3IgcmVh ZGluZyBMU1BDT04gbW9kZVxuIik7Cj4gKwllbHNlCj4gKwkJRFJNX0RFQlVHX0tNUygiQ3VycmVu dCBMU1BDT04gbW9kZSAlc1xuIiwKPiArCQkJY3VycmVudF9tb2RlID09IERSTV9MU1BDT05fTU9E RV9QQ09OID8gIlBDT04iIDogIkxTIik7Cj4gKwlyZXR1cm4gY3VycmVudF9tb2RlOwo+ICt9CgpJ IHdhcyBnb2luZyB0byBzdWdnZXN0IGtpbGxpbmcgdGhpcyBvbmUgdG9vLCBidXQgSSBndWVzcyB0 aGUgZGVidWcKb3V0cHV0IG1pZ2h0IGJlIHVzZWZ1bC4gTWFrZSBpdCBzdGF0aWMgYXQgbGVhc3Qu Cgo+ICsKPiAraW50IGxzcGNvbl9jaGFuZ2VfbW9kZShzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bj b24sCj4gKwllbnVtIGRybV9sc3Bjb25fbW9kZSBtb2RlLCBib29sIGZvcmNlKQoKc3RhdGljCgo+ ICt7Cj4gKwlpbnQgZXJyOwo+ICsJZW51bSBkcm1fbHNwY29uX21vZGUgY3VycmVudF9tb2RlOwo+ ICsJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5kZGM7Cj4gKwo+ ICsJZXJyID0gZHJtX2xzcGNvbl9nZXRfbW9kZShhZGFwdGVyLCAmY3VycmVudF9tb2RlKTsKPiAr CWlmIChlcnIpIHsKPiArCQlEUk1fRVJST1IoIkVycm9yIHJlYWRpbmcgTFNQQ09OIG1vZGVcbiIp Owo+ICsJCXJldHVybiBlcnI7Cj4gKwl9Cj4gKwo+ICsJaWYgKGN1cnJlbnRfbW9kZSA9PSBtb2Rl ICYmICFmb3JjZSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkN1cnJlbnQgbW9kZSA9IGRlc2lyZWQg TFNQQ09OIG1vZGVcbiIpOwo+ICsJCXJldHVybiAwOwo+ICsJfQoKV2UgYWx3YXlzIGNhbGwgdGhp cyB3aXRoIGZvcmNlPT10cnVlLCBzbyBpdCBsb29rcyBsaWtlIGEgcG9pbnRsZXNzCnBhcmFtZXRl ci4gQWxzbyBpZiBmb3JjZT09dHJ1ZSBhbHdheXMsIGl0IGRvZXNuJ3QgbmVjZXNzYXJ5IHRvIGV2 ZW4KcXVlcnkgdGhlIGN1cnJlbnQgbW9kZS4gT2ggYW5kIEkgdGhpbmsgd2UndmUgYWxyZWFkeSBx dWVyaWVkIHRoZSBtb2RlCndoZW4gdGhpcyBnZXRzIGNhbGxlZC4KCj4gKwo+ICsJZXJyID0gZHJt X2xzcGNvbl9zZXRfbW9kZShhZGFwdGVyLCBtb2RlKTsKPiArCWlmIChlcnIgPCAwKSB7Cj4gKwkJ RFJNX0VSUk9SKCJMU1BDT04gbW9kZSBjaGFuZ2UgZmFpbGVkXG4iKTsKPiArCQlyZXR1cm4gZXJy Owo+ICsJfQo+ICsKPiArCWxzcGNvbi0+bW9kZV9vZl9vcCA9IG1vZGU7Cj4gKwlEUk1fREVCVUdf S01TKCJMU1BDT04gbW9kZSBjaGFuZ2VkIGRvbmVcbiIpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK2Jvb2wgbHNwY29uX2RldGVjdF9pZGVudGlmaWVyKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxz cGNvbikKCnN0YXRpYwoKPiArewo+ICsJZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgYWRhcHRv cl90eXBlOwo+ICsJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5k ZGM7Cj4gKwo+ICsJLyogTGV0cyBwcm9iZSB0aGUgYWRhcHRvciBhbmQgY2hlY2sgaXRzIHR5cGUg Ki8KPiArCWFkYXB0b3JfdHlwZSA9IGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KGFkYXB0ZXIpOwo+ ICsJaWYgKGFkYXB0b3JfdHlwZSAhPSBEUk1fRFBfRFVBTF9NT0RFX0xTUENPTikgewo+ICsJCURS TV9ERUJVR19LTVMoIk5vIExTUENPTiBkZXRlY3RlZCwgZm91bmQgJXNcbiIsCj4gKwkJCWRybV9k cF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZShhZGFwdG9yX3R5cGUpKTsKPiArCQlyZXR1cm4gZmFs c2U7Cj4gKwl9Cj4gKwo+ICsJLyogWWF5IC4uLiBnb3QgYSBMU1BDT04gZGV2aWNlICovCj4gKwlE Uk1fREVCVUdfS01TKCJMU1BDT04gZGV0ZWN0ZWRcbiIpOwo+ICsJcmV0dXJuIHRydWU7Cj4gK30K ClRoaXMgaXMgc21hbGwgZnVuY3Rpb24gYW5kIGNhbGxlZCBvbmx5IG9uY2UsIHNvIEknZCBqdXN0 IGlubGluZSBpdCBpbnRvCnRoZSBjYWxsZXIgYWN0dWFsbHkuCgo+ICsKPiArZW51bSBkcm1fbHNw Y29uX21vZGUgbHNwY29uX3Byb2JlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikKCnN0YXRp YwoKPiArewo+ICsKPiArCS8qIERldGVjdCBhIHZhbGlkIGxzcGNvbiBhZGFwdG9yICovCj4gKwlp ZiAoIWxzcGNvbl9kZXRlY3RfaWRlbnRpZmllcihsc3Bjb24pKSB7Cj4gKwkJRFJNX0RFQlVHX0tN UygiTm8gTFNQQ09OIGlkZW50aWZpZXIgZm91bmRcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiAr CX0KPiArCj4gKwkvKiBHZXQgTFNQQ09OJ3MgbW9kZSBvZiBvcGVyYXRpb24gKi8KPiArCWxzcGNv bi0+bW9kZV9vZl9vcCA9IGxzcGNvbl9nZXRfY3VycmVudF9tb2RlKGxzcGNvbik7Cj4gKwlsc3Bj b24tPmFjdGl2ZSA9IHRydWU7Cj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiArYm9vbCBsc3Bj b25faW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiArewo+ ICsJc3RydWN0IGludGVsX2RwICpkcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gKwlzdHJ1Y3Qg aW50ZWxfbHNwY29uICpsc3Bjb24gPSAmaW50ZWxfZGlnX3BvcnQtPmxzcGNvbjsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiArCj4g KwlpZiAoIUlTX0dFTjkoZGV2KSkgewo+ICsJCURSTV9FUlJPUigiTFNQQ09OIGlzIHN1cHBvcnRl ZCBvbiBHRU45IG9ubHlcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KCkp1c3QgcmVtb3Zl IHRoaXMgY2hlY2s/IElmIGl0J3Mgbm90IHByZXNlbnQsIHdlIHdvbid0IGRldGVjdCBpdC4KCj4g Kwo+ICsJbHNwY29uLT5hY3RpdmUgPSBmYWxzZTsKPiArCWxzcGNvbi0+bW9kZV9vZl9vcCA9IERS TV9MU1BDT05fTU9ERV9JTlZBTElEOwo+ICsJbHNwY29uLT5hdXggPSAmZHAtPmF1eDsKPiArCj4g KwlpZiAoIWxzcGNvbl9wcm9iZShsc3Bjb24pKSB7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g cHJvYmUgbHNwY29uXG4iKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJLyoKPiAr CSogSW4gdGhlIFNXIHN0YXRlIG1hY2hpbmUsIGxldHMgUHV0IExTUENPTiBpbiBQQ09OIG1vZGUg b25seS4KPiArCSogSW4gdGhpcyB3YXksIGl0IHdpbGwgd29yayB3aXRoIGJvdGggSERNSSAxLjQg c2lua3MgYXMgd2VsbCBhcyBIRE1JCj4gKwkqIDIuMCBzaW5rcy4KPiArCSovCj4gKwlpZiAobHNw Y29uLT5hY3RpdmUgJiYgbHNwY29uLT5tb2RlX29mX29wICE9IERSTV9MU1BDT05fTU9ERV9QQ09O KSB7Cj4gKwkJaWYgKGxzcGNvbl9jaGFuZ2VfbW9kZShsc3Bjb24sIERSTV9MU1BDT05fTU9ERV9Q Q09OLAo+ICsJCQl0cnVlKSA8IDApIHsKCmluZGVudCBmYWlsLgoKPiArCQkJRFJNX0VSUk9SKCJM U1BDT04gbW9kZSBjaGFuZ2UgdG8gUENPTiBmYWlsZWRcbiIpOwo+ICsJCQlyZXR1cm4gZmFsc2U7 Cj4gKwkJfQo+ICsJfQo+ICsKPiArCURSTV9ERUJVR19LTVMoIlN1Y2Nlc3M6IExTUENPTiBpbml0 XG4iKTsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gLS0gCj4gMS45LjEKCi0tIApWaWxsZSBTeXJq w6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=