From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 10/12] drm/i915: Add lspcon core functions Date: Tue, 3 May 2016 19:09:25 +0300 Message-ID: <20160503160925.GH4329@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> 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 972C96E930 for ; Tue, 3 May 2016 16:09:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5728C861.7080101@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: paulo.r.zanoni@intel.com, intel-gfx@lists.freedesktop.org, daniel.vetter@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMDMsIDIwMTYgYXQgMDk6MTg6NDlQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gU2hhc2hhbmsKPiAKPiBPbiA1LzIvMjAxNiA3OjIxIFBNLCBW aWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBNb24sIEFwciAwNCwgMjAxNiBhdCAwNTozMTo0 NlBNICswNTMwLCBTaGFzaGFuayBTaGFybWEgd3JvdGU6Cj4gPj4gVGhpcyBwYXRjaCBhZGRzIGxz cGNvbidzIGludGVybmFsIGZ1bmN0aW9ucywgd2hpY2ggd29yawo+ID4+IG9uIHRoZSBwcm9iZSBs YXllciwgYW5kIGluZGljYXRlIHRoZSB3b3JraW5nIHN0YXR1cyBvZgo+ID4+IGxzcGNvbiwgd2hp Y2ggYXJlIG1vc3RseToKPiA+Pgo+ID4+IHByb2JlOiBBIGxzcGNvbiBkZXZpY2UgaXMgcHJvYmVk IG9ubHkgb25jZSwgZHVyaW5nIGJvb3QKPiA+PiB0aW1lLCBhcyBpdHMgYWx3YXlzIHByZXNlbnQg d2l0aCB0aGUgZGV2aWNlLCBuZXh0IHRvIHBvcnQuCj4gPj4gU28gdGhlIGkyY19vdmVyX2F1eCBj aGFubmVsIGlzIGFsd3lhcyByZWFkL3dyaXRlYWJsZSBpZiBEQyBpcwo+ID4+IHBvd2VyZWQgb24u IElmIFZCVCBzYXlzIHRoYXQgdGhpcyBwb3J0IGNvbnRhaW5zIGxzcGNvbiwgd2UKPiA+PiBjaGVj ayBhbmQgcHJvYmUgdGhlIEhXIHRvIHZlcmlmeSBhbmQgaW5pdGlhbGl6ZSBpdC4KPiA+Pgo+ID4+ IGdldF9tb2RlOiBUaGlzIGZ1bmN0aW9uIGluZGljYXRlcyB0aGUgY3VycmVudCBtb2RlIG9mIG9w ZXJhdGlvbgo+ID4+IG9mIGxzcGNvbiAobHMgb3IgcGNvbiBtb2RlKQo+ID4+Cj4gPj4gY2hhbmdl X21vZGU6IFRoaXMgZnVuY3Rpb24gY2FuIGNoYW5nZSB0aGUgbHNwY29uJ3MgbW9kZSBvZgo+ID4+ IG9wZXJhdGlvbiB0byBkZXNpcmVkIG1vZGUuCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBTaGFz aGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gPj4gU2lnbmVkLW9mZi1i eTogQWthc2hkZWVwIFNoYXJtYSA8QWthc2hkZWVwLnNoYXJtYUBpbnRlbC5jb20+Cj4gPj4gLS0t Cj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYyB8IDE0NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxNDUg aW5zZXJ0aW9ucygrKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPiA+ PiBpbmRleCBjM2MxY2QyLi42MTdmZTNmIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xzcGNvbi5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHNwY29uLmMKPiA+PiBAQCAtNjEsNiArNjEsMTQ0IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxf bHNwY29uCj4gPj4gICAJcmV0dXJuIGVuY190b19sc3Bjb24oJmludGVsX2F0dGFjaGVkX2VuY29k ZXIoY29ubmVjdG9yKS0+YmFzZSk7Cj4gPj4gICB9Cj4gPj4KPiA+PiArZW51bSBsc3Bjb25fbW9k ZSBsc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCj4g Pj4gK3sKPiA+PiArCXU4IGRhdGE7Cj4gPj4gKwlpbnQgZXJyID0gMDsKPiA+PiArCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gbHNwY29uX3RvX2RpZ19wb3J0KGxzcGNvbik7 Cj4gPj4gKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSAmZGlnX3BvcnQtPmRwLmF1eC5k ZGM7Cj4gPj4gKwo+ID4+ICsJLyogUmVhZCBTdGF0dXM6IGkyYyBvdmVyIGF1eCAqLwo+ID4+ICsJ ZXJyID0gZHJtX2RwX2R1YWxfbW9kZV9pb2FfcmVhZChhZGFwdGVyLCAmZGF0YSwKPiA+PiArCQlM U1BDT05fTU9ERV9DSEVDS19PRkZTRVQsIHNpemVvZihkYXRhKSk7Cj4gPj4gKwlpZiAoZXJyIDwg MCkgewo+ID4+ICsJCURSTV9FUlJPUigiTFNQQ09OIHJlYWQgbW9kZSBpb2EgKDB4ODAsIDB4NDEp IGZhaWxlZFxuIik7Cj4gPj4gKwkJcmV0dXJuIGxzcGNvbl9tb2RlX2ludmFsaWQ7Cj4gPj4gKwl9 Cj4gPj4gKwo+ID4+ICsJRFJNX0RFQlVHX0RSSVZFUigiTFNQQ09OIG1vZGUgKDB4ODAsIDB4NDEp ID0gJXhcbiIsICh1bnNpZ25lZCBpbnQpZGF0YSk7Cj4gPj4gKwlyZXR1cm4gZGF0YSAmIExTUENP Tl9NT0RFX01BU0sgPyBsc3Bjb25fbW9kZV9wY29uIDogbHNwY29uX21vZGVfbHM7Cj4gPj4gK30K PiA+PiArCj4gPj4gK2ludCBsc3Bjb25fY2hhbmdlX21vZGUoc3RydWN0IGludGVsX2xzcGNvbiAq bHNwY29uLAo+ID4+ICsJZW51bSBsc3Bjb25fbW9kZSBtb2RlLCBib29sIGZvcmNlKQo+ID4+ICt7 Cj4gPj4gKwl1OCBkYXRhOwo+ID4+ICsJaW50IGVycjsKPiA+PiArCWludCB0aW1lX291dCA9IDIw MDsKPiA+PiArCWVudW0gbHNwY29uX21vZGUgY3VycmVudF9tb2RlOwo+ID4+ICsJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBsc3Bjb25fdG9fZGlnX3BvcnQobHNwY29uKTsK PiA+PiArCj4gPj4gKwljdXJyZW50X21vZGUgPSBsc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShsc3Bj b24pOwo+ID4+ICsJaWYgKGN1cnJlbnRfbW9kZSA9PSBsc3Bjb25fbW9kZV9pbnZhbGlkKSB7Cj4g Pj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgTFNQQ09OIG1vZGVcbiIpOwo+ ID4+ICsJCXJldHVybiAtRUZBVUxUOwo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCWlmIChjdXJyZW50 X21vZGUgPT0gbW9kZSAmJiAhZm9yY2UpIHsKPiA+PiArCQlEUk1fREVCVUdfRFJJVkVSKCJDdXJy ZW50IG1vZGUgPSBkZXNpcmVkIExTUENPTiBtb2RlXG4iKTsKPiA+PiArCQlyZXR1cm4gMDsKPiA+ PiArCX0KPiA+PiArCj4gPj4gKwlpZiAobW9kZSA9PSBsc3Bjb25fbW9kZV9scykKPiA+PiArCQlk YXRhID0gfkxTUENPTl9NT0RFX01BU0s7Cj4gPj4gKwllbHNlCj4gPj4gKwkJZGF0YSA9IExTUENP Tl9NT0RFX01BU0s7Cj4gPj4gKwo+ID4+ICsJLyogQ2hhbmdlIG1vZGUgKi8KPiA+PiArCWVyciA9 IGRybV9kcF9kdWFsX21vZGVfaW9hX3dyaXRlKCZkaWdfcG9ydC0+ZHAuYXV4LmRkYywgJmRhdGEs Cj4gPj4gKwkJCUxTUENPTl9NT0RFX0NIQU5HRV9PRkZTRVQsIHNpemVvZihkYXRhKSk7Cj4gPj4g KwlpZiAoZXJyIDwgMCkgewo+ID4+ICsJCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIGZh aWxlZFxuIik7Cj4gPj4gKwkJcmV0dXJuIGVycjsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwkvKgo+ ID4+ICsJKiBDb25maXJtIG1vZGUgY2hhbmdlIGJ5IHJlYWRpbmcgdGhlIHN0YXR1cyBiaXQuCj4g Pj4gKwkqIFNvbWV0aW1lcywgaXQgdGFrZXMgYSB3aGlsZSB0byBjaGFuZ2UgdGhlIG1vZGUsCj4g Pj4gKwkqIHNvIHdhaXQgYW5kIHJldHJ5IHVudGlsIHRpbWUgb3V0IG9yIGRvbmUuCj4gPj4gKwkq Lwo+ID4+ICsJd2hpbGUgKHRpbWVfb3V0KSB7Cj4gPj4gKwkJY3VycmVudF9tb2RlID0gbHNwY29u X2dldF9jdXJyZW50X21vZGUobHNwY29uKTsKPiA+PiArCQlpZiAoY3VycmVudF9tb2RlICE9IG1v ZGUpIHsKPiA+PiArCQkJbWRlbGF5KDEwKTsKPiA+PiArCQkJdGltZV9vdXQgLT0gMTA7Cj4gPj4g KwkJfSBlbHNlIHsKPiA+PiArCQkJbHNwY29uLT5tb2RlX29mX29wID0gbW9kZTsKPiA+PiArCQkJ RFJNX0RFQlVHX0RSSVZFUigiTFNQQ09OIG1vZGUgY2hhbmdlZCB0byAlc1xuIiwKPiA+PiArCQkJ CW1vZGUgPT0gbHNwY29uX21vZGVfbHMgPyAiTFMiIDogIlBDT04iKTsKPiA+PiArCQkJcmV0dXJu IDA7Cj4gPj4gKwkJfQo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCURSTV9FUlJPUigiTFNQQ09OIG1v ZGUgY2hhbmdlIHRpbWVkIG91dFxuIik7Cj4gPj4gKwlyZXR1cm4gLUVGQVVMVDsKPiA+PiArfQo+ ID4KPiA+IEkgdGhpbmsgd2UgcHJvYmFibHkgd2FudCB0byBwdXQgbW9zdCBvZiB0aGlzIHN0dWZm IGludG8gdGhlIGhlbHBlci4gV2UKPiA+IGFscmVhZHkgaGF2ZSB0aGUgTFNQQ09OIGlkZW50aWZp Y2F0aW9uIHRoZXJlLCBzbyBoYXZpbmcgYSBmZXcgaGVscGVycwo+ID4gdG8gc2V0L2dldCB0aGUg bHMgdnMuIHBjb25uIG1vZGUgd291bGQgc2VlbSBhcHByb3ByaWF0ZS4KPiA+Cj4gQWN0dWFsbHkg aGFuZGxpbmcgb2YgTFMvUENPTiBtb2RlcyBhcmUgc3BlY2lmaWMgdG8gTUNBIGNoaXBzLCBhbmQg c29tZSAKPiBvZiB0aGUgbW9kZSBjaGFuZ2UgbWVjaGFuaXNtIGFuZCBmZXcgb3RoZXIgY29udHJv bCBzdHVmZiBtYXkgbm90IGJlIHNhbWUgCj4gb24gcGFyYWRlIG9yIHNvbWUgb3RoZXIgdmVuZG9y J3MgY2hpcCwgc28gSSBhbSBub3Qgc3VyZSBpZiB3ZSBzaG91bGQgCj4gY3JlYXRlIGEgaGVscGVy IGZvciBzb21ldGhpbmcgd2hpY2ggaXMgc3BlY2lmaWMgdG8gdGhpcyBjaGlwLiBZb3UgCj4gc3Vn Z2VzdCBzbyA/CgpXZWxsLCBpZiB3ZSBhbHJlYWR5IHB1dCB0aGUgZGV0ZWN0aW9uIGludG8gdGhl IGhlbHBlciB3ZSBhbHJlYWR5IGhhdmUKc29tZSB2ZW5kb3Igc3BlY2lmaWMgc3R1ZmYgdGhlcmUs IG5vPyBPciB3b3VsZCB0aGUgb3RoZXIgdmVuZG9yJ3MgY2hpcHMKYmUgaWRlbnRpZmlhYmxlIGlu IHRoZSBzYW1lIHdheT8gCgpBbnl3YXlzLCBJIHByZXN1bWUgc29tZW9uZSBlbHNlIHRoYW4gSW50 ZWwgbWlnaHQgd2FudCB0byB1c2UgdGhlc2Ugc2FtZQpjaGlwcyBpbiB0aGVpciBwcm9kdWN0cywg c28gaGF2aW5nIHRoZSBzdXBwb3J0IGluIGEgY2VudHJhbCBwbGFjZSB3b3VsZApzZWVtIGxpa2Ug YSBnb29kIGlkZWEuIElmIHdlIHN0YXJ0IHRvIHNlZSBpbmNvbXBhdGJsZSBMU1BDT04gY2hpcHMg ZnJvbQptdWx0aXBsZSB2ZW5kb3JzIHdlJ2xsIG5lZWQgdG8gcmV0aGluayBob3cgd2Ugc3VwcG9y dCB0aGVtIGFsbCwgYnV0CnVudGlsIHdlIGtub3cgaG93IGV4YWN0bHkgdGhleSBkaWZmZXIgaXQn cyByYXRoZXIgaW1wb3NzaWJsZSB0byBkZXNpZ24KdGhlIGhlbHBlciB0byBkZWFsIHdpdGggdGhl bS4gU28gYXMgYSBmaXJzdCBzdGVwIEknZCBzdHVmZiBpdCBhbGwgaW50bwp0aGUgaGVscGVyLgoK PiA+PiArCj4gPj4gK2Jvb2wgbHNwY29uX2RldGVjdF9pZGVudGlmaWVyKHN0cnVjdCBpbnRlbF9s c3Bjb24gKmxzcGNvbikKPiA+PiArewo+ID4+ICsJZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUg YWRhcHRvcl90eXBlOwo+ID4+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQg PSBsc3Bjb25fdG9fZGlnX3BvcnQobHNwY29uKTsKPiA+PiArCXN0cnVjdCBpMmNfYWRhcHRlciAq YWRhcHRlciA9ICZkaWdfcG9ydC0+ZHAuYXV4LmRkYzsKPiA+PiArCj4gPj4gKwkvKiBMZXRzIHBy b2JlIHRoZSBhZGFwdG9yIGFuZCBjaGVjayBpdHMgdHlwZSAqLwo+ID4+ICsJYWRhcHRvcl90eXBl ID0gZHJtX2RwX2R1YWxfbW9kZV9kZXRlY3QoYWRhcHRlcik7Cj4gPj4gKwlpZiAoYWRhcHRvcl90 eXBlICE9IERSTV9EUF9EVUFMX01PREVfVFlQRTJfTFNQQ09OKSB7Cj4gPj4gKwkJRFJNX0RFQlVH X0RSSVZFUigiTm8gTFNQQ09OIGRldGVjdGVkLCBmb3VuZCAlc1xuIiwKPiA+PiArCQkJZHJtX2Rw X2dldF9kdWFsX21vZGVfdHlwZV9uYW1lKGFkYXB0b3JfdHlwZSkpOwo+ID4+ICsJCXJldHVybiBm YWxzZTsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwkvKiBZYXkgLi4uIGdvdCBhIExTUENPTiBkZXZp Y2UgKi8KPiA+PiArCURSTV9ERUJVR19EUklWRVIoIkxTUENPTiBkZXRlY3RlZFxuIik7Cj4gPj4g KwlyZXR1cm4gdHJ1ZTsKPiA+PiArfQo+ID4+ICsKPiA+PiArZW51bSBsc3Bjb25fbW9kZSBsc3Bj b25fcHJvYmUoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQo+ID4+ICt7Cj4gPj4gKwllbnVt IGxzcGNvbl9tb2RlIGN1cnJlbnRfbW9kZTsKPiA+PiArCj4gPj4gKwkvKiBEZXRlY3QgYSB2YWxp ZCBsc3Bjb24gKi8KPiA+PiArCWlmICghbHNwY29uX2RldGVjdF9pZGVudGlmaWVyKGxzcGNvbikp IHsKPiA+PiArCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gZmluZCBMU1BDT04gaWRlbnRp ZmllclxuIik7Cj4gPj4gKwkJcmV0dXJuIGZhbHNlOwo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCS8q IExTUENPTidzIG1vZGUgb2Ygb3BlcmF0aW9uICovCj4gPj4gKwljdXJyZW50X21vZGUgPSBsc3Bj b25fZ2V0X2N1cnJlbnRfbW9kZShsc3Bjb24pOwo+ID4+ICsJaWYgKGN1cnJlbnRfbW9kZSA9PSBs c3Bjb25fbW9kZV9pbnZhbGlkKSB7Cj4gPj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCBM U1BDT04gbW9kZVxuIik7Cj4gPj4gKwkJcmV0dXJuIGZhbHNlOwo+ID4+ICsJfQo+ID4+ICsKPiA+ PiArCS8qIEFsbCBpcyB3ZWxsICovCj4gPj4gKwlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBjdXJyZW50 X21vZGU7Cj4gPj4gKwlsc3Bjb24tPmFjdGl2ZSA9IHRydWU7Cj4gPj4gKwlyZXR1cm4gY3VycmVu dF9tb2RlOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtib29sIGxzcGNvbl9kZXZpY2VfaW5pdChzdHJ1 Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCj4gPj4gK3sKPiA+PiArCj4gPj4gKwkvKiBMZXRzIGNo ZWNrIExTUENPTiBub3csIHByb2JlIHRoZSBIVyBzdGF0dXMgKi8KPiA+PiArCWxzcGNvbi0+YWN0 aXZlID0gZmFsc2U7Cj4gPj4gKwlsc3Bjb24tPm1vZGVfb2Zfb3AgPSBsc3Bjb25fbW9kZV9pbnZh bGlkOwo+ID4+ICsJaWYgKCFsc3Bjb25fcHJvYmUobHNwY29uKSkgewo+ID4+ICsJCURSTV9FUlJP UigiRmFpbGVkIHRvIHByb2JlIGxzcGNvbiIpOwo+ID4+ICsJCXJldHVybiBmYWxzZTsKPiA+PiAr CX0KPiA+PiArCj4gPj4gKwkvKiBXZSB3aXNoIHRvIGtlZXAgTFNQQ09OIGluIExTIG1vZGUgKi8K PiA+PiArCWlmIChsc3Bjb24tPmFjdGl2ZSAmJiBsc3Bjb24tPm1vZGVfb2Zfb3AgIT0gbHNwY29u X21vZGVfbHMpIHsKPiA+PiArCQlpZiAobHNwY29uX2NoYW5nZV9tb2RlKGxzcGNvbiwgbHNwY29u X21vZGVfbHMsIHRydWUpIDwgMCkgewo+ID4+ICsJCQlEUk1fRVJST1IoIkxTUENPTiBtb2RlIGNo YW5nZSB0byBMUyBmYWlsZWRcbiIpOwo+ID4+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gPj4gKwkJfQo+ ID4+ICsJfQo+ID4+ICsJRFJNX0RFQlVHX0RSSVZFUigiTFNQQ09OIGluaXQgc3VjY2Vzc1xuIik7 Cj4gPj4gKwlyZXR1cm4gdHJ1ZTsKPiA+PiArfQo+ID4+ICsKPiA+PiAgIHN0cnVjdCBlZGlkICps c3Bjb25fZ2V0X2VkaWQoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uLCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcgo+ID4+ICAgCQkJCQkJKmNvbm5lY3RvcikKPiA+PiAgIHsKPiA+PiBAQCAtMjMzLDYg KzM3MSw3IEBAIGludCBpbnRlbF9sc3Bjb25faW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gPj4gICAJc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gPj4gICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGludGVsX2VuY29kZXItPmJhc2UuZGV2Owo+ID4+ICAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPj4gKwlzdHJ1 Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSAmaW50ZWxfZGlnX3BvcnQtPmxzcGNvbjsKPiA+PiAg IAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7Cj4gPj4gICAJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+PiAgIAllbnVtIHBvcnQgcG9ydCA9IGludGVs X2RpZ19wb3J0LT5wb3J0Owo+ID4+IEBAIC0zMTQsNiArNDUzLDEyIEBAIGludCBpbnRlbF9sc3Bj b25faW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQpCj4gPj4gICAJCUk5MTVfV1JJVEUoUEVHX0JBTkRfR0FQX0RBVEEsICh0ZW1wICYgfjB4Zikg fCAweGQpOwo+ID4+ICAgCX0KPiA+Pgo+ID4+ICsJLyogTm93IGluaXRpYWxpemUgdGhlIExTUENP TiBkZXZpY2UgKi8KPiA+PiArCWlmICghbHNwY29uX2RldmljZV9pbml0KGxzcGNvbikpIHsKPiA+ PiArCQlEUk1fRVJST1IoIkxTUENPTiBkZXZpY2UgaW5pdCBmYWlsZWRcbiIpOwo+ID4+ICsJCWdv dG8gZmFpbDsKPiA+PiArCX0KPiA+PiArCj4gPj4gICAJRFJNX0RFQlVHX0RSSVZFUigiU3VjY2Vz czogTFNQQ09OIGNvbm5lY3RvciBpbml0XG4iKTsKPiA+PiAgIAlyZXR1cm4gMDsKPiA+Pgo+ID4+ IC0tCj4gPj4gMS45LjEKPiA+CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK