From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chauhan, Madhav" Subject: Re: [GLK MIPI DSI V4 3/8] drm/i915/glk: Add MIPIIO Enable/disable sequence Date: Wed, 8 Feb 2017 17:51:18 +0000 Message-ID: References: <1486471392-1803-1-git-send-email-madhav.chauhan@intel.com> <1486471392-1803-4-git-send-email-madhav.chauhan@intel.com> <87a89wu3ts.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 26D106E938 for ; Wed, 8 Feb 2017 17:51:23 +0000 (UTC) In-Reply-To: <87a89wu3ts.fsf@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Nikula, Jani" , "intel-gfx@lists.freedesktop.org" Cc: "Conselvan De Oliveira, Ander" , Deepak M List-Id: intel-gfx@lists.freedesktop.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IE5pa3VsYSwgSmFuaQo+IFNlbnQ6 IFdlZG5lc2RheSwgRmVicnVhcnkgOCwgMjAxNyA4OjI5IFBNCj4gVG86IENoYXVoYW4sIE1hZGhh diA8bWFkaGF2LmNoYXVoYW5AaW50ZWwuY29tPjsgaW50ZWwtCj4gZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IENjOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT47IE11a2hl cmplZSwgSW5kcmFuaWwKPiA8aW5kcmFuaWwubXVraGVyamVlQGludGVsLmNvbT47IEthbWF0aCwg U3VuaWwgPHN1bmlsLmthbWF0aEBpbnRlbC5jb20+Owo+IFNhYXJpbmVuLCBKYW5pIDxqYW5pLnNh YXJpbmVuQGludGVsLmNvbT47IENvbnNlbHZhbiBEZSBPbGl2ZWlyYSwgQW5kZXIKPiA8YW5kZXIu Y29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT47IERlZXBhayBNCj4gPG0uZGVlcGFrQGlu dGVsLmNvbT47IENoYXVoYW4sIE1hZGhhdiA8bWFkaGF2LmNoYXVoYW5AaW50ZWwuY29tPgo+IFN1 YmplY3Q6IFJlOiBbR0xLIE1JUEkgRFNJIFY0IDMvOF0gZHJtL2k5MTUvZ2xrOiBBZGQgTUlQSUlP IEVuYWJsZS9kaXNhYmxlCj4gc2VxdWVuY2UKPiAKPiBPbiBUdWUsIDA3IEZlYiAyMDE3LCBNYWRo YXYgQ2hhdWhhbiA8bWFkaGF2LmNoYXVoYW5AaW50ZWwuY29tPgo+IHdyb3RlOgo+ID4gRnJvbTog RGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KPiA+Cj4gPiB2MjogQWRkcmVzc2VkIEphbmkn cyBSZXZpZXcgY29tbWVudHMocmVuYW1lZCBiaXQgZmllbGQgbWFjcm9zKQo+ID4gdjM6IEphbmkn cyBSZXZpZXcgY29tbWVudCBmb3IgYWxpZ25pbmcgY29kZSB0byBwbGF0Zm9ybXMgYW5kIGFkZGVk Cj4gPiB3cmFwcGVyIGZ1bmN0aW9ucy4KPiA+IHY0OiBDb3JyZWN0ZWQgZW5hYmxlL2Rpc2FibGUg c2V1cWVuY2UgYXMgcGVyIEJTUEVDCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGVlcGFrIE0gPG0u ZGVlcGFrQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IE1hZGhhdiBDaGF1aGFuIDxtYWRo YXYuY2hhdWhhbkBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYyB8IDIwNgo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMo LSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMK PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+IGluZGV4IGJlODEyODMu LjBkZWYyMTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2ku Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+IEBAIC0zNTcs NiArMzU3LDEwOSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0 Cj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJcmV0dXJuIHRydWU7Cj4gPiAgfQo+ID4K PiA+ICtzdGF0aWMgdm9pZCBnbGtfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2Rlcikgewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gPiArCWVudW0gcG9ydCBw b3J0Owo+ID4gKwl1MzIgdG1wLCB2YWw7Cj4gPiArCj4gPiArCS8qIFNldCB0aGUgTUlQSSBtb2Rl Cj4gPiArCSAqIElmIE1JUElfTW9kZSBpcyBvZmYsIHRoZW4gd3JpdGluZyB0byBMUF9XYWtlIGJp dCBpcyBub3QgcmVmbGVjdGluZy4KPiA+ICsJICogUG93ZXIgT04gTUlQSSBJTyBmaXJzdCBhbmQg dGhlbiB3cml0ZSBpbnRvIElPIHJlc2V0IGFuZCBMUCB3YWtlCj4gYml0cwo+ID4gKwkgKi8KPiA+ ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ID4gKwkJdG1w ID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwb3J0KSk7Cj4gPiArCQlJOTE1X1dSSVRFKE1JUElfQ1RS TChwb3J0KSwgdG1wIHwgR0xLX01JUElJT19FTkFCTEUpOwo+ID4gKwl9Cj4gPiArCj4gPiArCS8q IFB1dCB0aGUgSU8gaW50byByZXNldCAqLwo+ID4gKwl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJM KFBPUlRfQSkpOwo+ID4gKwl0bXAgJj0gfkdMS19NSVBJSU9fUkVTRVRfUkVMRUFTRUQ7Cj4gPiAr CUk5MTVfV1JJVEUoTUlQSV9DVFJMKFBPUlRfQSksIHRtcCk7Cj4gPiArCj4gCj4gU2luY2UgeW91 J3ZlIHNwbGl0IGdsa19kc2lfY2xlYXJfZGV2aWNlX3JlYWR5IGludG8gdHdvIGZ1bmN0aW9ucywg aXQgd291bGQKPiBzdGFuZCB0byByZWFzb24gdG8gYWxzbyBzcGxpdCB0aGlzIG9uZSBhY2NvcmRp bmdseS4KCmdsa19kc2lfY2xlYXJfZGV2aWNlX3JlYWR5IGluY2x1ZGVzICB0d28gc3RlcHM6IDcg IGFuZCA4IG9mIGRpc2FibGUgc2VxdWVuY2UgbWVudGlvbmVkIGluIGJzcGVjIHRoYXQncyB3aHkg c3BsaXR0ZWQuCldoaWxlIGdsa19kc2lfZGV2aWNlX3JlYWR5IGlzICpPTkxZKiBkb2luZyBzdGVw IDQgKGVuYWJsZSBJTykuCgo+IAo+IEJSLAo+IEphbmkuCj4gCj4gPiArCS8qIFByb2dyYW0gTFAg V2FrZSAqLwo+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7 Cj4gPiArCQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiA+ICsJCXRtcCB8PSBH TEtfTFBfV0FLRTsKPiA+ICsJCUk5MTVfV1JJVEUoTUlQSV9DVFJMKHBvcnQpLCB0bXApOwo+ID4g Kwl9Cj4gPiArCj4gPiArCS8qIFdhaXQgZm9yIFB3ciBBQ0sgKi8KPiA+ICsJZm9yX2VhY2hfZHNp X3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ID4gKwkJaWYgKGludGVsX3dhaXRfZm9y X3JlZ2lzdGVyKGRldl9wcml2LAo+ID4gKwkJCQlNSVBJX0NUUkwocG9ydCksCj4gR0xLX01JUElJ T19QT1JUX1BPV0VSRUQsCj4gPiArCQkJCUdMS19NSVBJSU9fUE9SVF9QT1dFUkVELCAyMCkpCj4g PiArCQkJRFJNX0VSUk9SKCJQb3dlciBBQ0sgbm90IHJlY2VpdmVkXG4iKTsKPiA+ICsJfQo+ID4g Kwo+ID4gKwkvKiBXYWl0IGZvciBNSVBJIFBIWSBzdGF0dXMgYml0IHRvIHNldCAqLwo+ID4gKwlm b3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gPiArCQlpZiAoaW50 ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gPiArCQkJCU1JUElfQ1RSTChwb3J0KSwK PiBHTEtfTUlQSUlPX1BPUlRfUE9XRVJFRCwKPiA+ICsJCQkJR0xLX01JUElJT19QT1JUX1BPV0VS RUQsIDIwKSkKPiA+ICsJCQlEUk1fRVJST1IoIlBIWSBpcyBub3QgT05cbiIpOwo+ID4gKwl9Cj4g PiArCj4gPiArCS8qIEdldCBJTyBvdXQgb2YgcmVzZXQgKi8KPiA+ICsJdG1wID0gSTkxNV9SRUFE KE1JUElfQ1RSTChQT1JUX0EpKTsKPiA+ICsJSTkxNV9XUklURShNSVBJX0NUUkwoUE9SVF9BKSwg dG1wIHwKPiBHTEtfTUlQSUlPX1JFU0VUX1JFTEVBU0VEKTsKPiA+ICsKPiA+ICsJLyogR2V0IElP IG91dCBvZiBMb3cgcG93ZXIgc3RhdGUqLwo+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBp bnRlbF9kc2ktPnBvcnRzKSB7Cj4gPiArCQlpZiAoIShJOTE1X1JFQUQoTUlQSV9ERVZJQ0VfUkVB RFkocG9ydCkpICYKPiBERVZJQ0VfUkVBRFkpKSB7Cj4gPiArCQkJdmFsID0gSTkxNV9SRUFEKE1J UElfREVWSUNFX1JFQURZKHBvcnQpKTsKPiA+ICsJCQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsK PiA+ICsJCQl2YWwgfD0gREVWSUNFX1JFQURZOwo+ID4gKwkJCUk5MTVfV1JJVEUoTUlQSV9ERVZJ Q0VfUkVBRFkocG9ydCksIHZhbCk7Cj4gPiArCQkJdXNsZWVwX3JhbmdlKDEwLCAxNSk7Cj4gPiAr CQl9Cj4gPiArCj4gPiArCQkvKiBFbnRlciBVTFBTICovCj4gPiArCQl2YWwgPSBJOTE1X1JFQUQo TUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpOwo+ID4gKwkJdmFsICY9IH5VTFBTX1NUQVRFX01BU0s7 Cj4gPiArCQl2YWwgfD0gKFVMUFNfU1RBVEVfRU5URVIgfCBERVZJQ0VfUkVBRFkpOwo+ID4gKwkJ STkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShwb3J0KSwgdmFsKTsKPiA+ICsKPiA+ICsJCS8q IFdhaXQgZm9yIFVMUFMgTm90IGFjdGl2ZSAqLwo+ID4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3Jl Z2lzdGVyKGRldl9wcml2LAo+ID4gKwkJCQlNSVBJX0NUUkwocG9ydCksIEdMS19VTFBTX05PVF9B Q1RJVkUsCj4gPiArCQkJCUdMS19VTFBTX05PVF9BQ1RJVkUsIDIwKSkKPiA+ICsKPiA+ICsJCS8q IEV4aXQgVUxQUyAqLwo+ID4gKwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBv cnQpKTsKPiA+ICsJCXZhbCAmPSB+VUxQU19TVEFURV9NQVNLOwo+ID4gKwkJdmFsIHw9IChVTFBT X1NUQVRFX0VYSVQgfCBERVZJQ0VfUkVBRFkpOwo+ID4gKwkJSTkxNV9XUklURShNSVBJX0RFVklD RV9SRUFEWShwb3J0KSwgdmFsKTsKPiA+ICsKPiA+ICsJCS8qIEVudGVyIE5vcm1hbCBNb2RlICov Cj4gPiArCQl2YWwgPSBJOTE1X1JFQUQoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpOwo+ID4gKwkJ dmFsICY9IH5VTFBTX1NUQVRFX01BU0s7Cj4gPiArCQl2YWwgfD0gKFVMUFNfU1RBVEVfTk9STUFM X09QRVJBVElPTiB8IERFVklDRV9SRUFEWSk7Cj4gPiArCQlJOTE1X1dSSVRFKE1JUElfREVWSUNF X1JFQURZKHBvcnQpLCB2YWwpOwo+ID4gKwo+ID4gKwkJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RS TChwb3J0KSk7Cj4gPiArCQl0bXAgJj0gfkdMS19MUF9XQUtFOwo+ID4gKwkJSTkxNV9XUklURShN SVBJX0NUUkwocG9ydCksIHRtcCk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogV2FpdCBmb3IgU3Rv cCBzdGF0ZSAqLwo+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRz KSB7Cj4gPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gPiArCQkJ CU1JUElfQ1RSTChwb3J0KSwKPiBHTEtfREFUQV9MQU5FX1NUT1BfU1RBVEUsCj4gPiArCQkJCUdM S19EQVRBX0xBTkVfU1RPUF9TVEFURSwgMjApKQo+ID4gKwkJCURSTV9FUlJPUigiRGF0ZSBsYW5l IG5vdCBpbiBTVE9QIHN0YXRlXG4iKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKiBXYWl0IGZvciBB RkUgTEFUQ0ggKi8KPiA+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0 cykgewo+ID4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ID4gKwkJ CQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCksIEFGRV9MQVRDSE9VVCwKPiA+ICsJCQkJQUZFX0xB VENIT1VULCAyMCkpCj4gPiArCQkJRFJNX0VSUk9SKCJELVBIWSBub3QgZW50ZXJpbmcgTFAtMTEg c3RhdGVcbiIpOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGJ4dF9kc2lf ZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKSAgewo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiBAQAo+ID4gLTQ0Miw4ICs1NDUsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Rldmlj ZV9yZWFkeShzdHJ1Y3QKPiA+IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPgo+ID4gIAlpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiAg CQl2bHZfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPiA+IC0JZWxzZSBpZiAoSVNfR0VOOV9M UChkZXZfcHJpdikpCj4gPiArCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ID4gIAkJ Ynh0X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gPiArCWVsc2UgaWYgKElTX0dFTUlOSUxB S0UoZGV2X3ByaXYpKQo+ID4gKwkJZ2xrX2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gPiAg fQo+ID4KPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9ydF9lbmFibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpIEBACj4gPiAtNjM3LDE4ICs3NDIsMjAgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHNpX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIKPiAqZW5jb2RlcikKPiA+ICAJ CW1zbGVlcCgyKTsKPiA+ICAJfQo+ID4KPiA+IC0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50 ZWxfZHNpLT5wb3J0cykgewo+ID4gLQkJLyogUGFuZWwgY29tbWFuZHMgY2FuIGJlIHNlbnQgd2hl biBjbG9jayBpcyBpbiBMUDExICovCj4gPiAtCQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZ KHBvcnQpLCAweDApOwo+ID4gKwlpZiAoIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gPiAr CQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gPiArCQkJLyog UGFuZWwgY29tbWFuZHMgY2FuIGJlIHNlbnQgd2hlbiBjbG9jayBpcyBpbiBMUDExCj4gKi8KPiA+ ICsJCQlJOTE1X1dSSVRFKE1JUElfREVWSUNFX1JFQURZKHBvcnQpLCAweDApOwo+ID4KPiA+IC0J CWludGVsX2RzaV9yZXNldF9jbG9ja3MoZW5jb2RlciwgcG9ydCk7Cj4gPiAtCQlJOTE1X1dSSVRF KE1JUElfRU9UX0RJU0FCTEUocG9ydCksIENMT0NLU1RPUCk7Cj4gPiArCQkJaW50ZWxfZHNpX3Jl c2V0X2Nsb2NrcyhlbmNvZGVyLCBwb3J0KTsKPiA+ICsJCQlJOTE1X1dSSVRFKE1JUElfRU9UX0RJ U0FCTEUocG9ydCksIENMT0NLU1RPUCk7Cj4gPgo+ID4gLQkJdGVtcCA9IEk5MTVfUkVBRChNSVBJ X0RTSV9GVU5DX1BSRyhwb3J0KSk7Cj4gPiAtCQl0ZW1wICY9IH5WSURfTU9ERV9GT1JNQVRfTUFT SzsKPiA+IC0JCUk5MTVfV1JJVEUoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCksIHRlbXApOwo+ID4g KwkJCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9EU0lfRlVOQ19QUkcocG9ydCkpOwo+ID4gKwkJCXRl bXAgJj0gflZJRF9NT0RFX0ZPUk1BVF9NQVNLOwo+ID4gKwkJCUk5MTVfV1JJVEUoTUlQSV9EU0lf RlVOQ19QUkcocG9ydCksIHRlbXApOwo+ID4KPiA+IC0JCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0Vf UkVBRFkocG9ydCksIDB4MSk7Cj4gPiArCQkJSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShw b3J0KSwgMHgxKTsKPiA+ICsJCX0KPiA+ICAJfQo+ID4gIAkvKiBpZiBkaXNhYmxlIHBhY2tldHMg YXJlIHNlbnQgYmVmb3JlIHNlbmRpbmcgc2h1dGRvd24gcGFja2V0IHRoZW4gaW4KPiA+ICAJICog c29tZSBuZXh0IGVuYWJsZSBzZXF1ZW5jZSBzZW5kIHR1cm4gb24gcGFja2V0IGVycm9yIGlzIG9i c2VydmVkCj4gPiAqLyBAQCAtNjU4LDcgKzc2NSw3MyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf ZGlzYWJsZShzdHJ1Y3QKPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gIAkJd2FpdF9mb3Jf ZHNpX2ZpZm9fZW1wdHkoaW50ZWxfZHNpLCBwb3J0KTsgIH0KPiA+Cj4gPiAtc3RhdGljIHZvaWQg aW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gKmVu Y29kZXIpCj4gPiArc3RhdGljIHZvaWQgZ2xrX2RzaV9lbnRlcl9sb3dfcG93ZXJfbW9kZShzdHJ1 Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gKyplbmNvZGVyKSB7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNl KTsKPiA+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gPiArCXUzMiB2YWw7Cj4gPiArCj4gPiArCS8qIEVu dGVyIFVMUFMgKi8KPiA+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0 cykgewo+ID4gKwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBvcnQpKTsKPiA+ ICsJCXZhbCAmPSB+VUxQU19TVEFURV9NQVNLOwo+ID4gKwkJdmFsIHw9IChVTFBTX1NUQVRFX0VO VEVSIHwgREVWSUNFX1JFQURZKTsKPiA+ICsJCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFko cG9ydCksIHZhbCk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogV2FpdCBmb3IgTUlQSSBQSFkgc3Rh dHVzIGJpdCB0byB1bnNldCAqLwo+ID4gKwlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9k c2ktPnBvcnRzKSB7Cj4gPiArCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYs Cj4gPiArCQkJCQkgICAgTUlQSV9DVFJMKHBvcnQpLAo+ID4gKwkJCQkJICAgIEdMS19QSFlfU1RB VFVTX1BPUlRfUkVBRFksIDAsCj4gMjApKQo+ID4gKwkJCURSTV9FUlJPUigiUEhZIGlzIG5vdCB0 dXJuaW5nIE9GRlxuIik7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogV2FpdCBmb3IgUHdyIEFDSyBi aXQgdG8gdW5zZXQgKi8KPiA+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5w b3J0cykgewo+ID4gKwkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ID4g KwkJCQkJICAgIE1JUElfQ1RSTChwb3J0KSwKPiA+ICsJCQkJCSAgICBHTEtfTUlQSUlPX1BPUlRf UE9XRVJFRCwgMCwKPiAyMCkpCj4gPiArCQkJRFJNX0VSUk9SKCJNSVBJIElPIFBvcnQgaXMgbm90 IHBvd2VyZ2F0ZWRcbiIpOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGds a19kc2lfZGlzYWJsZV9taXBpX2lvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKSB7Cj4g PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gPiArCXUzMiB0 bXA7Cj4gPiArCj4gPiArCS8qIFB1dCB0aGUgSU8gaW50byByZXNldCAqLwo+ID4gKwl0bXAgPSBJ OTE1X1JFQUQoTUlQSV9DVFJMKFBPUlRfQSkpOwo+ID4gKwl0bXAgJj0gfkdMS19NSVBJSU9fUkVT RVRfUkVMRUFTRUQ7Cj4gPiArCUk5MTVfV1JJVEUoTUlQSV9DVFJMKFBPUlRfQSksIHRtcCk7Cj4g PiArCj4gPiArCS8qIFdhaXQgZm9yIE1JUEkgUEhZIHN0YXR1cyBiaXQgdG8gdW5zZXQgKi8KPiA+ ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ID4gKwkJaWYg KGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ID4gKwkJCQkJICAgIE1JUElfQ1RS TChwb3J0KSwKPiA+ICsJCQkJCSAgICBHTEtfUEhZX1NUQVRVU19QT1JUX1JFQURZLCAwLAo+IDIw KSkKPiA+ICsJCQlEUk1fRVJST1IoIlBIWSBpcyBub3QgdHVybmluZyBPRkZcbiIpOwo+ID4gKwl9 Cj4gPiArCj4gPiArCS8qIENsZWFyIE1JUEkgbW9kZSAqLwo+ID4gKwlmb3JfZWFjaF9kc2lfcG9y dChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gPiArCQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9D VFJMKHBvcnQpKTsKPiA+ICsJCXRtcCAmPSB+R0xLX01JUElJT19FTkFCTEU7Cj4gPiArCQlJOTE1 X1dSSVRFKE1JUElfQ1RSTChwb3J0KSwgdG1wKTsKPiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgdm9pZCBnbGtfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiA+ICt7Cj4gPiArCWdsa19kc2lfZW50ZXJfbG93X3Bvd2VyX21vZGUoZW5j b2Rlcik7Cj4gPiArCWdsa19kc2lfZGlzYWJsZV9taXBpX2lvKGVuY29kZXIpOwo+ID4gK30KPiA+ ICsKPiA+ICtzdGF0aWMgdm9pZCB2bHZfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAlzdHJ1Y3QgaW50 ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsgQEAK PiA+IC03MDEsNiArODc0LDE3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2Vf cmVhZHkoc3RydWN0Cj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJfQo+ID4gIH0KPiA+ Cj4gPiArc3RhdGljIHZvaWQgaW50ZWxfZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50 ZWxfZW5jb2Rlcgo+ID4gKyplbmNvZGVyKSB7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwo+ID4gKwlpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwKPiA+ ICsJICAgIElTX0JST1hUT04oZGV2X3ByaXYpKQo+ID4gKwkJdmx2X2RzaV9jbGVhcl9kZXZpY2Vf cmVhZHkoZW5jb2Rlcik7Cj4gPiArCWVsc2UgaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ ID4gKwkJZ2xrX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4gPiArfQo+ID4gKwo+ ID4gIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gPiAgCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiA+ICAJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp Cj4gCj4gLS0KPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50 ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==