From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [GLK MIPI DSI V2 3/9] drm/i915/glk: Add MIPIIO Enable/disable sequence Date: Tue, 27 Dec 2016 16:47:40 +0200 Message-ID: <87bmvx4eer.fsf@intel.com> References: <1481792500-30863-1-git-send-email-madhav.chauhan@intel.com> <1481792500-30863-4-git-send-email-madhav.chauhan@intel.com> <87wpeqka8y.fsf@intel.com> <87h95p4kkz.fsf@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 5703C89740 for ; Tue, 27 Dec 2016 14:47:48 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Chauhan, Madhav" , "intel-gfx@lists.freedesktop.org" Cc: "Conselvan De Oliveira, Ander" , Deepak M , "Kumar, Shobhit" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyNyBEZWMgMjAxNiwgIkNoYXVoYW4sIE1hZGhhdiIgPG1hZGhhdi5jaGF1aGFuQGlu dGVsLmNvbT4gd3JvdGU6Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IE5p a3VsYSwgSmFuaQo+PiBTZW50OiBUdWVzZGF5LCBEZWNlbWJlciAyNywgMjAxNiA2OjA0IFBNCj4+ IFRvOiBDaGF1aGFuLCBNYWRoYXYgPG1hZGhhdi5jaGF1aGFuQGludGVsLmNvbT47IGludGVsLQo+ PiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IENjOiBDb25zZWx2YW4gRGUgT2xpdmVpcmEs IEFuZGVyIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPjsKPj4gU2Fhcmlu ZW4sIEphbmkgPGphbmkuc2FhcmluZW5AaW50ZWwuY29tPjsgS29uZHVydSwgQ2hhbmRyYQo+PiA8 Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT47IFNoYW5rYXIsIFVtYSA8dW1hLnNoYW5rYXJAaW50 ZWwuY29tPjsKPj4gTXVraGVyamVlLCBJbmRyYW5pbCA8aW5kcmFuaWwubXVraGVyamVlQGludGVs LmNvbT47IEt1bWFyLCBTaG9iaGl0Cj4+IDxzaG9iaGl0Lmt1bWFyQGludGVsLmNvbT47IERlZXBh ayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cj4+IFN1YmplY3Q6IFJFOiBbR0xLIE1JUEkgRFNJIFYy IDMvOV0gZHJtL2k5MTUvZ2xrOiBBZGQgTUlQSUlPIEVuYWJsZS9kaXNhYmxlCj4+IHNlcXVlbmNl Cj4+IAo+PiBPbiBNb24sIDI2IERlYyAyMDE2LCAiQ2hhdWhhbiwgTWFkaGF2IiA8bWFkaGF2LmNo YXVoYW5AaW50ZWwuY29tPgo+PiB3cm90ZToKPj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0KPj4gPj4gRnJvbTogTmlrdWxhLCBKYW5pCj4+ID4+IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIg MjMsIDIwMTYgNzo0MCBQTQo+PiA+PiBUbzogQ2hhdWhhbiwgTWFkaGF2IDxtYWRoYXYuY2hhdWhh bkBpbnRlbC5jb20+OyBpbnRlbC0KPj4gPj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiA+ PiBDYzogQ29uc2VsdmFuIERlIE9saXZlaXJhLCBBbmRlcgo+PiA+PiA8YW5kZXIuY29uc2VsdmFu LmRlLm9saXZlaXJhQGludGVsLmNvbT47Cj4+ID4+IFNhYXJpbmVuLCBKYW5pIDxqYW5pLnNhYXJp bmVuQGludGVsLmNvbT47IEtvbmR1cnUsIENoYW5kcmEKPj4gPj4gPGNoYW5kcmEua29uZHVydUBp bnRlbC5jb20+OyBTaGFua2FyLCBVbWEKPj4gPHVtYS5zaGFua2FyQGludGVsLmNvbT47Cj4+ID4+ IE11a2hlcmplZSwgSW5kcmFuaWwgPGluZHJhbmlsLm11a2hlcmplZUBpbnRlbC5jb20+OyBLdW1h ciwgU2hvYmhpdAo+PiA+PiA8c2hvYmhpdC5rdW1hckBpbnRlbC5jb20+OyBEZWVwYWsgTSA8bS5k ZWVwYWtAaW50ZWwuY29tPjsKPj4gQ2hhdWhhbiwKPj4gPj4gTWFkaGF2IDxtYWRoYXYuY2hhdWhh bkBpbnRlbC5jb20+Cj4+ID4+IFN1YmplY3Q6IFJlOiBbR0xLIE1JUEkgRFNJIFYyIDMvOV0gZHJt L2k5MTUvZ2xrOiBBZGQgTUlQSUlPCj4+ID4+IEVuYWJsZS9kaXNhYmxlIHNlcXVlbmNlCj4+ID4+ Cj4+ID4+IE9uIFRodSwgMTUgRGVjIDIwMTYsIE1hZGhhdiBDaGF1aGFuIDxtYWRoYXYuY2hhdWhh bkBpbnRlbC5jb20+Cj4+ID4+IHdyb3RlOgo+PiA+PiA+IEZyb206IERlZXBhayBNIDxtLmRlZXBh a0BpbnRlbC5jb20+Cj4+ID4+ID4KPj4gPj4gPiB2MjogQWRkcmVzc2VkIEphbmkncyBSZXZpZXcg Y29tbWVudHMocmVuYW1lZCBiaXQgZmllbGQgbWFjcm9zKQo+PiA+PiA+Cj4+ID4+ID4gU2lnbmVk LW9mZi1ieTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPj4gPj4gPiBTaWduZWQtb2Zm LWJ5OiBNYWRoYXYgQ2hhdWhhbiA8bWFkaGF2LmNoYXVoYW5AaW50ZWwuY29tPgo+PiA+PiA+IC0t LQo+PiA+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyB8IDEzNAo+PiA+PiA+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiA+PiA+ICAxIGZpbGUg Y2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKykKPj4gPj4gPgo+PiA+PiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+PiA+PiA+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmMKPj4gPj4gPiBpbmRleCBiNzhjNjg2Li5jMDY5N2U5IDEwMDY0NAo+ PiA+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ID4+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPj4gPj4gPiBAQCAtMzU3LDYgKzM1 NywxMzQgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+PiA+ PiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiA+PiA+ICAJcmV0dXJuIHRydWU7Cj4+ID4+ID4g IH0KPj4gPj4gPgo+PiA+PiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGlzYWJsZV9taXBpaW8o c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpIHsKPj4gPj4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiA+PiA+ ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7Cj4+ID4+ID4gKwllbnVtIHBvcnQgcG9ydDsKPj4gPj4gPiArCXUzMiB0bXA7Cj4+ ID4+ID4gKwo+PiA+PiA+ICsJLyogUHV0IHRoZSBJTyBpbnRvIHJlc2V0ICovCj4+ID4+ID4gKwl0 bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKFBPUlRfQSkpOwo+PiA+PiA+ICsJdG1wICY9IH5HTEtf TUlQSUlPX1JFU0VUX1JFTEVBU0VEOwo+PiA+PiA+ICsJSTkxNV9XUklURShNSVBJX0NUUkwoUE9S VF9BKSwgdG1wKTsKPj4gPj4gPiArCj4+ID4+ID4gKwkvKiBXYWl0IGZvciBNSVBJIFBIWSBzdGF0 dXMgYml0IHRvIHVuc2V0ICovCj4+ID4+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRl bF9kc2ktPnBvcnRzKSB7Cj4+ID4+ID4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRl dl9wcml2LAo+PiA+PiA+ICsJCQkJTUlQSV9DVFJMKHBvcnQpLAo+PiA+PiA+ICsJCQkJR0xLX1BI WV9TVEFUVVNfUE9SVF9SRUFEWSwgMCwgMjApKQo+PiA+PiA+ICsJCQlEUk1fRVJST1IoIlBIWSBp cyBub3QgdHVybmluZyBPRkZcbiIpOwo+PiA+PiA+ICsJfQo+PiA+PiA+ICsKPj4gPj4gPiArCS8q IENsZWFyIE1JUEkgbW9kZSAqLwo+PiA+PiA+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50 ZWxfZHNpLT5wb3J0cykgewo+PiA+PiA+ICsJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9y dCkpOwo+PiA+PiA+ICsJCXRtcCAmPSB+R0xLX01JUElJT19FTkFCTEU7Cj4+ID4+ID4gKwkJSTkx NV9XUklURShNSVBJX0NUUkwocG9ydCksIHRtcCk7Cj4+ID4+ID4gKwl9Cj4+ID4+ID4gK30KPj4g Pj4gPiArCj4+ID4+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RzaV9lbmFibGVfbWlwaWlvKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKSB7Cj4+ID4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4gPj4gPiArCXN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJh c2UpOwo+PiA+PiA+ICsJZW51bSBwb3J0IHBvcnQ7Cj4+ID4+ID4gKwl1MzIgdG1wLCB2YWw7Cj4+ ID4+ID4gKwo+PiA+PiA+ICsJLyogUHV0IHRoZSBJTyBpbnRvIHJlc2V0ICovCj4+ID4+ID4gKwl0 bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKFBPUlRfQSkpOwo+PiA+PiA+ICsJdG1wICY9IH5HTEtf TUlQSUlPX1JFU0VUX1JFTEVBU0VEOwo+PiA+PiA+ICsJSTkxNV9XUklURShNSVBJX0NUUkwoUE9S VF9BKSwgdG1wKTsKPj4gPj4gPiArCj4+ID4+ID4gKwkvKiBQcm9ncmFtIExQIFdha2UgKi8KPj4g Pj4gPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPj4gPj4g PiArCQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPj4gPj4gPiArCQl0bXAgJj0g fkdMS19MUF9XQUtFOwo+PiA+PiA+ICsJCUk5MTVfV1JJVEUoTUlQSV9DVFJMKHBvcnQpLCB0bXAp Owo+PiA+PiA+ICsJfQo+PiA+PiA+ICsKPj4gPj4gPiArCS8qIFNldCB0aGUgTUlQSSBtb2RlICov Cj4+ID4+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4+ ID4+ID4gKwkJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwb3J0KSk7Cj4+ID4+ID4gKwkJSTkx NV9XUklURShNSVBJX0NUUkwocG9ydCksIHRtcCB8IEdMS19NSVBJSU9fRU5BQkxFKTsKPj4gPj4g PiArCX0KPj4gPj4gPiArCj4+ID4+ID4gKwkvKiBXYWl0IGZvciBQd3IgQUNLICovCj4+ID4+ID4g Kwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4+ID4+ID4gKwkJ aWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+PiA+PiA+ICsJCQkJTUlQSV9D VFJMKHBvcnQpLAo+PiA+PiBHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwKPj4gPj4gPiArCQkJCUdM S19NSVBJSU9fUE9SVF9QT1dFUkVELCAyMCkpCj4+ID4+ID4gKwkJCURSTV9FUlJPUigiUG93ZXIg QUNLIG5vdCByZWNlaXZlZFxuIik7Cj4+ID4+ID4gKwl9Cj4+ID4+ID4gKwo+PiA+PiA+ICsJLyog V2FpdCBmb3IgTUlQSSBQSFkgc3RhdHVzIGJpdCB0byBzZXQgKi8KPj4gPj4gPiArCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPj4gPj4gPiArCQlpZiAoaW50ZWxf d2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4+ID4+ID4gKwkJCQlNSVBJX0NUUkwocG9ydCks Cj4+ID4+IEdMS19NSVBJSU9fUE9SVF9QT1dFUkVELAo+PiA+PiA+ICsJCQkJR0xLX01JUElJT19Q T1JUX1BPV0VSRUQsIDIwKSkKPj4gPj4gPiArCQkJRFJNX0VSUk9SKCJQSFkgaXMgbm90IE9OXG4i KTsKPj4gPj4gPiArCX0KPj4gPj4gPiArCj4+ID4+ID4gKwkvKiBHZXQgSU8gb3V0IG9mIHJlc2V0 ICovCj4+ID4+ID4gKwl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKFBPUlRfQSkpOwo+PiA+PiA+ ICsJSTkxNV9XUklURShNSVBJX0NUUkwoUE9SVF9BKSwgdG1wIHwKPj4gPj4gR0xLX01JUElJT19S RVNFVF9SRUxFQVNFRCk7Cj4+ID4+ID4gKwo+PiA+PiA+ICsJLyogR2V0IElPIG91dCBvZiBMb3cg cG93ZXIgc3RhdGUqLwo+PiA+PiA+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNp LT5wb3J0cykgewo+PiA+PiA+ICsJCWlmICghKEk5MTVfUkVBRChNSVBJX0RFVklDRV9SRUFEWShw b3J0KSkgJgo+PiA+PiBERVZJQ0VfUkVBRFkpKSB7Cj4+ID4+ID4gKwkJCXZhbCA9IEk5MTVfUkVB RChNSVBJX0RFVklDRV9SRUFEWShwb3J0KSk7Cj4+ID4+ID4gKwkJCXZhbCAmPSB+VUxQU19TVEFU RV9NQVNLOwo+PiA+PiA+ICsJCQl2YWwgfD0gREVWSUNFX1JFQURZOwo+PiA+PiA+ICsJCQlJOTE1 X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCB2YWwpOwo+PiA+PiA+ICsJCQl1c2xlZXBf cmFuZ2UoMTAsIDE1KTsKPj4gPj4gPiArCQl9Cj4+ID4+ID4gKwo+PiA+PiA+ICsJCS8qIEVudGVy IFVMUFMgKi8KPj4gPj4gPiArCQl2YWwgPSBJOTE1X1JFQUQoTUlQSV9ERVZJQ0VfUkVBRFkocG9y dCkpOwo+PiA+PiA+ICsJCXZhbCAmPSB+VUxQU19TVEFURV9NQVNLOwo+PiA+PiA+ICsJCXZhbCB8 PSAoVUxQU19TVEFURV9FTlRFUiB8IERFVklDRV9SRUFEWSk7Cj4+ID4+ID4gKwkJSTkxNV9XUklU RShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwgdmFsKTsKPj4gPj4gPiArCj4+ID4+ID4gKwkJLyog V2FpdCBmb3IgVUxQUyBOb3QgYWN0aXZlICovCj4+ID4+ID4gKwkJaWYgKGludGVsX3dhaXRfZm9y X3JlZ2lzdGVyKGRldl9wcml2LAo+PiA+PiA+ICsJCQkJTUlQSV9DVFJMKHBvcnQpLCBHTEtfVUxQ U19OT1RfQUNUSVZFLAo+PiA+PiA+ICsJCQkJR0xLX1VMUFNfTk9UX0FDVElWRSwgMjApKQo+PiA+ PiA+ICsKPj4gPj4gPiArCQkvKiBFeGl0IFVMUFMgKi8KPj4gPj4gPiArCQl2YWwgPSBJOTE1X1JF QUQoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpOwo+PiA+PiA+ICsJCXZhbCAmPSB+VUxQU19TVEFU RV9NQVNLOwo+PiA+PiA+ICsJCXZhbCB8PSAoVUxQU19TVEFURV9FWElUIHwgREVWSUNFX1JFQURZ KTsKPj4gPj4gPiArCQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCB2YWwpOwo+ PiA+PiA+ICsKPj4gPj4gPiArCQkvKiBFbnRlciBOb3JtYWwgTW9kZSAqLwo+PiA+PiA+ICsJCXZh bCA9IEk5MTVfUkVBRChNSVBJX0RFVklDRV9SRUFEWShwb3J0KSk7Cj4+ID4+ID4gKwkJdmFsICY9 IH5VTFBTX1NUQVRFX01BU0s7Cj4+ID4+ID4gKwkJdmFsIHw9IChVTFBTX1NUQVRFX05PUk1BTF9P UEVSQVRJT04gfCBERVZJQ0VfUkVBRFkpOwo+PiA+PiA+ICsJCUk5MTVfV1JJVEUoTUlQSV9ERVZJ Q0VfUkVBRFkocG9ydCksIHZhbCk7Cj4+ID4+ID4gKwo+PiA+PiA+ICsJCXRtcCA9IEk5MTVfUkVB RChNSVBJX0NUUkwocG9ydCkpOwo+PiA+PiA+ICsJCXRtcCAmPSB+R0xLX0xQX1dBS0U7Cj4+ID4+ ID4gKwkJSTkxNV9XUklURShNSVBJX0NUUkwocG9ydCksIHRtcCk7Cj4+ID4+ID4gKwl9Cj4+ID4+ ID4gKwo+PiA+PiA+ICsJLyogV2FpdCBmb3IgU3RvcCBzdGF0ZSAqLwo+PiA+PiA+ICsJZm9yX2Vh Y2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+PiA+PiA+ICsJCWlmIChpbnRl bF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPj4gPj4gPiArCQkJCU1JUElfQ1RSTChwb3J0 KSwKPj4gPj4gR0xLX0RBVEFfTEFORV9TVE9QX1NUQVRFLAo+PiA+PiA+ICsJCQkJR0xLX0RBVEFf TEFORV9TVE9QX1NUQVRFLCAyMCkpCj4+ID4+ID4gKwkJCURSTV9FUlJPUigiRGF0ZSBsYW5lIG5v dCBpbiBTVE9QIHN0YXRlXG4iKTsKPj4gPj4gPiArCX0KPj4gPj4gPiArCj4+ID4+ID4gKwkvKiBX YWl0IGZvciBBRkUgTEFUQ0ggKi8KPj4gPj4gPiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGlu dGVsX2RzaS0+cG9ydHMpIHsKPj4gPj4gPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIo ZGV2X3ByaXYsCj4+ID4+ID4gKwkJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCksIEFGRV9MQVRD SE9VVCwKPj4gPj4gPiArCQkJCUFGRV9MQVRDSE9VVCwgMjApKQo+PiA+PiA+ICsJCQlEUk1fRVJS T1IoIkQtUEhZIG5vdCBlbnRlcmluZyBMUC0xMSBzdGF0ZVxuIik7Cj4+ID4+ID4gKwl9Cj4+ID4+ ID4gK30KPj4gPj4gPiArCj4+ID4+Cj4+ID4+IEknbSB3b25kZXJpbmcgaWYgdGhlc2Ugc2hvdWxk IGp1c3QgYmUgR0xLIHZlcnNpb25zIG9mCj4+ID4+IGludGVsX2RzaV9kZXZpY2VfcmVhZHkgYW5k IGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkuIEl0IHNlZW1zCj4+ID4+IHRvdGFsbHkgd3Jv bmcgdGhhdCB5b3UncmUgZG9pbmcgZGV2aWNlIHJlYWR5IHN0dWZmIHR3aWNlIG9uIEdMSy4uLgo+ PiA+Cj4+ID4gQWdyZWUuIERvbid0IG5lZWQgdG8gY2FsbCBpbnRlbF9kc2lfZGV2aWNlX3JlYWR5 IGZvciBHTEssIGFzIGRldmljZSByZWFkeSBpcwo+PiBhbHJlYWR5IGRvbmUgaW5zaWRlIGVuYWJs ZV9pby4KPj4gPiBXaWxsIGRvIGZvbGxvd2luZyA6Cj4+ID4gSWYoIUlTX0dFTUlOSUxBS0UoZGV2 X3ByaXYpCj4+ID4gaW50ZWxfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPj4gPgo+PiA+Pgo+ PiA+Pgo+PiA+PiA+ICBzdGF0aWMgdm9pZCBieHRfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikgIHsKPj4gPj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiA+PiBAQAo+PiA+PiA+ IC01NTksNiArNjg3LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFibGUoc3RydWN0 Cj4+ID4+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gPj4gPgo+PiA+PiA+ICAJaW50ZWxf ZHNpX3ByZXBhcmUoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+PiA+PiA+Cj4+ID4+ID4gKwlpZiAo SVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4+ID4+ID4gKwkJaW50ZWxfZHNpX2VuYWJsZV9taXBp aW8oZW5jb2Rlcik7Cj4+ID4+ID4gKwo+PiA+PiA+ICAJLyogUGFuZWwgRW5hYmxlIG92ZXIgQ1JD IFBNSUMgKi8KPj4gPj4gPiAgCWlmIChpbnRlbF9kc2ktPmdwaW9fcGFuZWwpCj4+ID4+ID4gIAkJ Z3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGludGVsX2RzaS0+Z3Bpb19wYW5lbCwgMSk7IEBAIC0K Pj4gPj4gNjk5LDYKPj4gPj4gPiArODMwLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2NsZWFy X2RldmljZV9yZWFkeShzdHJ1Y3QKPj4gPj4gPiAraW50ZWxfZW5jb2Rlcgo+PiA+PiAqZW5jb2Rl cikKPj4gPj4gPiAgCQl1c2xlZXBfcmFuZ2UoMjAwMCwgMjUwMCk7Cj4+ID4+ID4gIAl9Cj4+ID4+ ID4KPj4gPj4gPiArCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPj4gPj4gPiArCQlpbnRl bF9kc2lfZGlzYWJsZV9taXBpaW8oZW5jb2Rlcik7Cj4+ID4+ID4gKwo+PiA+Pgo+PiA+PiBXaGVu IHlvdSdyZSBkb2luZyBlbmFibGUvZGlzYWJsZSBvZiBzb21ldGhpbmcsIHRoZXkgc2hvdWxkIGJl IGNhbGxlZAo+PiA+PiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9ucyBpbiB0aGUgZW5h YmxlL2Rpc2FibGUgcGF0aHMuIEJ1dAo+PiA+PiB0aGlzIGlzIGp1c3QgYSBnZW5lcmFsIHJlbWFy aywgaWYgd2UgY29uY2x1ZGUgdGhhdCB0aGVzZSBzaG91bGQgYmUKPj4gPj4gYWx0ZXJuYXRpdmUg ZGV2aWNlIHJlYWR5L3VucmVhZHkgY2FsbHMgaW5zdGVhZC4KPj4gPgo+PiA+IFllcyBhZ3JlZSwg aW50ZWxfZHNpX2Rpc2FibGVfbWlwaWlvIHNob3VsZCBiZSBjYWxsZWQgZnJvbQo+PiA+IGludGVs X2RzaV9wb3N0X2Rpc2FibGUgYWZ0ZXIgaW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFkeSBhbmQg YmVmb3JlCj4+IGludGVsX2Rpc2FibGVfZHNpX3BsbCBXaWxsIGRvIHRoZXNlIGNoYW5nZXMgaW4g bmV4dCBzZXJpZXMuCj4+IAo+PiBJIG1lYW50LCBob3cgYWJvdXQgcmVuYW1pbmcgaW50ZWxfZHNp X2VuYWJsZV9taXBpaW8gdG8KPj4gZ2xrX2RzaV9kZXZpY2VfcmVhZHksIGFuZCBtYWtpbmcgaW50 ZWxfZHNpX2RldmljZV9yZWFkeSBjYWxsCj4+IGdsa19kc2lfZGV2aWNlX3JlYWR5IGZvciBHTEsu Cj4+IAo+PiBUaGVuIHJlbmFtZSBpbnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5IHRvIHZsdl9k c2lfY2xlYXJfZGV2aWNlX3JlYWR5Cj4+IGFuZCBpbnRlbF9kc2lfZGlzYWJsZV9taXBpaW8gdG8g Z2xrX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHksIGFuZCBhZGQgYSBuZXcKPj4gaW50ZWxfZHNpX2Ns ZWFyX2RldmljZV9yZWFkeSB3cmFwcGVyIHRvIGNhbGwgdmx2X2RzaV9jbGVhcl9kZXZpY2VfcmVh ZHkgZm9yCj4+IFZMVi9DSFYvQlhULCBhbmQgZ2xrX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkgZm9y IEdMSy4KPj4gCj4+IEhvdyBkb2VzIHRoYXQgc291bmQ/Cj4KPiBUaGF0J3MgZ29vZCBpbnB1dC4g SXQgd2lsbCBhbGlnbiB0aGUgY29kZSB0byB0aGUgcGxhdGZvcm1zLgo+IEZvciBnbGtfZHNpX2Ns ZWFyX2RldmljZV9yZWFkeSwgd2UgbmVlZCB0byAxLiBEaXNhYmxlIE1JUEkgSU8sIDIuIEVudGVy IExQCj4gU2hvdWxkbid0IHdlIGFkZCAyIHNlcGFyYXRlIGZ1bmN0aW9ucyBmb3IgMSwyIGFuZCBj YWxsIHRoZW0gaW5zaWRlIGdsa19kc2lfY2xlYXJfZGV2aWNlX3JlYWR5LCBpdCB3aWxsIG1ha2Ug Y29kZSByZWFkYWJsZS9tb2R1bGFyaXplIGFzIHBlciBCU1BFQz8/CgpTdXJlLCBhYnN0cmFjdGlv bnMgbGlrZSB0aGF0IGFyZSBmaW5lLgoKQlIsCkphbmkuCgo+Cj4+IAo+PiAKPj4gQlIsCj4+IEph bmkuCj4+IAo+PiA+Pgo+PiA+PiBCUiwKPj4gPj4gSmFuaS4KPj4gPj4KPj4gPj4KPj4gPj4gPiAg CWludGVsX2Rpc2FibGVfZHNpX3BsbChlbmNvZGVyKTsKPj4gPj4gPiAgfQo+PiA+Pgo+PiA+PiAt LQo+PiA+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIK Pj4gCj4+IC0tCj4+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENl bnRlcgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRl cgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK