From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [GLK MIPI DSI V7] drm/i915/glk: Add MIPIIO Enable/disable sequence Date: Wed, 01 Mar 2017 16:13:55 +0200 Message-ID: <87bmtlccf0.fsf@intel.com> References: <1488352893-29916-1-git-send-email-madhav.chauhan@intel.com> <1488352893-29916-2-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 1484F6E943 for ; Wed, 1 Mar 2017 14:24:41 +0000 (UTC) In-Reply-To: <1488352893-29916-2-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 T24gV2VkLCAwMSBNYXIgMjAxNywgTWFkaGF2IENoYXVoYW4gPG1hZGhhdi5jaGF1aGFuQGludGVs LmNvbT4gd3JvdGU6Cj4gRnJvbTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPgo+IHYy OiBBZGRyZXNzZWQgSmFuaSdzIFJldmlldyBjb21tZW50cyhyZW5hbWVkIGJpdCBmaWVsZCBtYWNy b3MpCj4gdjM6IEphbmkncyBSZXZpZXcgY29tbWVudCBmb3IgYWxpZ25pbmcgY29kZSB0byBwbGF0 Zm9ybXMgYW5kIGFkZGVkCj4gd3JhcHBlciBmdW5jdGlvbnMuCj4gdjQ6IENvcnJlY3RlZCBlbmFi bGUvZGlzYWJsZSBzZXVxZW5jZSBhcyBwZXIgQlNQRUMKPiB2NTogQ29ycmVjdGVkIHdhaXRpbmcg dHdpY2UgZm9yIHNhbWUgYml0IChSZXZpZXcgY29tbWVudHM6IEphbmkpCj4gdjY6IFJlYmFzZWQg dG8gSGFuJ3MgcGF0Y2hlcyhkc2kgcmVzdHJ1Y3R1cmluZyBjb2RlKQo+Cj4gU2lnbmVkLW9mZi1i eTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYWRoYXYg Q2hhdWhhbiA8bWFkaGF2LmNoYXVoYW5AaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYyB8IDIwNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gaW5kZXggMjBlZDc5OS4uOGU5N2Jh ZTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC0zNTcsNiArMzU3LDEwOSBA QCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZ2xr X2RzaV9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwllbnVtIHBvcnQgcG9ydDsKPiArCXUzMiB0bXAsIHZhbDsK PiArCj4gKwkvKiBTZXQgdGhlIE1JUEkgbW9kZQo+ICsJICogSWYgTUlQSV9Nb2RlIGlzIG9mZiwg dGhlbiB3cml0aW5nIHRvIExQX1dha2UgYml0IGlzIG5vdCByZWZsZWN0aW5nLgo+ICsJICogUG93 ZXIgT04gTUlQSSBJTyBmaXJzdCBhbmQgdGhlbiB3cml0ZSBpbnRvIElPIHJlc2V0IGFuZCBMUCB3 YWtlIGJpdHMKPiArCSAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5w b3J0cykgewo+ICsJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwo+ICsJCUk5MTVf V1JJVEUoTUlQSV9DVFJMKHBvcnQpLCB0bXAgfCBHTEtfTUlQSUlPX0VOQUJMRSk7Cj4gKwl9Cj4g Kwo+ICsJLyogUHV0IHRoZSBJTyBpbnRvIHJlc2V0ICovCj4gKwl0bXAgPSBJOTE1X1JFQUQoTUlQ SV9DVFJMKFBPUlRfQSkpOwo+ICsJdG1wICY9IH5HTEtfTUlQSUlPX1JFU0VUX1JFTEVBU0VEOwo+ ICsJSTkxNV9XUklURShNSVBJX0NUUkwoUE9SVF9BKSwgdG1wKTsKPiArCj4gKwkvKiBQcm9ncmFt IExQIFdha2UgKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMp IHsKPiArCQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiArCQl0bXAgfD0gR0xL X0xQX1dBS0U7Cj4gKwkJSTkxNV9XUklURShNSVBJX0NUUkwocG9ydCksIHRtcCk7Cj4gKwl9Cj4g Kwo+ICsJLyogV2FpdCBmb3IgUHdyIEFDSyAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwg aW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZf cHJpdiwKPiArCQkJCU1JUElfQ1RSTChwb3J0KSwgR0xLX01JUElJT19QT1JUX1BPV0VSRUQsCj4g KwkJCQlHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwgMjApKQo+ICsJCQlEUk1fRVJST1IoIk1JUElP IHBvcnQgaXMgcG93ZXJnYXRlZFxuIik7Cj4gKwl9Cj4gKwo+ICsJLyogV2FpdCBmb3IgTUlQSSBQ SFkgc3RhdHVzIGJpdCB0byBzZXQgKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVs X2RzaS0+cG9ydHMpIHsKPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYs Cj4gKwkJCQlNSVBJX0NUUkwocG9ydCksIEdMS19QSFlfU1RBVFVTX1BPUlRfUkVBRFksCj4gKwkJ CQlHTEtfUEhZX1NUQVRVU19QT1JUX1JFQURZLCAyMCkpCj4gKwkJCURSTV9FUlJPUigiUEhZIGlz IG5vdCBPTlxuIik7Cj4gKwl9Cj4gKwo+ICsJLyogR2V0IElPIG91dCBvZiByZXNldCAqLwo+ICsJ dG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChQT1JUX0EpKTsKPiArCUk5MTVfV1JJVEUoTUlQSV9D VFJMKFBPUlRfQSksIHRtcCB8IEdMS19NSVBJSU9fUkVTRVRfUkVMRUFTRUQpOwo+ICsKPiArCS8q IEdldCBJTyBvdXQgb2YgTG93IHBvd2VyIHN0YXRlKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBv cnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiArCQlpZiAoIShJOTE1X1JFQUQoTUlQSV9ERVZJQ0Vf UkVBRFkocG9ydCkpICYgREVWSUNFX1JFQURZKSkgewo+ICsJCQl2YWwgPSBJOTE1X1JFQUQoTUlQ SV9ERVZJQ0VfUkVBRFkocG9ydCkpOwo+ICsJCQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsKPiAr CQkJdmFsIHw9IERFVklDRV9SRUFEWTsKPiArCQkJSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFE WShwb3J0KSwgdmFsKTsKPiArCQkJdXNsZWVwX3JhbmdlKDEwLCAxNSk7Cj4gKwkJfQo+ICsKPiAr CQkvKiBFbnRlciBVTFBTICovCj4gKwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVWSUNFX1JFQURZ KHBvcnQpKTsKPiArCQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsKPiArCQl2YWwgfD0gKFVMUFNf U1RBVEVfRU5URVIgfCBERVZJQ0VfUkVBRFkpOwo+ICsJCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0Vf UkVBRFkocG9ydCksIHZhbCk7Cj4gKwo+ICsJCS8qIFdhaXQgZm9yIFVMUFMgTm90IGFjdGl2ZSAq Lwo+ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCU1JUElf Q1RSTChwb3J0KSwgR0xLX1VMUFNfTk9UX0FDVElWRSwKPiArCQkJCUdMS19VTFBTX05PVF9BQ1RJ VkUsIDIwKSkKCgpBdWNoLCBJIG1pc3NlZCB0aGlzLiBUaGUgaWYgc3RhdGVtZW50IGNvdmVycyB0 aGUgbmV4dCBsaW5lLCBhbmQgbXkKY29tcGlsZXIgZGlkbid0IGNvbXBsYWluLiBJIGFscmVhZHkg cHVzaGVkIHRoaXMsIHNvIHBsZWFzZSBzZW5kIGEKZm9sbG93LXVwIGZpeCBvbiB0b3AuCgpCUiwK SmFuaS4KCj4gKwo+ICsJCS8qIEV4aXQgVUxQUyAqLwo+ICsJCXZhbCA9IEk5MTVfUkVBRChNSVBJ X0RFVklDRV9SRUFEWShwb3J0KSk7Cj4gKwkJdmFsICY9IH5VTFBTX1NUQVRFX01BU0s7Cj4gKwkJ dmFsIHw9IChVTFBTX1NUQVRFX0VYSVQgfCBERVZJQ0VfUkVBRFkpOwo+ICsJCUk5MTVfV1JJVEUo TUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIHZhbCk7Cj4gKwo+ICsJCS8qIEVudGVyIE5vcm1hbCBN b2RlICovCj4gKwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBvcnQpKTsKPiAr CQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsKPiArCQl2YWwgfD0gKFVMUFNfU1RBVEVfTk9STUFM X09QRVJBVElPTiB8IERFVklDRV9SRUFEWSk7Cj4gKwkJSTkxNV9XUklURShNSVBJX0RFVklDRV9S RUFEWShwb3J0KSwgdmFsKTsKPiArCj4gKwkJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwb3J0 KSk7Cj4gKwkJdG1wICY9IH5HTEtfTFBfV0FLRTsKPiArCQlJOTE1X1dSSVRFKE1JUElfQ1RSTChw b3J0KSwgdG1wKTsKPiArCX0KPiArCj4gKwkvKiBXYWl0IGZvciBTdG9wIHN0YXRlICovCj4gKwlm b3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJaWYgKGludGVs X3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ICsJCQkJTUlQSV9DVFJMKHBvcnQpLCBHTEtf REFUQV9MQU5FX1NUT1BfU1RBVEUsCj4gKwkJCQlHTEtfREFUQV9MQU5FX1NUT1BfU1RBVEUsIDIw KSkKPiArCQkJRFJNX0VSUk9SKCJEYXRlIGxhbmUgbm90IGluIFNUT1Agc3RhdGVcbiIpOwo+ICsJ fQo+ICsKPiArCS8qIFdhaXQgZm9yIEFGRSBMQVRDSCAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQo cG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3Rl cihkZXZfcHJpdiwKPiArCQkJCUJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSwgQUZFX0xBVENIT1VU LAo+ICsJCQkJQUZFX0xBVENIT1VULCAyMCkpCj4gKwkJCURSTV9FUlJPUigiRC1QSFkgbm90IGVu dGVyaW5nIExQLTExIHN0YXRlXG4iKTsKPiArCX0KPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgYnh0 X2RzaV9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+IEBAIC00MjksMTEgKzUzMiw3OSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGV2 aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgCWlmIChJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQl2bHZf ZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiAtCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3By aXYpKQo+ICsJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJYnh0X2RzaV9kZXZp Y2VfcmVhZHkoZW5jb2Rlcik7Cj4gKwllbHNlIGlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkK PiArCQlnbGtfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZv aWQgaW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiArc3RhdGljIHZvaWQgZ2xrX2RzaV9lbnRlcl9sb3dfcG93ZXJfbW9kZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCWVu dW0gcG9ydCBwb3J0Owo+ICsJdTMyIHZhbDsKPiArCj4gKwkvKiBFbnRlciBVTFBTICovCj4gKwlm b3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJdmFsID0gSTkx NV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBvcnQpKTsKPiArCQl2YWwgJj0gflVMUFNfU1RBVEVf TUFTSzsKPiArCQl2YWwgfD0gKFVMUFNfU1RBVEVfRU5URVIgfCBERVZJQ0VfUkVBRFkpOwo+ICsJ CUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIHZhbCk7Cj4gKwl9Cj4gKwo+ICsJ LyogV2FpdCBmb3IgTUlQSSBQSFkgc3RhdHVzIGJpdCB0byB1bnNldCAqLwo+ICsJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCWlmIChpbnRlbF93YWl0X2Zv cl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCQkgICAgTUlQSV9DVFJMKHBvcnQpLAo+ICsJCQkJ CSAgICBHTEtfUEhZX1NUQVRVU19QT1JUX1JFQURZLCAwLCAyMCkpCj4gKwkJCURSTV9FUlJPUigi UEhZIGlzIG5vdCB0dXJuaW5nIE9GRlxuIik7Cj4gKwl9Cj4gKwo+ICsJLyogV2FpdCBmb3IgUHdy IEFDSyBiaXQgdG8gdW5zZXQgKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2Rz aS0+cG9ydHMpIHsKPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4g KwkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKPiArCQkJCQkgICAgR0xLX01JUElJT19QT1JUX1BP V0VSRUQsIDAsIDIwKSkKPiArCQkJRFJNX0VSUk9SKCJNSVBJIElPIFBvcnQgaXMgbm90IHBvd2Vy Z2F0ZWRcbiIpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnbGtfZHNpX2Rpc2FibGVf bWlwaV9pbyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g KwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVy LT5iYXNlKTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsJdTMyIHRtcDsKPiArCj4gKwkvKiBQdXQg dGhlIElPIGludG8gcmVzZXQgKi8KPiArCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwoUE9SVF9B KSk7Cj4gKwl0bXAgJj0gfkdMS19NSVBJSU9fUkVTRVRfUkVMRUFTRUQ7Cj4gKwlJOTE1X1dSSVRF KE1JUElfQ1RSTChQT1JUX0EpLCB0bXApOwo+ICsKPiArCS8qIFdhaXQgZm9yIE1JUEkgUEhZIHN0 YXR1cyBiaXQgdG8gdW5zZXQgKi8KPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2Rz aS0+cG9ydHMpIHsKPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4g KwkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKPiArCQkJCQkgICAgR0xLX1BIWV9TVEFUVVNfUE9S VF9SRUFEWSwgMCwgMjApKQo+ICsJCQlEUk1fRVJST1IoIlBIWSBpcyBub3QgdHVybmluZyBPRkZc biIpOwo+ICsJfQo+ICsKPiArCS8qIENsZWFyIE1JUEkgbW9kZSAqLwo+ICsJZm9yX2VhY2hfZHNp X3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICsJCXRtcCA9IEk5MTVfUkVBRChNSVBJ X0NUUkwocG9ydCkpOwo+ICsJCXRtcCAmPSB+R0xLX01JUElJT19FTkFCTEU7Cj4gKwkJSTkxNV9X UklURShNSVBJX0NUUkwocG9ydCksIHRtcCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGdsa19kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICt7Cj4gKwlnbGtfZHNpX2VudGVyX2xvd19wb3dlcl9tb2RlKGVuY29kZXIpOwo+ICsJZ2xr X2RzaV9kaXNhYmxlX21pcGlfaW8oZW5jb2Rlcik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHZs dl9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29k ZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19p bnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+IEBAIC02NzAsNiArODQxLDE3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RzaV9wcmVfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFk eShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwo+ICsJ aWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8 Cj4gKwkgICAgSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gKwkJdmx2X2RzaV9jbGVhcl9kZXZpY2Vf cmVhZHkoZW5jb2Rlcik7Cj4gKwllbHNlIGlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiAr CQlnbGtfZHNpX2NsZWFyX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiArfQo+ICsKPiAgc3RhdGlj IHZvaWQgaW50ZWxfZHNpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJ CSAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+IEBAIC0xMzE0LDE4 ICsxNDk2LDIwIEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV91bnByZXBhcmUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCXUzMiB2YWw7Cj4gIAo+ IC0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+IC0JCS8qIFBh bmVsIGNvbW1hbmRzIGNhbiBiZSBzZW50IHdoZW4gY2xvY2sgaXMgaW4gTFAxMSAqLwo+IC0JCUk5 MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIDB4MCk7Cj4gKwlpZiAoIUlTX0dFTUlO SUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwkJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNp LT5wb3J0cykgewo+ICsJCQkvKiBQYW5lbCBjb21tYW5kcyBjYW4gYmUgc2VudCB3aGVuIGNsb2Nr IGlzIGluIExQMTEgKi8KPiArCQkJSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwg MHgwKTsKPiAgCj4gLQkJaW50ZWxfZHNpX3Jlc2V0X2Nsb2NrcyhlbmNvZGVyLCBwb3J0KTsKPiAt CQlJOTE1X1dSSVRFKE1JUElfRU9UX0RJU0FCTEUocG9ydCksIENMT0NLU1RPUCk7Cj4gKwkJCWlu dGVsX2RzaV9yZXNldF9jbG9ja3MoZW5jb2RlciwgcG9ydCk7Cj4gKwkJCUk5MTVfV1JJVEUoTUlQ SV9FT1RfRElTQUJMRShwb3J0KSwgQ0xPQ0tTVE9QKTsKPiAgCj4gLQkJdmFsID0gSTkxNV9SRUFE KE1JUElfRFNJX0ZVTkNfUFJHKHBvcnQpKTsKPiAtCQl2YWwgJj0gflZJRF9NT0RFX0ZPUk1BVF9N QVNLOwo+IC0JCUk5MTVfV1JJVEUoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCksIHZhbCk7Cj4gKwkJ CXZhbCA9IEk5MTVfUkVBRChNSVBJX0RTSV9GVU5DX1BSRyhwb3J0KSk7Cj4gKwkJCXZhbCAmPSB+ VklEX01PREVfRk9STUFUX01BU0s7Cj4gKwkJCUk5MTVfV1JJVEUoTUlQSV9EU0lfRlVOQ19QUkco cG9ydCksIHZhbCk7Cj4gIAo+IC0JCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCks IDB4MSk7Cj4gKwkJCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIDB4MSk7Cj4g KwkJfQo+ICAJfQo+ICB9CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hu b2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=