From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [GLK MIPI DSI V4 3/8] drm/i915/glk: Add MIPIIO Enable/disable sequence Date: Wed, 08 Feb 2017 16:58:39 +0200 Message-ID: <87a89wu3ts.fsf@intel.com> References: <1486471392-1803-1-git-send-email-madhav.chauhan@intel.com> <1486471392-1803-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 mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0FE386E8C8 for ; Wed, 8 Feb 2017 14:58:43 +0000 (UTC) In-Reply-To: <1486471392-1803-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 T24gVHVlLCAwNyBGZWIgMjAxNywgTWFkaGF2IENoYXVoYW4gPG1hZGhhdi5jaGF1aGFuQGludGVs LmNvbT4gd3JvdGU6Cj4gRnJvbTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPgo+IHYy OiBBZGRyZXNzZWQgSmFuaSdzIFJldmlldyBjb21tZW50cyhyZW5hbWVkIGJpdCBmaWVsZCBtYWNy b3MpCj4gdjM6IEphbmkncyBSZXZpZXcgY29tbWVudCBmb3IgYWxpZ25pbmcgY29kZSB0byBwbGF0 Zm9ybXMgYW5kIGFkZGVkCj4gd3JhcHBlciBmdW5jdGlvbnMuCj4gdjQ6IENvcnJlY3RlZCBlbmFi bGUvZGlzYWJsZSBzZXVxZW5jZSBhcyBwZXIgQlNQRUMKPgo+IFNpZ25lZC1vZmYtYnk6IERlZXBh ayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFkaGF2IENoYXVoYW4g PG1hZGhhdi5jaGF1aGFuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMgfCAyMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IGluZGV4IGJlODEyODMuLjBkZWYyMTQgMTAwNjQ0 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 UklURShNSVBJX0NUUkwoUE9SVF9BKSwgdG1wKTsKPiArCgpTaW5jZSB5b3UndmUgc3BsaXQgZ2xr X2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkgaW50byB0d28gZnVuY3Rpb25zLCBpdAp3b3VsZCBzdGFu ZCB0byByZWFzb24gdG8gYWxzbyBzcGxpdCB0aGlzIG9uZSBhY2NvcmRpbmdseS4KCkJSLApKYW5p LgoKPiArCS8qIFByb2dyYW0gTFAgV2FrZSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwg aW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkp Owo+ICsJCXRtcCB8PSBHTEtfTFBfV0FLRTsKPiArCQlJOTE1X1dSSVRFKE1JUElfQ1RSTChwb3J0 KSwgdG1wKTsKPiArCX0KPiArCj4gKwkvKiBXYWl0IGZvciBQd3IgQUNLICovCj4gKwlmb3JfZWFj aF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJaWYgKGludGVsX3dhaXRf Zm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ICsJCQkJTUlQSV9DVFJMKHBvcnQpLCBHTEtfTUlQSUlP X1BPUlRfUE9XRVJFRCwKPiArCQkJCUdMS19NSVBJSU9fUE9SVF9QT1dFUkVELCAyMCkpCj4gKwkJ CURSTV9FUlJPUigiUG93ZXIgQUNLIG5vdCByZWNlaXZlZFxuIik7Cj4gKwl9Cj4gKwo+ICsJLyog V2FpdCBmb3IgTUlQSSBQSFkgc3RhdHVzIGJpdCB0byBzZXQgKi8KPiArCWZvcl9lYWNoX2RzaV9w b3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVn aXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQlNSVBJX0NUUkwocG9ydCksIEdMS19NSVBJSU9fUE9SVF9Q T1dFUkVELAo+ICsJCQkJR0xLX01JUElJT19QT1JUX1BPV0VSRUQsIDIwKSkKPiArCQkJRFJNX0VS Uk9SKCJQSFkgaXMgbm90IE9OXG4iKTsKPiArCX0KPiArCj4gKwkvKiBHZXQgSU8gb3V0IG9mIHJl c2V0ICovCj4gKwl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKFBPUlRfQSkpOwo+ICsJSTkxNV9X UklURShNSVBJX0NUUkwoUE9SVF9BKSwgdG1wIHwgR0xLX01JUElJT19SRVNFVF9SRUxFQVNFRCk7 Cj4gKwo+ICsJLyogR2V0IElPIG91dCBvZiBMb3cgcG93ZXIgc3RhdGUqLwo+ICsJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCWlmICghKEk5MTVfUkVBRChN SVBJX0RFVklDRV9SRUFEWShwb3J0KSkgJiBERVZJQ0VfUkVBRFkpKSB7Cj4gKwkJCXZhbCA9IEk5 MTVfUkVBRChNSVBJX0RFVklDRV9SRUFEWShwb3J0KSk7Cj4gKwkJCXZhbCAmPSB+VUxQU19TVEFU RV9NQVNLOwo+ICsJCQl2YWwgfD0gREVWSUNFX1JFQURZOwo+ICsJCQlJOTE1X1dSSVRFKE1JUElf REVWSUNFX1JFQURZKHBvcnQpLCB2YWwpOwo+ICsJCQl1c2xlZXBfcmFuZ2UoMTAsIDE1KTsKPiAr CQl9Cj4gKwo+ICsJCS8qIEVudGVyIFVMUFMgKi8KPiArCQl2YWwgPSBJOTE1X1JFQUQoTUlQSV9E RVZJQ0VfUkVBRFkocG9ydCkpOwo+ICsJCXZhbCAmPSB+VUxQU19TVEFURV9NQVNLOwo+ICsJCXZh bCB8PSAoVUxQU19TVEFURV9FTlRFUiB8IERFVklDRV9SRUFEWSk7Cj4gKwkJSTkxNV9XUklURShN SVBJX0RFVklDRV9SRUFEWShwb3J0KSwgdmFsKTsKPiArCj4gKwkJLyogV2FpdCBmb3IgVUxQUyBO b3QgYWN0aXZlICovCj4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ ICsJCQkJTUlQSV9DVFJMKHBvcnQpLCBHTEtfVUxQU19OT1RfQUNUSVZFLAo+ICsJCQkJR0xLX1VM UFNfTk9UX0FDVElWRSwgMjApKQo+ICsKPiArCQkvKiBFeGl0IFVMUFMgKi8KPiArCQl2YWwgPSBJ OTE1X1JFQUQoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpOwo+ICsJCXZhbCAmPSB+VUxQU19TVEFU RV9NQVNLOwo+ICsJCXZhbCB8PSAoVUxQU19TVEFURV9FWElUIHwgREVWSUNFX1JFQURZKTsKPiAr CQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCB2YWwpOwo+ICsKPiArCQkvKiBF bnRlciBOb3JtYWwgTW9kZSAqLwo+ICsJCXZhbCA9IEk5MTVfUkVBRChNSVBJX0RFVklDRV9SRUFE WShwb3J0KSk7Cj4gKwkJdmFsICY9IH5VTFBTX1NUQVRFX01BU0s7Cj4gKwkJdmFsIHw9IChVTFBT X1NUQVRFX05PUk1BTF9PUEVSQVRJT04gfCBERVZJQ0VfUkVBRFkpOwo+ICsJCUk5MTVfV1JJVEUo TUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIHZhbCk7Cj4gKwo+ICsJCXRtcCA9IEk5MTVfUkVBRChN SVBJX0NUUkwocG9ydCkpOwo+ICsJCXRtcCAmPSB+R0xLX0xQX1dBS0U7Cj4gKwkJSTkxNV9XUklU RShNSVBJX0NUUkwocG9ydCksIHRtcCk7Cj4gKwl9Cj4gKwo+ICsJLyogV2FpdCBmb3IgU3RvcCBz dGF0ZSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCU1JUElfQ1RS TChwb3J0KSwgR0xLX0RBVEFfTEFORV9TVE9QX1NUQVRFLAo+ICsJCQkJR0xLX0RBVEFfTEFORV9T VE9QX1NUQVRFLCAyMCkpCj4gKwkJCURSTV9FUlJPUigiRGF0ZSBsYW5lIG5vdCBpbiBTVE9QIHN0 YXRlXG4iKTsKPiArCX0KPiArCj4gKwkvKiBXYWl0IGZvciBBRkUgTEFUQ0ggKi8KPiArCWZvcl9l YWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQlpZiAoaW50ZWxfd2Fp dF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCks IEFGRV9MQVRDSE9VVCwKPiArCQkJCUFGRV9MQVRDSE9VVCwgMjApKQo+ICsJCQlEUk1fRVJST1Io IkQtUEhZIG5vdCBlbnRlcmluZyBMUC0xMSBzdGF0ZVxuIik7Cj4gKwl9Cj4gK30KPiArCj4gIHN0 YXRpYyB2b2lkIGJ4dF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiBAQCAtNDQyLDggKzU0NSwxMCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAK PiAgCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2 KSkKPiAgCQl2bHZfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiAtCWVsc2UgaWYgKElTX0dF TjlfTFAoZGV2X3ByaXYpKQo+ICsJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJ Ynh0X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gKwllbHNlIGlmIChJU19HRU1JTklMQUtF KGRldl9wcml2KSkKPiArCQlnbGtfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+IEBAIC02MzcsMTggKzc0MiwyMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCQltc2xlZXAoMik7Cj4g IAl9Cj4gIAo+IC0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ IC0JCS8qIFBhbmVsIGNvbW1hbmRzIGNhbiBiZSBzZW50IHdoZW4gY2xvY2sgaXMgaW4gTFAxMSAq Lwo+IC0JCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIDB4MCk7Cj4gKwlpZiAo IUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwkJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwg aW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCQkvKiBQYW5lbCBjb21tYW5kcyBjYW4gYmUgc2VudCB3 aGVuIGNsb2NrIGlzIGluIExQMTEgKi8KPiArCQkJSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFE WShwb3J0KSwgMHgwKTsKPiAgCj4gLQkJaW50ZWxfZHNpX3Jlc2V0X2Nsb2NrcyhlbmNvZGVyLCBw b3J0KTsKPiAtCQlJOTE1X1dSSVRFKE1JUElfRU9UX0RJU0FCTEUocG9ydCksIENMT0NLU1RPUCk7 Cj4gKwkJCWludGVsX2RzaV9yZXNldF9jbG9ja3MoZW5jb2RlciwgcG9ydCk7Cj4gKwkJCUk5MTVf V1JJVEUoTUlQSV9FT1RfRElTQUJMRShwb3J0KSwgQ0xPQ0tTVE9QKTsKPiAgCj4gLQkJdGVtcCA9 IEk5MTVfUkVBRChNSVBJX0RTSV9GVU5DX1BSRyhwb3J0KSk7Cj4gLQkJdGVtcCAmPSB+VklEX01P REVfRk9STUFUX01BU0s7Cj4gLQkJSTkxNV9XUklURShNSVBJX0RTSV9GVU5DX1BSRyhwb3J0KSwg dGVtcCk7Cj4gKwkJCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCkpOwo+ ICsJCQl0ZW1wICY9IH5WSURfTU9ERV9GT1JNQVRfTUFTSzsKPiArCQkJSTkxNV9XUklURShNSVBJ X0RTSV9GVU5DX1BSRyhwb3J0KSwgdGVtcCk7Cj4gIAo+IC0JCUk5MTVfV1JJVEUoTUlQSV9ERVZJ Q0VfUkVBRFkocG9ydCksIDB4MSk7Cj4gKwkJCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFko cG9ydCksIDB4MSk7Cj4gKwkJfQo+ICAJfQo+ICAJLyogaWYgZGlzYWJsZSBwYWNrZXRzIGFyZSBz ZW50IGJlZm9yZSBzZW5kaW5nIHNodXRkb3duIHBhY2tldCB0aGVuIGluCj4gIAkgKiBzb21lIG5l eHQgZW5hYmxlIHNlcXVlbmNlIHNlbmQgdHVybiBvbiBwYWNrZXQgZXJyb3IgaXMgb2JzZXJ2ZWQg Ki8KPiBAQCAtNjU4LDcgKzc2NSw3MyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCQl3YWl0X2Zvcl9kc2lfZmlmb19lbXB0 eShpbnRlbF9kc2ksIHBvcnQpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kc2lfY2xl YXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMg dm9pZCBnbGtfZHNpX2VudGVyX2xvd19wb3dlcl9tb2RlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9 IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4g Kwl1MzIgdmFsOwo+ICsKPiArCS8qIEVudGVyIFVMUFMgKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0 KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQl2YWwgPSBJOTE1X1JFQUQoTUlQSV9ERVZJ Q0VfUkVBRFkocG9ydCkpOwo+ICsJCXZhbCAmPSB+VUxQU19TVEFURV9NQVNLOwo+ICsJCXZhbCB8 PSAoVUxQU19TVEFURV9FTlRFUiB8IERFVklDRV9SRUFEWSk7Cj4gKwkJSTkxNV9XUklURShNSVBJ X0RFVklDRV9SRUFEWShwb3J0KSwgdmFsKTsKPiArCX0KPiArCj4gKwkvKiBXYWl0IGZvciBNSVBJ IFBIWSBzdGF0dXMgYml0IHRvIHVuc2V0ICovCj4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBp bnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9w cml2LAo+ICsJCQkJCSAgICBNSVBJX0NUUkwocG9ydCksCj4gKwkJCQkJICAgIEdMS19QSFlfU1RB VFVTX1BPUlRfUkVBRFksIDAsIDIwKSkKPiArCQkJRFJNX0VSUk9SKCJQSFkgaXMgbm90IHR1cm5p bmcgT0ZGXG4iKTsKPiArCX0KPiArCj4gKwkvKiBXYWl0IGZvciBQd3IgQUNLIGJpdCB0byB1bnNl dCAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICsJ CWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCQkgICAgTUlQSV9D VFJMKHBvcnQpLAo+ICsJCQkJCSAgICBHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwgMCwgMjApKQo+ ICsJCQlEUk1fRVJST1IoIk1JUEkgSU8gUG9ydCBpcyBub3QgcG93ZXJnYXRlZFxuIik7Cj4gKwl9 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGdsa19kc2lfZGlzYWJsZV9taXBpX2lvKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJZW51 bSBwb3J0IHBvcnQ7Cj4gKwl1MzIgdG1wOwo+ICsKPiArCS8qIFB1dCB0aGUgSU8gaW50byByZXNl dCAqLwo+ICsJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChQT1JUX0EpKTsKPiArCXRtcCAmPSB+ R0xLX01JUElJT19SRVNFVF9SRUxFQVNFRDsKPiArCUk5MTVfV1JJVEUoTUlQSV9DVFJMKFBPUlRf QSksIHRtcCk7Cj4gKwo+ICsJLyogV2FpdCBmb3IgTUlQSSBQSFkgc3RhdHVzIGJpdCB0byB1bnNl dCAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICsJ CWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCQkgICAgTUlQSV9D VFJMKHBvcnQpLAo+ICsJCQkJCSAgICBHTEtfUEhZX1NUQVRVU19QT1JUX1JFQURZLCAwLCAyMCkp Cj4gKwkJCURSTV9FUlJPUigiUEhZIGlzIG5vdCB0dXJuaW5nIE9GRlxuIik7Cj4gKwl9Cj4gKwo+ ICsJLyogQ2xlYXIgTUlQSSBtb2RlICovCj4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRl bF9kc2ktPnBvcnRzKSB7Cj4gKwkJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwb3J0KSk7Cj4g KwkJdG1wICY9IH5HTEtfTUlQSUlPX0VOQUJMRTsKPiArCQlJOTE1X1dSSVRFKE1JUElfQ1RSTChw b3J0KSwgdG1wKTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2xrX2RzaV9jbGVhcl9k ZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCWdsa19k c2lfZW50ZXJfbG93X3Bvd2VyX21vZGUoZW5jb2Rlcik7Cj4gKwlnbGtfZHNpX2Rpc2FibGVfbWlw aV9pbyhlbmNvZGVyKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdmx2X2RzaV9jbGVhcl9kZXZp Y2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ ICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7Cj4gQEAgLTcwMSw2ICs4NzQsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Ns ZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCX0KPiAg fQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwo+ICsJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8Cj4gKwkgICAg SVNfQlJPWFRPTihkZXZfcHJpdikpCj4gKwkJdmx2X2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoZW5j b2Rlcik7Cj4gKwllbHNlIGlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiArCQlnbGtfZHNp X2NsZWFyX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgaW50 ZWxfZHNpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJ CSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJCSAgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQoKLS0gCkphbmkgTmlrdWxhLCBJbnRl bCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK