From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Subject: Re: [PATCH 15/15] drm/i915: Add CHV PHY LDO power sanity checks Date: Thu, 27 Aug 2015 10:09:37 +0530 Message-ID: <55DE9489.2040909@linux.intel.com> References: <1436388361-11130-1-git-send-email-ville.syrjala@linux.intel.com> <1436388361-11130-16-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 198F26E70F for ; Wed, 26 Aug 2015 21:42:09 -0700 (PDT) In-Reply-To: <1436388361-11130-16-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwNy8wOS8yMDE1IDAyOjE2IEFNLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+Cj4gQXQgdmFyaW91cyBwb2ludHMgd2hlbiBjaGFuZ2luZyB0aGUgRFBJTyBsYW5lL3Bo eSBwb3dlciBzdGF0ZXMsCj4gY29uc3RydWN0IGFuIGV4cGVjdGVkIHZhbHVlIG9mIHRoZSBESVNQ TEFZX1BIWV9TVEFUVVMgcmVnaXN0ZXIKPiBhbmQgY29tcGFyZSBpdCB3aXRoIHRoZSByZWFsIHRo aW5nLgo+Cj4gVG8gY29uc3RydWN0IHRoZSBleHBlY3RlZCB2YWx1ZSB3ZSBsb29rIGF0IG91ciBz aGFkb3cgUEhZX0NPTlRST0wKPiByZWdpc3RlciB2YWx1ZSAod2hpY2ggc2hvdWxkIG1hdGNoIHdo YXQgd2UndmUganVzdCB3cml0dGVuIHRvIHRoZQo+IGhhcmR3YXJlKSwgYW5kIHdlIGFsc28gbmVl ZCB0byBsb29rIGF0IHRoZSBhY3R1YWwgc3RhdGUgb2YgdGhlIGNtbgo+IHBvd2VyIHdlbGxzIGFz IGEgZGlzYWJsZWQgcG93ZXIgd2VsbCBjYXVzZXMgdGhlIHJlbGV2YW50IExETyBzdGF0dXMKPiB0 byBiZSByZXBvcnRlZCBhcyAnb24nIGluIERJU1BMQVlfUEhZX1NUQVRVUy4KPgo+IFdoZW4gaW5p dGlhbGx5IHBvd2VyaW5nIHVwIHRoZSBQSFkgaXQgcGVyZm9ybXMgdmFyaW91cyBpbnRlcm5hbAo+ IGNhbGlicmF0aW9ucyBmb3Igd2hpY2ggaXQgZnVsbHkgcG93ZXJzIHVwLiBUaGF0IG1lYW5zIHRo YXQgaWYgd2UgY2hlY2sKPiBmb3IgdGhlIGV4cGV0ZWN0ZWQgcG93ZXIgc3RhdGUgaW1tZWRpYXRl bHkgdXBvbiByZWxlYXNpbmcgY21ucmVzZXQgd2UKPiB3b3VsZCBnZXQgdGhlIG9jY2FzaW9uYWwg ZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW4gb2YgY291cnNlCj4gcG9sbCB1bnRpbCB0aGUgZXhw ZWN0ZWQgdmFsdWUgYXBwZWFycy4gSXQgc2hvdWxkbid0IGJlIHRvbyBsb25nIHNvCj4gdGhpcyBz aG91bGRuJ3QgbWFrZSBtb2Rlc2V0cyBzdWJzdGFudGlhbGx5IGxvbmdlci4KPgo+IE9uZSBleHRy YSBjb21wbGljYXRpb24gaXMgaW50cm9kdWNlZCB3aGVuIHdlIGNyb3NzIHRoZSBzdHJlYW1zLCBp ZS4KPiBkcml2ZSBwb3J0IEIgd2l0aCBwaXBlIEIuIEluIHRoaXMgY2FzZSB3ZSB0cmljayBDTDIg KHdoZXJlIHRoZSBEUExMIGxpdmVzKQo+IGludG8gbGlmZSBieSB0ZW1wb3JhaWx5IHBvd2VyaW5n IHVwIHRoZSBsYW5lcyBpbiB0aGUgc2Vjb25kIGNoYW5uZWwsCj4gYW5kIG9uY2UgdGhlIHBpcGUg aXMgdXAgYW5kIHJ1bm5pZ24gd2UgcmVsZWFzZSB0aGUgbGFuZSBwb3dlciBvdmVycmlkZS4KPiBB dCB0aGF0IHBvaW50IHRoZSBwb3dlciBzdGF0ZSBvZiBDTDIgaGFzIHNvbWVob3cgZ290dGVuIGVu dGFuZ2xlZCB3aXRoCj4gdGhlIHBvd2VyIHN0YXRlIG9mIHRoZSBmaXJzdCBjaGFubmVsLiBUaGF0 IG1lYW5zIHRoYXQgY29uc3RydWN0aW5nIHRoZQo+IGV4cGVjdGVkIERJU1BMQVlfUEhZX1NUQVRV UyB2YWx1ZSBpcyBhIGJpdCB0cmlja3kgc2luY2UgYmFzZWQgb24gdGhlCj4gbGFuZSBwb3dlciBz dGF0ZXMgaW4gdGhlIHNlY29uZCBjaGFubmVsLCBDTDIgc2hvdWxkIGFsc28gYmUgcG93ZXJlZAo+ IGRvd24uIEJ1dCB3ZSBjYW4gdXNlIHRoZSBEUExMIGVuYWJsZSBiaXQgdG8gZGV0ZXJtaW5lIHdo ZW4gQ0wyIHNob3VsZAo+IGJlIGFsaXZlIGV2ZW4gaWYgdGhlIGxhbmVzIGFyZSBwb3dlcmVkIGRv d24uIEhvd2V2ZXIgdGhlIHBvd2VyIHN0YXRlCj4gb2YgQ0wyIGlzbid0IGFjdHVhbGx5IHRpZWQg aW4gd2l0aCB0aGUgRFBMTCBzdGF0ZSwgYnV0IHRvIHRoZSBzdGF0ZQo+IG9mIHRoZSBsYW5lcyBp biBmaXJzdCBjaGFubmVsLCBzbyB3ZSBoYXZlIHRvIGF2b2lkIGNoZWNraW5nIHRoZQo+IGV4cGVj dGVkIHN0YXRlIGJldHdlZW4gc2h1dHRpbmcgZG93biB0aGUgRFBMTCBhbmQgcG93ZXJpbmcgZG93 bgo+IHRoZSBsYW5lcyBpbiB0aGUgZmlyc3QgY2hhbm5lbC4gU28gbm8gY2FsbGluZyBhc3NlcnRf Y2h2X3BoeV9zdGF0dXMoKQo+IGJlZm9yZSB0aGUgRElTUExBWV9QSFlfQ09OVFJPTCB3cml0ZSBp biBjaHZfcGh5X3Bvd2VyZ2F0ZV9sYW5lcygpLAo+IGJ1dCBhZnRlciB0aGUgd3JpdGUgaXMgYSBz YWZlIHRpbWUgdG8gY2hlY2suCj4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgICAyICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYyB8IDEyNiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA1ODZhMGY3Li40MjkxMDVlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTIyMDYsNiArMjIwNiw4IEBAIGVudW0gc2tsX2Rp c3BfcG93ZXJfd2VsbHMgewo+ICAgI2RlZmluZSAgIFBIWV9DT01fTEFORV9SRVNFVF9ERUFTU0VS VChwaHkpCSgxIDw8IChwaHkpKQo+ICAgI2RlZmluZSBESVNQTEFZX1BIWV9TVEFUVVMgKFZMVl9E SVNQTEFZX0JBU0UgKyAweDYwMTA0KQo+ICAgI2RlZmluZSAgIFBIWV9QT1dFUkdPT0QocGh5KQko KChwaHkpID09IERQSU9fUEhZMCkgPyAoMTw8MzEpIDogKDE8PDMwKSkKPiArI2RlZmluZSAgIFBI WV9TVEFUVVNfQ01OX0xETyhwaHksIGNoKSAgICAgICAgICAgICAgICAgICAoMSA8PCAoNi0oNioo cGh5KSszKihjaCkpKSkKPiArI2RlZmluZSAgIFBIWV9TVEFUVVNfU1BMSU5FX0xETyhwaHksIGNo LCBzcGxpbmUpICAgICAgICAoMSA8PCAoOC0oNioocGh5KSszKihjaCkrKHNwbGluZSkpKSkKPiAg IAo+ICAgLyoKPiAgICAqIFRoZSBpODMwIGdlbmVyYXRpb24sIGluIExWRFMgbW9kZSwgZGVmaW5l cyBQMSBhcyB0aGUgYml0IG51bWJlciBzZXQgd2l0aGluCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IGExZDk2NzYuLmU2ZjFiNGVlIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC05NDIsNiArOTQyLDEwNyBAQCBz dGF0aWMgdm9pZCB2bHZfZHBpb19jbW5fcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAl2bHZfc2V0X3Bvd2VyX3dlbGwoZGV2X3ByaXYsIHBv d2VyX3dlbGwsIGZhbHNlKTsKPiAgIH0KPiAgIAo+ICsjZGVmaW5lIFBPV0VSX0RPTUFJTl9NQVNL IChCSVQoUE9XRVJfRE9NQUlOX05VTSkgLSAxKQo+ICsKPiArc3RhdGljIHN0cnVjdCBpOTE1X3Bv d2VyX3dlbGwgKmxvb2t1cF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiArCQkJCQkJIGludCBwb3dlcl93ZWxsX2lkKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9w b3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zID0gJmRldl9wcml2LT5wb3dlcl9kb21haW5zOwo+ ICsJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbDsKPiArCWludCBpOwo+ICsKPiAr CWZvcl9lYWNoX3Bvd2VyX3dlbGwoaSwgcG93ZXJfd2VsbCwgUE9XRVJfRE9NQUlOX01BU0ssIHBv d2VyX2RvbWFpbnMpIHsKPiArCQlpZiAocG93ZXJfd2VsbC0+ZGF0YSA9PSBwb3dlcl93ZWxsX2lk KQo+ICsJCQlyZXR1cm4gcG93ZXJfd2VsbDsKPiArCX0KPiArCj4gKwlyZXR1cm4gTlVMTDsKPiAr fQo+ICsKPiArI2RlZmluZSBCSVRTX1NFVCh2YWwsIGJpdHMpICgoKHZhbCkgJiAoYml0cykpID09 IChiaXRzKSkKPiArCj4gK3N0YXRpYyB2b2lkIGFzc2VydF9jaHZfcGh5X3N0YXR1cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXN0cnVjdCBpOTE1X3Bvd2VyX3dl bGwgKmNtbl9iYyA9Cj4gKwkJbG9va3VwX3Bvd2VyX3dlbGwoZGV2X3ByaXYsIFBVTklUX1BPV0VS X1dFTExfRFBJT19DTU5fQkMpOwo+ICsJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqY21uX2QgPQo+ ICsJCWxvb2t1cF9wb3dlcl93ZWxsKGRldl9wcml2LCBQVU5JVF9QT1dFUl9XRUxMX0RQSU9fQ01O X0QpOwo+ICsJdTMyIHBoeV9jb250cm9sID0gZGV2X3ByaXYtPmNodl9waHlfY29udHJvbDsKPiAr CXUzMiBwaHlfc3RhdHVzID0gMDsKPiArCXUzMiB0bXA7Cj4gKwo+ICsJaWYgKGNtbl9iYy0+b3Bz LT5pc19lbmFibGVkKGRldl9wcml2LCBjbW5fYmMpKSB7Cj4gKwkJcGh5X3N0YXR1cyB8PSBQSFlf UE9XRVJHT09EKERQSU9fUEhZMCk7Cj4gKwo+ICsJCS8qIHRoaXMgYXNzdW1lcyBvdmVycmlkZSBp cyBvbmx5IHVzZWQgdG8gZW5hYmxlIGxhbmVzICovCj4gKwkJaWYgKChwaHlfY29udHJvbCAmIFBI WV9DSF9QT1dFUl9ET1dOX09WUkRfRU4oRFBJT19QSFkwLCBEUElPX0NIMCkpID09IDApCj4gKwkJ CXBoeV9jb250cm9sIHw9IFBIWV9DSF9QT1dFUl9ET1dOX09WUkQoMHhmLCBEUElPX1BIWTAsIERQ SU9fQ0gwKTsKPiArCj4gKwkJaWYgKChwaHlfY29udHJvbCAmIFBIWV9DSF9QT1dFUl9ET1dOX09W UkRfRU4oRFBJT19QSFkwLCBEUElPX0NIMSkpID09IDApCj4gKwkJCXBoeV9jb250cm9sIHw9IFBI WV9DSF9QT1dFUl9ET1dOX09WUkQoMHhmLCBEUElPX1BIWTAsIERQSU9fQ0gxKTsKPiArCj4gKwkJ LyogQ0wxIGlzIG9uIHdoZW5ldmVyIGFueXRoaW5nIGlzIG9uIGluIGVpdGhlciBjaGFubmVsICov Cj4gKwkJaWYgKEJJVFNfU0VUKHBoeV9jb250cm9sLAo+ICsJCQkgICAgIFBIWV9DSF9QT1dFUl9E T1dOX09WUkQoMHhmLCBEUElPX1BIWTAsIERQSU9fQ0gwKSB8Cj4gKwkJCSAgICAgUEhZX0NIX1BP V0VSX0RPV05fT1ZSRCgweGYsIERQSU9fUEhZMCwgRFBJT19DSDEpKSkKPiArCQkJcGh5X3N0YXR1 cyB8PSBQSFlfU1RBVFVTX0NNTl9MRE8oRFBJT19QSFkwLCBEUElPX0NIMCk7Cj4gKwo+ICsJCS8q Cj4gKwkJICogVGhlIERQTExCIGNoZWNrIGFjY291bnRzIGZvciB0aGUgcGlwZSBCICsgcG9ydCBB IHVzYWdlCj4gKwkJICogd2l0aCBDTDIgcG93ZXJlZCB1cCBidXQgYWxsIHRoZSBsYW5lcyBpbiB0 aGUgc2Vjb25kIGNoYW5uZWwKPiArCQkgKiBwb3dlcmVkIGRvd24uCj4gKwkJICovCj4gKwkJaWYg KEJJVFNfU0VUKHBoeV9jb250cm9sLAo+ICsJCQkgICAgIFBIWV9DSF9QT1dFUl9ET1dOX09WUkQo MHhmLCBEUElPX1BIWTAsIERQSU9fQ0gxKSkgJiYKPiArCQkgICAgKEk5MTVfUkVBRChEUExMKFBJ UEVfQikpICYgRFBMTF9WQ09fRU5BQkxFKSA9PSAwKQo+ICsJCQlwaHlfc3RhdHVzIHw9IFBIWV9T VEFUVVNfQ01OX0xETyhEUElPX1BIWTAsIERQSU9fQ0gxKTsKPiArCj4gKwkJaWYgKEJJVFNfU0VU KHBoeV9jb250cm9sLAo+ICsJCQkgICAgIFBIWV9DSF9QT1dFUl9ET1dOX09WUkQoMHgzLCBEUElP X1BIWTAsIERQSU9fQ0gwKSkpCj4gKwkJCXBoeV9zdGF0dXMgfD0gUEhZX1NUQVRVU19TUExJTkVf TERPKERQSU9fUEhZMCwgRFBJT19DSDAsIDApOwo+ICsJCWlmIChCSVRTX1NFVChwaHlfY29udHJv bCwKPiArCQkJICAgICBQSFlfQ0hfUE9XRVJfRE9XTl9PVlJEKDB4YywgRFBJT19QSFkwLCBEUElP X0NIMCkpKQo+ICsJCQlwaHlfc3RhdHVzIHw9IFBIWV9TVEFUVVNfU1BMSU5FX0xETyhEUElPX1BI WTAsIERQSU9fQ0gwLCAxKTsKPiArCj4gKwkJaWYgKEJJVFNfU0VUKHBoeV9jb250cm9sLAo+ICsJ CQkgICAgIFBIWV9DSF9QT1dFUl9ET1dOX09WUkQoMHgzLCBEUElPX1BIWTAsIERQSU9fQ0gxKSkp Cj4gKwkJCXBoeV9zdGF0dXMgfD0gUEhZX1NUQVRVU19TUExJTkVfTERPKERQSU9fUEhZMCwgRFBJ T19DSDEsIDApOwo+ICsJCWlmIChCSVRTX1NFVChwaHlfY29udHJvbCwKPiArCQkJICAgICBQSFlf Q0hfUE9XRVJfRE9XTl9PVlJEKDB4YywgRFBJT19QSFkwLCBEUElPX0NIMSkpKQo+ICsJCQlwaHlf c3RhdHVzIHw9IFBIWV9TVEFUVVNfU1BMSU5FX0xETyhEUElPX1BIWTAsIERQSU9fQ0gxLCAxKTsK PiArCX0KPiArCj4gKwlpZiAoY21uX2QtPm9wcy0+aXNfZW5hYmxlZChkZXZfcHJpdiwgY21uX2Qp KSB7Cj4gKwkJcGh5X3N0YXR1cyB8PSBQSFlfUE9XRVJHT09EKERQSU9fUEhZMSk7Cj4gKwo+ICsJ CS8qIHRoaXMgYXNzdW1lcyBvdmVycmlkZSBpcyBvbmx5IHVzZWQgdG8gZW5hYmxlIGxhbmVzICov Cj4gKwkJaWYgKChwaHlfY29udHJvbCAmIFBIWV9DSF9QT1dFUl9ET1dOX09WUkRfRU4oRFBJT19Q SFkxLCBEUElPX0NIMCkpID09IDApCj4gKwkJCXBoeV9jb250cm9sIHw9IFBIWV9DSF9QT1dFUl9E T1dOX09WUkQoMHhmLCBEUElPX1BIWTEsIERQSU9fQ0gwKTsKPiArCj4gKwkJaWYgKEJJVFNfU0VU KHBoeV9jb250cm9sLAo+ICsJCQkgICAgIFBIWV9DSF9QT1dFUl9ET1dOX09WUkQoMHhmLCBEUElP X1BIWTEsIERQSU9fQ0gwKSkpCj4gKwkJCXBoeV9zdGF0dXMgfD0gUEhZX1NUQVRVU19DTU5fTERP KERQSU9fUEhZMSwgRFBJT19DSDApOwo+ICsKPiArCQlpZiAoQklUU19TRVQocGh5X2NvbnRyb2ws Cj4gKwkJCSAgICAgUEhZX0NIX1BPV0VSX0RPV05fT1ZSRCgweDMsIERQSU9fUEhZMSwgRFBJT19D SDApKSkKPiArCQkJcGh5X3N0YXR1cyB8PSBQSFlfU1RBVFVTX1NQTElORV9MRE8oRFBJT19QSFkx LCBEUElPX0NIMCwgMCk7Cj4gKwkJaWYgKEJJVFNfU0VUKHBoeV9jb250cm9sLAo+ICsJCQkgICAg IFBIWV9DSF9QT1dFUl9ET1dOX09WUkQoMHhjLCBEUElPX1BIWTEsIERQSU9fQ0gwKSkpCj4gKwkJ CXBoeV9zdGF0dXMgfD0gUEhZX1NUQVRVU19TUExJTkVfTERPKERQSU9fUEhZMSwgRFBJT19DSDAs IDEpOwo+ICsJfQo+ICsKPiArCS8qCj4gKwkgKiBUaGUgUEhZIG1heSBiZSBidXN5IHdpdGggc29t ZSBpbml0aWFsIGNhbGlicmF0aW9uIGFuZCB3aGF0bm90LAo+ICsJICogc28gdGhlIHBvd2VyIHN0 YXRlIGNhbiB0YWtlIGEgd2hpbGUgdG8gYWN0dWFsbHkgY2hhbmdlLgo+ICsJICovCj4gKwlpZiAo d2FpdF9mb3IoKHRtcCA9IEk5MTVfUkVBRChESVNQTEFZX1BIWV9TVEFUVVMpKSA9PSBwaHlfc3Rh dHVzLCAxMCkpCj4gKwkJV0FSTihwaHlfc3RhdHVzICE9IHRtcCwKPiArCQkgICAgICJVbmV4cGVj dGVkIFBIWV9TVEFUVVMgMHglMDh4LCBleHBlY3RlZCAweCUwOHggKFBIWV9DT05UUk9MPTB4JTA4 eClcbiIsCj4gKwkJICAgICB0bXAsIHBoeV9zdGF0dXMsIGRldl9wcml2LT5jaHZfcGh5X2NvbnRy b2wpOwo+ICt9Cj4gKwo+ICsjdW5kZWYgQklUU19TRVQKPiArCj4gICBzdGF0aWMgdm9pZCBjaHZf ZHBpb19jbW5fcG93ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAgCQkJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQo+ICAg ewo+IEBAIC05OTgsNiArMTA5OSw4IEBAIHN0YXRpYyB2b2lkIGNodl9kcGlvX2Ntbl9wb3dlcl93 ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAKPiAgIAlE Uk1fREVCVUdfS01TKCJFbmFibGVkIERQSU8gUEhZJWQgKFBIWV9DT05UUk9MPTB4JTA4eClcbiIs Cj4gICAJCSAgICAgIHBoeSwgZGV2X3ByaXYtPmNodl9waHlfY29udHJvbCk7Cj4gKwo+ICsJYXNz ZXJ0X2Nodl9waHlfc3RhdHVzKGRldl9wcml2KTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQg Y2h2X2RwaW9fY21uX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gQEAgLTEwMjQsNiArMTEyNyw4IEBAIHN0YXRpYyB2b2lkIGNodl9kcGlvX2Nt bl9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAgCj4gICAJRFJNX0RFQlVHX0tNUygiRGlzYWJsZWQgRFBJTyBQSFklZCAoUEhZX0NPTlRST0w9 MHglMDh4KVxuIiwKPiAgIAkJICAgICAgcGh5LCBkZXZfcHJpdi0+Y2h2X3BoeV9jb250cm9sKTsK PiArCj4gKwlhc3NlcnRfY2h2X3BoeV9zdGF0dXMoZGV2X3ByaXYpOwo+ICAgfQo+ICAgCj4gICBz dGF0aWMgdm9pZCBhc3NlcnRfY2h2X3BoeV9wb3dlcmdhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSwKPiBAQCAtMTEwMSw2ICsxMjA2LDggQEAg Ym9vbCBjaHZfcGh5X3Bvd2VyZ2F0ZV9jaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gZHBpb19waHkgcGh5LAo+ICAgCURSTV9ERUJVR19LTVMoIlBvd2VyIGdhdGluZyBE UElPIFBIWSVkIENIJWQgKERQSU9fUEhZX0NPTlRST0w9MHglMDh4KVxuIiwKPiAgIAkJICAgICAg cGh5LCBjaCwgZGV2X3ByaXYtPmNodl9waHlfY29udHJvbCk7Cj4gICAKPiArCWFzc2VydF9jaHZf cGh5X3N0YXR1cyhkZXZfcHJpdik7Cj4gKwo+ICAgb3V0Ogo+ICAgCW11dGV4X3VubG9jaygmcG93 ZXJfZG9tYWlucy0+bG9jayk7Cj4gICAKPiBAQCAtMTEzMCw2ICsxMjM3LDggQEAgdm9pZCBjaHZf cGh5X3Bvd2VyZ2F0ZV9sYW5lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAlE Uk1fREVCVUdfS01TKCJQb3dlciBnYXRpbmcgRFBJTyBQSFklZCBDSCVkIGxhbmVzIDB4JXggKFBI WV9DT05UUk9MPTB4JTA4eClcbiIsCj4gICAJCSAgICAgIHBoeSwgY2gsIG1hc2ssIGRldl9wcml2 LT5jaHZfcGh5X2NvbnRyb2wpOwo+ICAgCj4gKwlhc3NlcnRfY2h2X3BoeV9zdGF0dXMoZGV2X3By aXYpOwo+ICsKUGF0Y2ggbG9va3MgZmluZSB3aXRoIGFzc2VydGlvbiBhdCByaWdodCBwbGFjZXMK UmV2aWV3ZWQtYnk6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+Cj4gICAJYXNz ZXJ0X2Nodl9waHlfcG93ZXJnYXRlKGRldl9wcml2LCBwaHksIGNoLCBvdmVycmlkZSwgbWFzayk7 Cj4gICAKPiAgIAltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+IEBAIC0xMzAy LDggKzE0MTEsNiBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 Cj4gICB9Cj4gICAKPiAtI2RlZmluZSBQT1dFUl9ET01BSU5fTUFTSyAoQklUKFBPV0VSX0RPTUFJ Tl9OVU0pIC0gMSkKPiAtCj4gICAjZGVmaW5lIEhTV19BTFdBWVNfT05fUE9XRVJfRE9NQUlOUyAo CQkJXAo+ICAgCUJJVChQT1dFUl9ET01BSU5fUElQRV9BKSB8CQkJXAo+ICAgCUJJVChQT1dFUl9E T01BSU5fVFJBTlNDT0RFUl9FRFApIHwJCVwKPiBAQCAtMTU2NSwyMSArMTY3Miw2IEBAIHN0YXRp YyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsIGNodl9wb3dlcl93ZWxsc1tdID0gewo+ICAgCX0sCj4g ICB9Owo+ICAgCj4gLXN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpsb29rdXBfcG93ZXJf d2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkJCSBpbnQgcG93 ZXJfd2VsbF9pZCkKPiAtewo+IC0Jc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9t YWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKPiAtCXN0cnVjdCBpOTE1X3Bvd2VyX3dl bGwgKnBvd2VyX3dlbGw7Cj4gLQlpbnQgaTsKPiAtCj4gLQlmb3JfZWFjaF9wb3dlcl93ZWxsKGks IHBvd2VyX3dlbGwsIFBPV0VSX0RPTUFJTl9NQVNLLCBwb3dlcl9kb21haW5zKSB7Cj4gLQkJaWYg KHBvd2VyX3dlbGwtPmRhdGEgPT0gcG93ZXJfd2VsbF9pZCkKPiAtCQkJcmV0dXJuIHBvd2VyX3dl bGw7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIE5VTEw7Cj4gLX0KPiAtCj4gICBib29sIGludGVsX2Rp c3BsYXlfcG93ZXJfd2VsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgIAkJCQkgICAgaW50IHBvd2VyX3dlbGxfaWQpCj4gICB7CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=