From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [GLK MIPI DSI V5 3/8] drm/i915/glk: Add MIPIIO Enable/disable sequence Date: Thu, 16 Feb 2017 17:07:53 +0200 Message-ID: <87lgt6mawm.fsf@intel.com> References: <1487078180-15147-1-git-send-email-madhav.chauhan@intel.com> <1487078180-15147-4-git-send-email-madhav.chauhan@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 ESMTPS id 998E76EB52 for ; Thu, 16 Feb 2017 15:07:56 +0000 (UTC) In-Reply-To: <1487078180-15147-4-git-send-email-madhav.chauhan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Madhav Chauhan , intel-gfx@lists.freedesktop.org Cc: ander.conselvan.de.oliveira@intel.com, Deepak M List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAxNCBGZWIgMjAxNywgTWFkaGF2IENoYXVoYW4gPG1hZGhhdi5jaGF1aGFuQGludGVs LmNvbT4gd3JvdGU6Cj4gRnJvbTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPgo+IHYy OiBBZGRyZXNzZWQgSmFuaSdzIFJldmlldyBjb21tZW50cyhyZW5hbWVkIGJpdCBmaWVsZCBtYWNy b3MpCj4gdjM6IEphbmkncyBSZXZpZXcgY29tbWVudCBmb3IgYWxpZ25pbmcgY29kZSB0byBwbGF0 Zm9ybXMgYW5kIGFkZGVkCj4gd3JhcHBlciBmdW5jdGlvbnMuCj4gdjQ6IENvcnJlY3RlZCBlbmFi bGUvZGlzYWJsZSBzZXVxZW5jZSBhcyBwZXIgQlNQRUMKPgo+IFNpZ25lZC1vZmYtYnk6IERlZXBh ayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFkaGF2IENoYXVoYW4g PG1hZGhhdi5jaGF1aGFuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMgfCAyMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IGluZGV4IDAzZDA5OTkuLmE3MmExMGYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC0zNTcsNiArMzU3LDEwOSBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZ2xrX2RzaV9kZXZp Y2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7Cj4gKwllbnVtIHBvcnQgcG9ydDsKPiArCXUzMiB0bXAsIHZhbDsKPiArCj4gKwkv KiBTZXQgdGhlIE1JUEkgbW9kZQo+ICsJICogSWYgTUlQSV9Nb2RlIGlzIG9mZiwgdGhlbiB3cml0 aW5nIHRvIExQX1dha2UgYml0IGlzIG5vdCByZWZsZWN0aW5nLgo+ICsJICogUG93ZXIgT04gTUlQ SSBJTyBmaXJzdCBhbmQgdGhlbiB3cml0ZSBpbnRvIElPIHJlc2V0IGFuZCBMUCB3YWtlIGJpdHMK PiArCSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ ICsJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwo+ICsJCUk5MTVfV1JJVEUoTUlQ SV9DVFJMKHBvcnQpLCB0bXAgfCBHTEtfTUlQSUlPX0VOQUJMRSk7Cj4gKwl9Cj4gKwo+ICsJLyog UHV0IHRoZSBJTyBpbnRvIHJlc2V0ICovCj4gKwl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKFBP UlRfQSkpOwo+ICsJdG1wICY9IH5HTEtfTUlQSUlPX1JFU0VUX1JFTEVBU0VEOwo+ICsJSTkxNV9X UklURShNSVBJX0NUUkwoUE9SVF9BKSwgdG1wKTsKPiArCj4gKwkvKiBQcm9ncmFtIExQIFdha2Ug Ki8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQl0 bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiArCQl0bXAgfD0gR0xLX0xQX1dBS0U7 Cj4gKwkJSTkxNV9XUklURShNSVBJX0NUUkwocG9ydCksIHRtcCk7Cj4gKwl9Cj4gKwo+ICsJLyog V2FpdCBmb3IgUHdyIEFDSyAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNp LT5wb3J0cykgewo+ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiAr CQkJCU1JUElfQ1RSTChwb3J0KSwgR0xLX01JUElJT19QT1JUX1BPV0VSRUQsCj4gKwkJCQlHTEtf TUlQSUlPX1BPUlRfUE9XRVJFRCwgMjApKQo+ICsJCQlEUk1fRVJST1IoIlBvd2VyIEFDSyBub3Qg cmVjZWl2ZWRcbiIpOwo+ICsJfQo+ICsKPiArCS8qIFdhaXQgZm9yIE1JUEkgUEhZIHN0YXR1cyBi aXQgdG8gc2V0ICovCj4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRz KSB7Cj4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ICsJCQkJTUlQ SV9DVFJMKHBvcnQpLCBHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwKPiArCQkJCUdMS19NSVBJSU9f UE9SVF9QT1dFUkVELCAyMCkpCj4gKwkJCURSTV9FUlJPUigiUEhZIGlzIG5vdCBPTlxuIik7Cj4g Kwl9CgpZb3UgaGF2ZSB0aGUgc2FtZSB3YWl0IHR3aWNlIGhlcmUsIHdpdGggZGlmZmVyZW50IGNv bW1lbnRzIGFuZCBlcnJvcgptZXNzYWdlcy4KCj4gKwo+ICsJLyogR2V0IElPIG91dCBvZiByZXNl dCAqLwo+ICsJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChQT1JUX0EpKTsKPiArCUk5MTVfV1JJ VEUoTUlQSV9DVFJMKFBPUlRfQSksIHRtcCB8IEdMS19NSVBJSU9fUkVTRVRfUkVMRUFTRUQpOwo+ ICsKPiArCS8qIEdldCBJTyBvdXQgb2YgTG93IHBvd2VyIHN0YXRlKi8KPiArCWZvcl9lYWNoX2Rz aV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQlpZiAoIShJOTE1X1JFQUQoTUlQ SV9ERVZJQ0VfUkVBRFkocG9ydCkpICYgREVWSUNFX1JFQURZKSkgewo+ICsJCQl2YWwgPSBJOTE1 X1JFQUQoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpOwo+ICsJCQl2YWwgJj0gflVMUFNfU1RBVEVf TUFTSzsKPiArCQkJdmFsIHw9IERFVklDRV9SRUFEWTsKPiArCQkJSTkxNV9XUklURShNSVBJX0RF VklDRV9SRUFEWShwb3J0KSwgdmFsKTsKPiArCQkJdXNsZWVwX3JhbmdlKDEwLCAxNSk7Cj4gKwkJ fQo+ICsKPiArCQkvKiBFbnRlciBVTFBTICovCj4gKwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVW SUNFX1JFQURZKHBvcnQpKTsKPiArCQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsKPiArCQl2YWwg fD0gKFVMUFNfU1RBVEVfRU5URVIgfCBERVZJQ0VfUkVBRFkpOwo+ICsJCUk5MTVfV1JJVEUoTUlQ SV9ERVZJQ0VfUkVBRFkocG9ydCksIHZhbCk7Cj4gKwo+ICsJCS8qIFdhaXQgZm9yIFVMUFMgTm90 IGFjdGl2ZSAqLwo+ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiAr CQkJCU1JUElfQ1RSTChwb3J0KSwgR0xLX1VMUFNfTk9UX0FDVElWRSwKPiArCQkJCUdMS19VTFBT X05PVF9BQ1RJVkUsIDIwKSkKPiArCj4gKwkJLyogRXhpdCBVTFBTICovCj4gKwkJdmFsID0gSTkx NV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBvcnQpKTsKPiArCQl2YWwgJj0gflVMUFNfU1RBVEVf TUFTSzsKPiArCQl2YWwgfD0gKFVMUFNfU1RBVEVfRVhJVCB8IERFVklDRV9SRUFEWSk7Cj4gKwkJ STkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwgdmFsKTsKPiArCj4gKwkJLyogRW50 ZXIgTm9ybWFsIE1vZGUgKi8KPiArCQl2YWwgPSBJOTE1X1JFQUQoTUlQSV9ERVZJQ0VfUkVBRFko cG9ydCkpOwo+ICsJCXZhbCAmPSB+VUxQU19TVEFURV9NQVNLOwo+ICsJCXZhbCB8PSAoVUxQU19T VEFURV9OT1JNQUxfT1BFUkFUSU9OIHwgREVWSUNFX1JFQURZKTsKPiArCQlJOTE1X1dSSVRFKE1J UElfREVWSUNFX1JFQURZKHBvcnQpLCB2YWwpOwo+ICsKPiArCQl0bXAgPSBJOTE1X1JFQUQoTUlQ SV9DVFJMKHBvcnQpKTsKPiArCQl0bXAgJj0gfkdMS19MUF9XQUtFOwo+ICsJCUk5MTVfV1JJVEUo TUlQSV9DVFJMKHBvcnQpLCB0bXApOwo+ICsJfQo+ICsKPiArCS8qIFdhaXQgZm9yIFN0b3Agc3Rh dGUgKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAr CQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQlNSVBJX0NUUkwo cG9ydCksIEdMS19EQVRBX0xBTkVfU1RPUF9TVEFURSwKPiArCQkJCUdMS19EQVRBX0xBTkVfU1RP UF9TVEFURSwgMjApKQo+ICsJCQlEUk1fRVJST1IoIkRhdGUgbGFuZSBub3QgaW4gU1RPUCBzdGF0 ZVxuIik7Cj4gKwl9Cj4gKwo+ICsJLyogV2FpdCBmb3IgQUZFIExBVENIICovCj4gKwlmb3JfZWFj aF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJaWYgKGludGVsX3dhaXRf Zm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ICsJCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpLCBB RkVfTEFUQ0hPVVQsCj4gKwkJCQlBRkVfTEFUQ0hPVVQsIDIwKSkKPiArCQkJRFJNX0VSUk9SKCJE LVBIWSBub3QgZW50ZXJpbmcgTFAtMTEgc3RhdGVcbiIpOwo+ICsJfQo+ICt9Cj4gKwo+ICBzdGF0 aWMgdm9pZCBieHRfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gQEAgLTQ0Miw4ICs1NDUsMTAgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCj4g IAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp Cj4gIAkJdmx2X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gLQllbHNlIGlmIChJU19HRU45 X0xQKGRldl9wcml2KSkKPiArCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCWJ4 dF9kc2lfZGV2aWNlX3JlYWR5KGVuY29kZXIpOwo+ICsJZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShk ZXZfcHJpdikpCj4gKwkJZ2xrX2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPiBAQCAtNjQ5LDE4ICs3NTQsMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Rp c2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJbXNsZWVwKDIpOwo+ICAJ fQo+ICAKPiAtCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAt CQkvKiBQYW5lbCBjb21tYW5kcyBjYW4gYmUgc2VudCB3aGVuIGNsb2NrIGlzIGluIExQMTEgKi8K PiAtCQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCAweDApOwo+ICsJaWYgKCFJ U19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ICsJCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGlu dGVsX2RzaS0+cG9ydHMpIHsKPiArCQkJLyogUGFuZWwgY29tbWFuZHMgY2FuIGJlIHNlbnQgd2hl biBjbG9jayBpcyBpbiBMUDExICovCj4gKwkJCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFko cG9ydCksIDB4MCk7Cj4gIAo+IC0JCWludGVsX2RzaV9yZXNldF9jbG9ja3MoZW5jb2RlciwgcG9y dCk7Cj4gLQkJSTkxNV9XUklURShNSVBJX0VPVF9ESVNBQkxFKHBvcnQpLCBDTE9DS1NUT1ApOwo+ ICsJCQlpbnRlbF9kc2lfcmVzZXRfY2xvY2tzKGVuY29kZXIsIHBvcnQpOwo+ICsJCQlJOTE1X1dS SVRFKE1JUElfRU9UX0RJU0FCTEUocG9ydCksIENMT0NLU1RPUCk7Cj4gIAo+IC0JCXRlbXAgPSBJ OTE1X1JFQUQoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCkpOwo+IC0JCXRlbXAgJj0gflZJRF9NT0RF X0ZPUk1BVF9NQVNLOwo+IC0JCUk5MTVfV1JJVEUoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCksIHRl bXApOwo+ICsJCQl0ZW1wID0gSTkxNV9SRUFEKE1JUElfRFNJX0ZVTkNfUFJHKHBvcnQpKTsKPiAr CQkJdGVtcCAmPSB+VklEX01PREVfRk9STUFUX01BU0s7Cj4gKwkJCUk5MTVfV1JJVEUoTUlQSV9E U0lfRlVOQ19QUkcocG9ydCksIHRlbXApOwo+ICAKPiAtCQlJOTE1X1dSSVRFKE1JUElfREVWSUNF X1JFQURZKHBvcnQpLCAweDEpOwo+ICsJCQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBv cnQpLCAweDEpOwo+ICsJCX0KPiAgCX0KPiAgCS8qIGlmIGRpc2FibGUgcGFja2V0cyBhcmUgc2Vu dCBiZWZvcmUgc2VuZGluZyBzaHV0ZG93biBwYWNrZXQgdGhlbiBpbgo+ICAJICogc29tZSBuZXh0 IGVuYWJsZSBzZXF1ZW5jZSBzZW5kIHR1cm4gb24gcGFja2V0IGVycm9yIGlzIG9ic2VydmVkICov Cj4gQEAgLTY3MCw3ICs3NzcsNzMgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Rpc2FibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJd2FpdF9mb3JfZHNpX2ZpZm9fZW1wdHko aW50ZWxfZHNpLCBwb3J0KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZHNpX2NsZWFy X2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZv aWQgZ2xrX2RzaV9lbnRlcl9sb3dfcG93ZXJfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsJ dTMyIHZhbDsKPiArCj4gKwkvKiBFbnRlciBVTFBTICovCj4gKwlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVWSUNF X1JFQURZKHBvcnQpKTsKPiArCQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsKPiArCQl2YWwgfD0g KFVMUFNfU1RBVEVfRU5URVIgfCBERVZJQ0VfUkVBRFkpOwo+ICsJCUk5MTVfV1JJVEUoTUlQSV9E RVZJQ0VfUkVBRFkocG9ydCksIHZhbCk7Cj4gKwl9Cj4gKwo+ICsJLyogV2FpdCBmb3IgTUlQSSBQ SFkgc3RhdHVzIGJpdCB0byB1bnNldCAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50 ZWxfZHNpLT5wb3J0cykgewo+ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJp diwKPiArCQkJCQkgICAgTUlQSV9DVFJMKHBvcnQpLAo+ICsJCQkJCSAgICBHTEtfUEhZX1NUQVRV U19QT1JUX1JFQURZLCAwLCAyMCkpCj4gKwkJCURSTV9FUlJPUigiUEhZIGlzIG5vdCB0dXJuaW5n IE9GRlxuIik7Cj4gKwl9Cj4gKwo+ICsJLyogV2FpdCBmb3IgUHdyIEFDSyBiaXQgdG8gdW5zZXQg Ki8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQlp ZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQkJICAgIE1JUElfQ1RS TChwb3J0KSwKPiArCQkJCQkgICAgR0xLX01JUElJT19QT1JUX1BPV0VSRUQsIDAsIDIwKSkKPiAr CQkJRFJNX0VSUk9SKCJNSVBJIElPIFBvcnQgaXMgbm90IHBvd2VyZ2F0ZWRcbiIpOwo+ICsJfQo+ ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnbGtfZHNpX2Rpc2FibGVfbWlwaV9pbyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCWVudW0g cG9ydCBwb3J0Owo+ICsJdTMyIHRtcDsKPiArCj4gKwkvKiBQdXQgdGhlIElPIGludG8gcmVzZXQg Ki8KPiArCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwoUE9SVF9BKSk7Cj4gKwl0bXAgJj0gfkdM S19NSVBJSU9fUkVTRVRfUkVMRUFTRUQ7Cj4gKwlJOTE1X1dSSVRFKE1JUElfQ1RSTChQT1JUX0Ep LCB0bXApOwo+ICsKPiArCS8qIFdhaXQgZm9yIE1JUEkgUEhZIHN0YXR1cyBiaXQgdG8gdW5zZXQg Ki8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQlp ZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQkJICAgIE1JUElfQ1RS TChwb3J0KSwKPiArCQkJCQkgICAgR0xLX1BIWV9TVEFUVVNfUE9SVF9SRUFEWSwgMCwgMjApKQo+ ICsJCQlEUk1fRVJST1IoIlBIWSBpcyBub3QgdHVybmluZyBPRkZcbiIpOwo+ICsJfQo+ICsKPiAr CS8qIENsZWFyIE1JUEkgbW9kZSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxf ZHNpLT5wb3J0cykgewo+ICsJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwo+ICsJ CXRtcCAmPSB+R0xLX01JUElJT19FTkFCTEU7Cj4gKwkJSTkxNV9XUklURShNSVBJX0NUUkwocG9y dCksIHRtcCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGdsa19kc2lfY2xlYXJfZGV2 aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlnbGtfZHNp X2VudGVyX2xvd19wb3dlcl9tb2RlKGVuY29kZXIpOwo+ICsJZ2xrX2RzaV9kaXNhYmxlX21pcGlf aW8oZW5jb2Rlcik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHZsdl9kc2lfY2xlYXJfZGV2aWNl X3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAg CXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXIt PmJhc2UpOwo+IEBAIC03MTMsNiArODg2LDE3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9jbGVh cl9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAl9Cj4gIH0K PiAgCj4gK3N0YXRpYyB2b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsKPiArCWlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fAo+ICsJICAgIElT X0JST1hUT04oZGV2X3ByaXYpKQo+ICsJCXZsdl9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KGVuY29k ZXIpOwo+ICsJZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gKwkJZ2xrX2RzaV9j bGVhcl9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGludGVs X2RzaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCQkgICBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwg T3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==