From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Subject: Re: [PATCH 13/15] drm/i915: Clean up CHV lane soft reset programming Date: Thu, 27 Aug 2015 09:55:29 +0530 Message-ID: <55DE9139.2020008@linux.intel.com> References: <1436388361-11130-1-git-send-email-ville.syrjala@linux.intel.com> <1436388361-11130-14-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C3F96E07C for ; Wed, 26 Aug 2015 21:27:42 -0700 (PDT) In-Reply-To: <1436388361-11130-14-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 CgpPbiAwNy8wOS8yMDE1IDAyOjE1IEFNLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+Cj4gQ3VycmVudGx5IHdlIHJlbGVzYXIgdGhlIGxhbmUgc29mdCByZXNldCBiZWZvcmUg bGFuZSBzdGFnZ2VyIHNldHRpbmdzCj4gaGF2ZSBiZWVuIHByb2dyYW1tZWQuIEkgYmVsaWV2ZSB0 aGF0IG1lYW5zIHdlIGRvbid0IGFjdHVhbGx5IGRvIGxhbmUKPiBzdGFnZ2VyaW5nLiBTbyBtb3Zl IHRoZSBzb2Z0IHJlc2V0IGRlYXNzZXJ0IHRvIGhhcHBlbiBhZnRlciBsYW5lCj4gc3RhZ2dlcmlu ZyBoYXMgYmVlbiBwcm9ncmFtbWVkLgo+Cj4gVGhlIG9uZSBjb25mdXNpbmcgdGhpbmcgaW4gdGhp cyBpcyB0aGF0IHdoZW4gd2UgcmVtb3ZlIHRoZSBwb3dlciBkb3duCj4gb3ZlcnJpZGUgZnJvbSB0 aGUgbGFuZXMsIHRoZXkgcG93ZXIgdXAgd2l0aCBkZWZhdWwgcmVnaXN0ZXIgdmFsdWVzLAo+IHdo aWNoIGRvIG5vdCBoYXZlIHRoZSBzb2Z0IHJlc2V0IG92ZXJyaWRlcyBlbmFibGVkLiBBbmQgYWNj b3JkaW5nIHRvCj4gc29tZSBkb2NzIGJ5IGRlZmF1bHQgdGhlIGRhdGEgbGFuZSByZXNldHMgYXJl IHRpZWQgdG8gY21ucmVzZXQuIFNvIHRoYXQKPiB3b3VsZCBtZWFuIHRoYXQgbGFuZXMgd291bGQg Y29tZSBvdXQgb2YgcmVzZXQgd2l0aG91dCBzdGFnZ2VyaW5nIGFzCj4gc29vbiBhcyB0aGUgcG93 ZXIgZG93biBvdmVycmlkZXMgYXJlIHJlbW92ZWQuIEJ1dCBzaW5lIHdlIGNhbid0IGFjY2Vzcwo+ IGVpdGhlciB0aGUgbGFuZSBzdGFnZ2VyIHJlZ2lzdGVyIG5vciB0aGUgc29mdCByZXNldCBvdmVy cmlkZSByZWdpc3RlcnMKPiB1bnRpbCB0aGUgbGFuZXMgYXJlIHBvd2VyZWQgb24sIHdlIGNhbiBy ZWFsbHkgZG8gYW55dGhpbmcgYWJvdXQgaXQuCj4gU28gbGV0J3MganVzdCBzZXQgdGhlIHNvZnQg cmVzZXQgb3ZlcnJpZGVzIGFzIHNvb24gYXMgdGhlIGxhbmUgaXMKPiBwb3dlcmVkIG9uIGFuZCBo b3BlIGZvciB0aGUgYmVzdC4KPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jICAgfCA5MSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDkxICsrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5z ZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBp bmRleCA4MTdkZjg3Li4yOTdiZDE0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAg LTIzODksNDIgKzIzODksNjIgQEAgc3RhdGljIHZvaWQgdmx2X3Bvc3RfZGlzYWJsZV9kcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIAlpbnRlbF9kcF9saW5rX2Rvd24oaW50ZWxf ZHApOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIGNodl9wb3N0X2Rpc2FibGVfZHAoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGNodl9kYXRhX2xhbmVfc29m dF9yZXNldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICAgYm9vbCBy ZXNldCkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmVuY29kZXItPmJhc2UpOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQo+ IC0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCWVudW0gZHBpb19jaGFu bmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwo+IC0JZW51bSBwaXBlIHBpcGUg PSBpbnRlbF9jcnRjLT5waXBlOwo+IC0JdTMyIHZhbDsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsJZW51bSBkcGlv X2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChlbmNfdG9fZGlnX3BvcnQoJmVuY29k ZXItPmJhc2UpKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhl bmNvZGVyLT5iYXNlLmNydGMpOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsJ dWludDMyX3QgdmFsOwo+ICAgCj4gLQlpbnRlbF9kcF9saW5rX2Rvd24oaW50ZWxfZHApOwo+ICsJ dmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMChjaCkpOwo+ ICsJaWYgKHJlc2V0KQo+ICsJCXZhbCAmPSB+KERQSU9fUENTX1RYX0xBTkUyX1JFU0VUIHwgRFBJ T19QQ1NfVFhfTEFORTFfUkVTRVQpOwo+ICsJZWxzZQo+ICsJCXZhbCB8PSBEUElPX1BDU19UWF9M QU5FMl9SRVNFVCB8IERQSU9fUENTX1RYX0xBTkUxX1JFU0VUOwo+ICsJdmx2X2RwaW9fd3JpdGUo ZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzAoY2gpLCB2YWwpOwo+ICAgCj4gLQltdXRleF9s b2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gKwlpZiAoY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50 ID4gMikgewo+ICsJCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1My M19EVzAoY2gpKTsKPiArCQlpZiAocmVzZXQpCj4gKwkJCXZhbCAmPSB+KERQSU9fUENTX1RYX0xB TkUyX1JFU0VUIHwgRFBJT19QQ1NfVFhfTEFORTFfUkVTRVQpOwo+ICsJCWVsc2UKPiArCQkJdmFs IHw9IERQSU9fUENTX1RYX0xBTkUyX1JFU0VUIHwgRFBJT19QQ1NfVFhfTEFORTFfUkVTRVQ7Cj4g KwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzAoY2gpLCB2YWwp Owo+ICsJfQo+ICAgCj4gLQkvKiBQcm9wYWdhdGUgc29mdCByZXNldCB0byBkYXRhIGxhbmUgcmVz ZXQgKi8KPiAgIAl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFf RFcxKGNoKSk7Cj4gICAJdmFsIHw9IENIVl9QQ1NfUkVRX1NPRlRSRVNFVF9FTjsKPiArCWlmIChy ZXNldCkKPiArCQl2YWwgJj0gfkRQSU9fUENTX0NMS19TT0ZUX1JFU0VUOwo+ICsJZWxzZQo+ICsJ CXZhbCB8PSBEUElPX1BDU19DTEtfU09GVF9SRVNFVDsKPiAgIAl2bHZfZHBpb193cml0ZShkZXZf cHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMShjaCksIHZhbCk7Cj4gICAKPiAtCWlmIChpbnRlbF9j cnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gKwlpZiAoY3J0Yy0+Y29uZmlnLT5sYW5l X2NvdW50ID4gMikgewo+ICAgCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMjNfRFcxKGNoKSk7Cj4gICAJCXZhbCB8PSBDSFZfUENTX1JFUV9TT0ZUUkVTRVRfRU47 Cj4gKwkJaWYgKHJlc2V0KQo+ICsJCQl2YWwgJj0gfkRQSU9fUENTX0NMS19TT0ZUX1JFU0VUOwo+ ICsJCWVsc2UKPiArCQkJdmFsIHw9IERQSU9fUENTX0NMS19TT0ZUX1JFU0VUOwo+ICAgCQl2bHZf ZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMShjaCksIHZhbCk7Cj4gICAJ fQo+ICt9Cj4gICAKPiAtCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9Q Q1MwMV9EVzAoY2gpKTsKPiAtCXZhbCAmPSB+KERQSU9fUENTX1RYX0xBTkUyX1JFU0VUIHwgRFBJ T19QQ1NfVFhfTEFORTFfUkVTRVQpOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUs IFZMVl9QQ1MwMV9EVzAoY2gpLCB2YWwpOwo+ICtzdGF0aWMgdm9pZCBjaHZfcG9zdF9kaXNhYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAKPiAtCWlmIChpbnRl bF9jcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gLQkJdmFsID0gdmx2X2RwaW9fcmVh ZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMChjaCkpOwo+IC0JCXZhbCAmPSB+KERQSU9f UENTX1RYX0xBTkUyX1JFU0VUIHwgRFBJT19QQ1NfVFhfTEFORTFfUkVTRVQpOwo+IC0JCXZsdl9k cGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcwKGNoKSwgdmFsKTsKPiAtCX0K PiArCWludGVsX2RwX2xpbmtfZG93bihpbnRlbF9kcCk7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPnNiX2xvY2spOwo+ICsKPiArCS8qIEFzc2VydCBkYXRhIGxhbmUgcmVzZXQgKi8KPiAr CWNodl9kYXRhX2xhbmVfc29mdF9yZXNldChlbmNvZGVyLCB0cnVlKTsKPiAgIAo+ICAgCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ICAgfQo+IEBAIC0yODAyLDI3ICsyODIyLDYg QEAgc3RhdGljIHZvaWQgY2h2X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gICAJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcx MShjaCksIHZhbCk7Cj4gICAJfQo+ICAgCj4gLQkvKiBEZWFzc2VydCBzb2Z0IGRhdGEgbGFuZSBy ZXNldCovCj4gLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFf RFcxKGNoKSk7Cj4gLQl2YWwgfD0gQ0hWX1BDU19SRVFfU09GVFJFU0VUX0VOOwo+IC0Jdmx2X2Rw aW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEoY2gpLCB2YWwpOwo+IC0KPiAt CWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gLQkJdmFsID0gdmx2 X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMShjaCkpOwo+IC0JCXZhbCB8 PSBDSFZfUENTX1JFUV9TT0ZUUkVTRVRfRU47Cj4gLQkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYs IHBpcGUsIFZMVl9QQ1MyM19EVzEoY2gpLCB2YWwpOwo+IC0JfQo+IC0KPiAtCXZhbCA9IHZsdl9k cGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzAoY2gpKTsKPiAtCXZhbCB8PSAo RFBJT19QQ1NfVFhfTEFORTJfUkVTRVQgfCBEUElPX1BDU19UWF9MQU5FMV9SRVNFVCk7Cj4gLQl2 bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMChjaCksIHZhbCk7Cj4g LQo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3VudCA+IDIpIHsKPiAtCQl2YWwg PSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcwKGNoKSk7Cj4gLQkJ dmFsIHw9IChEUElPX1BDU19UWF9MQU5FMl9SRVNFVCB8IERQSU9fUENTX1RYX0xBTkUxX1JFU0VU KTsKPiAtCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMChjaCks IHZhbCk7Cj4gLQl9Cj4gLQo+ICAgCS8qIFByb2dyYW0gVHggbGFuZSBsYXRlbmN5IG9wdGltYWwg c2V0dGluZyovCj4gICAJZm9yIChpID0gMDsgaSA8IGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9j b3VudDsgaSsrKSB7Cj4gICAJCS8qIFNldCB0aGUgdXBhciBiaXQgKi8KPiBAQCAtMjg3Miw2ICsy ODcxLDkgQEAgc3RhdGljIHZvaWQgY2h2X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gICAJCQkgICAgICAgRFBJT19UWDJfU1RBR0dFUl9NVUxUKDUpKTsKPiAg IAl9Cj4gICAKPiArCS8qIERlYXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwo+ICsJY2h2X2RhdGFf bGFuZV9zb2Z0X3Jlc2V0KGVuY29kZXIsIGZhbHNlKTsKPiArCj4gICAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+c2JfbG9jayk7Cj4gICAKPiAgIAlpbnRlbF9lbmFibGVfZHAoZW5jb2Rlcik7Cj4g QEAgLTI5MTAsNiArMjkxMiw5IEBAIHN0YXRpYyB2b2lkIGNodl9kcF9wcmVfcGxsX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIAo+ICAgCW11dGV4X2xvY2soJmRldl9w cml2LT5zYl9sb2NrKTsKPiAgIAo+ICsJLyogQXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwo+ICsJ Y2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KGVuY29kZXIsIHRydWUpOwo+ICsKPiAgIAkvKiBwcm9n cmFtIGxlZnQvcmlnaHQgY2xvY2sgZGlzdHJpYnV0aW9uICovCj4gICAJaWYgKHBpcGUgIT0gUElQ RV9CKSB7Cj4gICAJCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01O X0RXNV9DSDApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCA0YjYwNGVlLi4x NzZkNjgxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBAIC0xNjEyLDYgKzE2 MTIsNTAgQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7 Cj4gICB9Cj4gICAKPiArc3RhdGljIHZvaWQgY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICAgICBib29sIHJlc2V0KQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiArCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwo ZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiArCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKPiArCXVpbnQzMl90IHZhbDsKPiArCj4gKwl2YWwgPSB2bHZfZHBp b19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcwKGNoKSk7Cj4gKwlpZiAocmVzZXQp Cj4gKwkJdmFsICY9IH4oRFBJT19QQ1NfVFhfTEFORTJfUkVTRVQgfCBEUElPX1BDU19UWF9MQU5F MV9SRVNFVCk7Cj4gKwllbHNlCj4gKwkJdmFsIHw9IERQSU9fUENTX1RYX0xBTkUyX1JFU0VUIHwg RFBJT19QQ1NfVFhfTEFORTFfUkVTRVQ7Cj4gKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlw ZSwgVkxWX1BDUzAxX0RXMChjaCksIHZhbCk7Cj4gKwo+ICsJaWYgKGNydGMtPmNvbmZpZy0+bGFu ZV9jb3VudCA+IDIpIHsKPiArCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMjNfRFcwKGNoKSk7Cj4gKwkJaWYgKHJlc2V0KQo+ICsJCQl2YWwgJj0gfihEUElPX1BD U19UWF9MQU5FMl9SRVNFVCB8IERQSU9fUENTX1RYX0xBTkUxX1JFU0VUKTsKPiArCQllbHNlCj4g KwkJCXZhbCB8PSBEUElPX1BDU19UWF9MQU5FMl9SRVNFVCB8IERQSU9fUENTX1RYX0xBTkUxX1JF U0VUOwo+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcwKGNo KSwgdmFsKTsKPiArCX0KPiArCj4gKwl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBl LCBWTFZfUENTMDFfRFcxKGNoKSk7Cj4gKwl2YWwgfD0gQ0hWX1BDU19SRVFfU09GVFJFU0VUX0VO Owo+ICsJaWYgKHJlc2V0KQo+ICsJCXZhbCAmPSB+RFBJT19QQ1NfQ0xLX1NPRlRfUkVTRVQ7Cj4g KwllbHNlCj4gKwkJdmFsIHw9IERQSU9fUENTX0NMS19TT0ZUX1JFU0VUOwo+ICsJdmx2X2RwaW9f d3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEoY2gpLCB2YWwpOwo+ICsKPiArCWlm IChjcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gKwkJdmFsID0gdmx2X2RwaW9fcmVh ZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMShjaCkpOwo+ICsJCXZhbCB8PSBDSFZfUENT X1JFUV9TT0ZUUkVTRVRfRU47Cj4gKwkJaWYgKHJlc2V0KQo+ICsJCQl2YWwgJj0gfkRQSU9fUENT X0NMS19TT0ZUX1JFU0VUOwo+ICsJCWVsc2UKPiArCQkJdmFsIHw9IERQSU9fUENTX0NMS19TT0ZU X1JFU0VUOwo+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcx KGNoKSwgdmFsKTsKPiArCX0KPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9w bGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5i YXNlKTsKPiBAQCAtMTYzNyw2ICsxNjgxLDkgQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX3Bs bF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICAKPiAgIAltdXRleF9s b2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gICAKPiArCS8qIEFzc2VydCBkYXRhIGxhbmUgcmVz ZXQgKi8KPiArCWNodl9kYXRhX2xhbmVfc29mdF9yZXNldChlbmNvZGVyLCB0cnVlKTsKPiArCj4g ICAJLyogcHJvZ3JhbSBsZWZ0L3JpZ2h0IGNsb2NrIGRpc3RyaWJ1dGlvbiAqLwo+ICAgCWlmIChw aXBlICE9IFBJUEVfQikgewo+ICAgCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBl LCBfQ0hWX0NNTl9EVzVfQ0gwKTsKPiBAQCAtMTczOSwzMyArMTc4NiwxMyBAQCBzdGF0aWMgdm9p ZCB2bHZfaGRtaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g ICAKPiAgIHN0YXRpYyB2b2lkIGNodl9oZG1pX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAgIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0KPiAtCQl0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gLQllbnVt IGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKPiAtCWVudW0g cGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCXUzMiB2YWw7Cj4gICAKPiAgIAltdXRl eF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gICAKPiAtCS8qIFByb3BhZ2F0ZSBzb2Z0IHJl c2V0IHRvIGRhdGEgbGFuZSByZXNldCAqLwo+IC0JdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJp diwgcGlwZSwgVkxWX1BDUzAxX0RXMShjaCkpOwo+IC0JdmFsIHw9IENIVl9QQ1NfUkVRX1NPRlRS RVNFVF9FTjsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcx KGNoKSwgdmFsKTsKPiAtCj4gLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMjNfRFcxKGNoKSk7Cj4gLQl2YWwgfD0gQ0hWX1BDU19SRVFfU09GVFJFU0VUX0VOOwo+ IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzEoY2gpLCB2YWwp Owo+IC0KPiAtCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9E VzAoY2gpKTsKPiAtCXZhbCAmPSB+KERQSU9fUENTX1RYX0xBTkUyX1JFU0VUIHwgRFBJT19QQ1Nf VFhfTEFORTFfUkVTRVQpOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9Q Q1MwMV9EVzAoY2gpLCB2YWwpOwo+IC0KPiAtCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYs IHBpcGUsIFZMVl9QQ1MyM19EVzAoY2gpKTsKPiAtCXZhbCAmPSB+KERQSU9fUENTX1RYX0xBTkUy X1JFU0VUIHwgRFBJT19QQ1NfVFhfTEFORTFfUkVTRVQpOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2 X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzAoY2gpLCB2YWwpOwo+ICsJLyogQXNzZXJ0IGRhdGEg bGFuZSByZXNldCAqLwo+ICsJY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KGVuY29kZXIsIHRydWUp Owo+ICAgCj4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gICB9Cj4gQEAg LTE3OTYsMjMgKzE4MjMsNiBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9wcmVfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCXZhbCAmPSB+RFBJT19MQU5FREVTS0VXX1NU UkFQX09WUkQ7Cj4gICAJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19E VzExKGNoKSwgdmFsKTsKPiAgIAo+IC0JLyogRGVhc3NlcnQgc29mdCBkYXRhIGxhbmUgcmVzZXQq Lwo+IC0JdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMShj aCkpOwo+IC0JdmFsIHw9IENIVl9QQ1NfUkVRX1NPRlRSRVNFVF9FTjsKPiAtCXZsdl9kcGlvX3dy aXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxKGNoKSwgdmFsKTsKPiAtCj4gLQl2YWwg PSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcxKGNoKSk7Cj4gLQl2 YWwgfD0gQ0hWX1BDU19SRVFfU09GVFJFU0VUX0VOOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3By aXYsIHBpcGUsIFZMVl9QQ1MyM19EVzEoY2gpLCB2YWwpOwo+IC0KPiAtCXZhbCA9IHZsdl9kcGlv X3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzAoY2gpKTsKPiAtCXZhbCB8PSAoRFBJ T19QQ1NfVFhfTEFORTJfUkVTRVQgfCBEUElPX1BDU19UWF9MQU5FMV9SRVNFVCk7Cj4gLQl2bHZf ZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMChjaCksIHZhbCk7Cj4gLQo+ IC0JdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMChjaCkp Owo+IC0JdmFsIHw9IChEUElPX1BDU19UWF9MQU5FMl9SRVNFVCB8IERQSU9fUENTX1RYX0xBTkUx X1JFU0VUKTsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcw KGNoKSwgdmFsKTsKPiAtCj4gICAJLyogUHJvZ3JhbSBUeCBsYXRlbmN5IG9wdGltYWwgc2V0dGlu ZyAqLwo+ICAgCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKPiAgIAkJLyogU2V0IHRoZSB1cGFy IGJpdCAqLwo+IEBAIC0xODU1LDYgKzE4NjUsOSBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9wcmVf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCQkgICAgICAgRFBJT19U WDFfU1RBR0dFUl9NVUxUKDcpIHwKPiAgIAkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCg1 KSk7Cj4gICAKPiArCS8qIERlYXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwo+ICsJY2h2X2RhdGFf bGFuZV9zb2Z0X3Jlc2V0KGVuY29kZXIsIGZhbHNlKTsKPiArCj4gICAJLyogQ2xlYXIgY2FsYyBp bml0ICovCj4gICAJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAx X0RXMTAoY2gpKTsKPiAgIAl2YWwgJj0gfihEUElPX1BDU19TV0lOR19DQUxDX1RYMF9UWDIgfCBE UElPX1BDU19TV0lOR19DQUxDX1RYMV9UWDMpOwpDaGFuZ2VzIGxvb2tzIGZpbmUKUmV2aWV3ZWQt Ynk6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==