From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 05/20] drm/i915/icl: Interrupt handling Date: Wed, 14 Feb 2018 15:37:20 +0200 Message-ID: <873723vgj3.fsf@gaia.fi.intel.com> References: <20180213163738.9055-1-mika.kuoppala@linux.intel.com> <20180213163738.9055-6-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id F316189169 for ; Wed, 14 Feb 2018 13:39:39 +0000 (UTC) In-Reply-To: <20180213163738.9055-6-mika.kuoppala@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 Cc: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org TWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+IHdyaXRlczoKCj4g RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPgo+IHYyOiBS ZWJhc2UuCj4KPiB2MzoKPiAgICogUmVtb3ZlIERQRiwgaXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9t IFNLTCsuCj4gICAqIEZpeCAtaW50ZXJuYWwgcmViYXNlIHdydC4gZXhlY2xpc3RzIGludGVycnVw dCBoYW5kbGluZy4KPgo+IHY0OiBSZWJhc2UuCj4KPiB2NToKPiAgICogVXBkYXRlZCBmb3IgUE9S IGNoYW5nZXMuIChEYW5pZWxlIENlcmFvbG8gU3B1cmlvKQo+ICAgKiBNZXJnZWQgd2l0aCBpcnEg aGFuZGxpbmcgZml4ZXMgYnkgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbzoKPiAgICAgICAqIFNpbXBs aWZ5IHRoZSBjb2RlIGJ5IHVzaW5nIGdlbjhfY3NfaXJxX2hhbmRsZXIuCj4gICAgICAgKiBGaXgg aW50ZXJydXB0IGhhbmRsaW5nIGZvciB0aGUgdXBzdHJlYW0ga2VybmVsLgo+Cj4gdjY6Cj4gICAq IFJlbW92ZSBlYXJseSBicmluZ3VwIGRlYnVnIG1lc3NhZ2VzIChUdnJ0a28pCj4gICAqIEFkZCBO QiBhYm91dCBhcmJpdHJhcnkgc3BpbiB3YWl0IHRpbWVvdXQgKFR2cnRrbykKPgo+IHY3IChmcm9t IFBhdWxvKToKPiAgICogRG9uJ3QgdHJ5IHRvIHdyaXRlIFJPIGJpdHMgdG8gcmVnaXN0ZXJzLgo+ ICAgKiBEb24ndCBjaGVjayBmb3IgUENIIHR5cGVzIHRoYXQgZG9uJ3QgZXhpc3QuIFBDSCBpbnRl cnJ1cHRzIGFyZSBub3QKPiAgICAgaGVyZSB5ZXQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28g VXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFJvZHJp Z28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxl IENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IFNpZ25l ZC1vZmYtYnk6IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9m Zi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgfCAyMTAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwg ICA3ICstCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjE2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IGI4ODZiZDQ1OWFjYy4uM2ExZGU0 ZTJhOTQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTQxNSw2ICs0MTUsOSBA QCB2b2lkIGdlbjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgCWlmIChSRUFEX09OQ0UocnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQpKQo+ ICAJCXJldHVybjsKPiAgCj4gKwlpZiAoV0FSTl9PTl9PTkNFKElTX0dFTjExKGRldl9wcml2KSkp Cj4gKwkJcmV0dXJuOwo+ICsKPiAgCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7 Cj4gIAlXQVJOX09OX09OQ0UocnBzLT5wbV9paXIpOwo+ICAJV0FSTl9PTl9PTkNFKEk5MTVfUkVB RChnZW42X3BtX2lpcihkZXZfcHJpdikpICYgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwo+IEBA IC00MzEsNiArNDM0LDkgQEAgdm9pZCBnZW42X2Rpc2FibGVfcnBzX2ludGVycnVwdHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaWYgKCFSRUFEX09OQ0UocnBzLT5pbnRl cnJ1cHRzX2VuYWJsZWQpKQo+ICAJCXJldHVybjsKPiAgCj4gKwlpZiAoV0FSTl9PTl9PTkNFKElT X0dFTjExKGRldl9wcml2KSkpCj4gKwkJcmV0dXJuOwo+ICsKPiAgCXNwaW5fbG9ja19pcnEoJmRl dl9wcml2LT5pcnFfbG9jayk7Cj4gIAlycHMtPmludGVycnVwdHNfZW5hYmxlZCA9IGZhbHNlOwo+ ICAKPiBAQCAtMjc0Niw2ICsyNzUyLDEzMSBAQCBzdGF0aWMgdm9pZCBfX2Zpbmlfd2VkZ2Uoc3Ry dWN0IHdlZGdlX21lICp3KQo+ICAJICAgICAoVyktPmk5MTU7CQkJCQkJCVwKPiAgCSAgICAgX19m aW5pX3dlZGdlKChXKSkpCj4gIAo+ICtzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQKPiArZ2Vu MTFfY3NfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWly KQo+ICt7Cj4gKwlnZW44X2NzX2lycV9oYW5kbGVyKGVuZ2luZSwgaWlyLCAwKTsKPiArfQo+ICsK PiArc3RhdGljIGlycXJldHVybl90Cj4gK2dlbjExX2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc3Rlcl9jdGwpCj4gK3sKPiArCWlycXJldHVy bl90IHJldCA9IElSUV9OT05FOwo+ICsJdTE2IGlycVsyXVszMl07Cj4gKwl1MzIgZHcsIGlkZW50 Owo+ICsJdW5zaWduZWQgbG9uZyB0bXA7Cj4gKwl1bnNpZ25lZCBpbnQgYmFuaywgYml0LCBlbmdp bmU7Cj4gKwl1bnNpZ25lZCBsb25nIHdhaXRfc3RhcnQsIHdhaXRfZW5kOwo+ICsKPiArCW1lbXNl dChpcnEsIDAsIHNpemVvZihpcnEpKTsKPiArCj4gKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgMjsg YmFuaysrKSB7Cj4gKwkJaWYgKG1hc3Rlcl9jdGwgJiBHRU4xMV9HVF9EV19JUlEoYmFuaykpIHsK PiArCQkJZHcgPSBJOTE1X1JFQURfRlcoR0VOMTFfR1RfSU5UUl9EVyhiYW5rKSk7Cj4gKwkJCWlm ICghZHcpCj4gKwkJCQlEUk1fRVJST1IoIkdUX0lOVFJfRFcldSBibGFuayFcbiIsIGJhbmspOwo+ ICsJCQl0bXAgPSBkdzsKPiArCQkJZm9yX2VhY2hfc2V0X2JpdChiaXQsICZ0bXAsIDMyKSB7Cj4g KwkJCQlJOTE1X1dSSVRFX0ZXKEdFTjExX0lJUl9SRUdfU0VMRUNUT1IoYmFuayksIDEgPDwgYml0 KTsKPiArCQkJCXdhaXRfc3RhcnQgPSBsb2NhbF9jbG9jaygpID4+IDEwOwo+ICsJCQkJLyogTkI6 IFNwZWNzIGRvIG5vdCBzcGVjaWZ5IGhvdyBsb25nIHRvIHNwaW4gd2FpdC4KPiArCQkJCSAqIFRh a2luZyAxMDB1cyBhcyBhbiBlZHVjYXRlZCBndWVzcyAqLwo+ICsJCQkJd2FpdF9lbmQgPSB3YWl0 X3N0YXJ0ICsgMTAwOwo+ICsJCQkJZG8gewo+ICsJCQkJCWlkZW50ID0gSTkxNV9SRUFEX0ZXKEdF TjExX0lOVFJfSURFTlRJVFlfUkVHKGJhbmspKTsKPiArCQkJCX0gd2hpbGUgKCEoaWRlbnQgJiBH RU4xMV9JTlRSX0RBVEFfVkFMSUQpICYmCj4gKwkJCQkJICF0aW1lX2FmdGVyKCh1bnNpZ25lZCBs b25nKWxvY2FsX2Nsb2NrKCkgPj4gMTAsIHdhaXRfZW5kKSk7Cj4gKwo+ICsJCQkJaWYgKCEoaWRl bnQgJiBHRU4xMV9JTlRSX0RBVEFfVkFMSUQpKQo+ICsJCQkJCURSTV9FUlJPUigiSU5UUl9JREVO VElUWV9SRUcldToldSB0aW1lZCBvdXQhXG4iLAo+ICsJCQkJCQkgIGJhbmssIGJpdCk7Cj4gKwo+ ICsJCQkJaXJxW2JhbmtdW2JpdF0gPSBpZGVudCAmIEdFTjExX0lOVFJfRU5HSU5FX01BU0s7Cj4g KwkJCQlpZiAoIWlycVtiYW5rXVtiaXRdKQo+ICsJCQkJCURSTV9FUlJPUigiSU5UUl9JREVOVElU WV9SRUcldToldSBibGFuayFcbiIsCj4gKwkJCQkJCSAgYmFuaywgYml0KTsKPiArCQkJCUk5MTVf V1JJVEVfRlcoR0VOMTFfSU5UUl9JREVOVElUWV9SRUcoYmFuayksIGlkZW50KTsKPiArCQkJfQo+ ICsJCQlJOTE1X1dSSVRFX0ZXKEdFTjExX0dUX0lOVFJfRFcoYmFuayksIGR3KTsKPiArCQl9Cj4g Kwl9Cj4gKwo+ICsJaWYgKGlycVswXVtHRU4xMV9SQ1MwXSkgewo+ICsJCWdlbjExX2NzX2lycV9o YW5kbGVyKGRldl9wcml2LT5lbmdpbmVbUkNTXSwKPiArCQkJCSAgICAgaXJxWzBdW0dFTjExX1JD UzBdKTsKPiArCQlyZXQgPSBJUlFfSEFORExFRDsKPiArCX0KPiArCj4gKwlpZiAoaXJxWzBdW0dF TjExX0JDU10pIHsKPiArCQlnZW4xMV9jc19pcnFfaGFuZGxlcihkZXZfcHJpdi0+ZW5naW5lW0JD U10sCj4gKwkJCQkgICAgIGlycVswXVtHRU4xMV9CQ1NdKTsKPiArCQlyZXQgPSBJUlFfSEFORExF RDsKPiArCX0KPiArCj4gKwlmb3IgKGVuZ2luZSA9IDA7IGVuZ2luZSA8IDQ7IGVuZ2luZSsrKSB7 Cj4gKwkJaWYgKGlycVsxXVtHRU4xMV9WQ1MoZW5naW5lKV0pIHsKPiArCQkJZ2VuMTFfY3NfaXJx X2hhbmRsZXIoZGV2X3ByaXYtPmVuZ2luZVtfVkNTKGVuZ2luZSldLAo+ICsJCQkJCSAgICAgaXJx WzFdW0dFTjExX1ZDUyhlbmdpbmUpXSk7Cj4gKwkJCXJldCA9IElSUV9IQU5ETEVEOwo+ICsJCX0K PiArCX0KPiArCj4gKwlmb3IgKGVuZ2luZSA9IDA7IGVuZ2luZSA8IDI7IGVuZ2luZSsrKSB7Cj4g KwkJaWYgKGlycVsxXVtHRU4xMV9WRUNTKGVuZ2luZSldKSB7Cj4gKwkJCWdlbjExX2NzX2lycV9o YW5kbGVyKGRldl9wcml2LT5lbmdpbmVbX1ZFQ1MoZW5naW5lKV0sCj4gKwkJCQkJICAgICBpcnFb MV1bR0VOMTFfVkVDUyhlbmdpbmUpXSk7Cj4gKwkJCXJldCA9IElSUV9IQU5ETEVEOwo+ICsJCX0K PiArCX0KPiArCj4gKwlpZiAoaXJxWzBdW0dFTjExX0dUUE1dICYgZGV2X3ByaXYtPnBtX3Jwc19l dmVudHMpIHsKPiArCQlyZXQgPSBJUlFfSEFORExFRDsKPiArCQlnZW42X3Jwc19pcnFfaGFuZGxl cihkZXZfcHJpdiwgdG1wKTsKClRoaXMgdG1wIGluIGhlcmUgbG9va3MgbGlrZSBpdCBjYW4ndCBi ZSByaWdodC4KLU1pa2EKCj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3Rh dGljIGlycXJldHVybl90IGdlbjExX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKPiAr ewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFyZzsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1MzIgbWFzdGVyX2N0bDsK PiArCXUzMiBkaXNwX2N0bDsKPiArCWlycXJldHVybl90IHJldDsKPiArCj4gKwlpZiAoIWludGVs X2lycXNfZW5hYmxlZChkZXZfcHJpdikpCj4gKwkJcmV0dXJuIElSUV9OT05FOwo+ICsKPiArCW1h c3Rlcl9jdGwgPSBJOTE1X1JFQURfRlcoR0VOMTFfR0ZYX01TVFJfSVJRKTsKPiArCj4gKwltYXN0 ZXJfY3RsICY9IH5HRU4xMV9NQVNURVJfSVJROwo+ICsJaWYgKCFtYXN0ZXJfY3RsKQo+ICsJCXJl dHVybiBJUlFfTk9ORTsKPiArCj4gKwkvKiBEaXNhYmxlIGludGVycnVwdHMuICovCj4gKwlJOTE1 X1dSSVRFX0ZXKEdFTjExX0dGWF9NU1RSX0lSUSwgMCk7Cj4gKwo+ICsJLyogSVJRcyBhcmUgc3lu Y2VkIGR1cmluZyBydW50aW1lX3N1c3BlbmQsIHdlIGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICov Cj4gKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwo+ICsKPiArCS8qIEZp bmQsIGNsZWFyLCB0aGVuIHByb2Nlc3MgZWFjaCBzb3VyY2Ugb2YgaW50ZXJydXB0LiAqLwo+ICsJ cmV0ID0gZ2VuMTFfZ3RfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIG1hc3Rlcl9jdGwpOwo+ICsKPiAr CWlmIChtYXN0ZXJfY3RsICYgR0VOMTFfRElTUExBWV9JUlEpIHsKPiArCQlkaXNwX2N0bCA9IEk5 MTVfUkVBRF9GVyhHRU4xMV9ESVNQTEFZX0lOVF9DVEwpOwo+ICsJCXJldCB8PSBnZW44X2RlX2ly cV9oYW5kbGVyKGRldl9wcml2LCBkaXNwX2N0bCk7Cj4gKwl9Cj4gKwo+ICsJLyogQWNrbm93bGVk Z2UgYW5kIGVuYWJsZSBpbnRlcnJ1cHRzLiAqLwo+ICsJSTkxNV9XUklURV9GVyhHRU4xMV9HRlhf TVNUUl9JUlEsIEdFTjExX01BU1RFUl9JUlEgfCBtYXN0ZXJfY3RsKTsKPiArCVBPU1RJTkdfUkVB RF9GVyhHRU4xMV9HRlhfTVNUUl9JUlEpOwo+ICsKPiArCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3Nl cnRzKGRldl9wcml2KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICAvKioKPiAgICog aTkxNV9yZXNldF9kZXZpY2UgLSBkbyBwcm9jZXNzIGNvbnRleHQgZXJyb3IgaGFuZGxpbmcgd29y awo+ICAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKPiBAQCAtMzE1OSw2ICszMjkw LDQyIEBAIHN0YXRpYyB2b2lkIGdlbjhfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAkJaWJ4X2lycV9yZXNldChkZXZfcHJpdik7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGdl bjExX2d0X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sK PiArCS8qIERpc2FibGUgUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBjbGFzcyBlbmdpbmVzLiAqLwo+ ICsJSTkxNV9XUklURShHRU4xMV9SRU5ERVJfQ09QWV9JTlRSX0VOQUJMRSwgMCk7Cj4gKwlJOTE1 X1dSSVRFKEdFTjExX1ZDU19WRUNTX0lOVFJfRU5BQkxFLAkgIDApOwo+ICsKPiArCS8qIFJlc3Rv cmUgbWFza3MgaXJxcyBvbiBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGVuZ2luZXMuICovCj4gKwlJ OTE1X1dSSVRFKEdFTjExX1JDUzBfUlNWRF9JTlRSX01BU0ssCX4wKTsKPiArCUk5MTVfV1JJVEUo R0VOMTFfQkNTX1JTVkRfSU5UUl9NQVNLLAl+MCk7Cj4gKwlJOTE1X1dSSVRFKEdFTjExX1ZDUzBf VkNTMV9JTlRSX01BU0ssCX4wKTsKPiArCUk5MTVfV1JJVEUoR0VOMTFfVkNTMl9WQ1MzX0lOVFJf TUFTSywJfjApOwo+ICsJSTkxNV9XUklURShHRU4xMV9WRUNTMF9WRUNTMV9JTlRSX01BU0ssCX4w KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2VuMTFfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gKwlpbnQgcGlwZTsKPiArCj4gKwlJOTE1X1dSSVRFKEdFTjExX0dG WF9NU1RSX0lSUSwgMCk7Cj4gKwlQT1NUSU5HX1JFQUQoR0VOMTFfR0ZYX01TVFJfSVJRKTsKPiAr Cj4gKwlnZW4xMV9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOwo+ICsKPiArCUk5MTVfV1JJVEUoR0VO MTFfRElTUExBWV9JTlRfQ1RMLCAwKTsKPiArCj4gKwlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBw aXBlKQo+ICsJCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYsCj4g KwkJCQkJCSAgIFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpKSkKPiArCQkJR0VOOF9JUlFfUkVTRVRf TkRYKERFX1BJUEUsIHBpcGUpOwo+ICsKPiArCUdFTjNfSVJRX1JFU0VUKEdFTjhfREVfUE9SVF8p Owo+ICsJR0VOM19JUlFfUkVTRVQoR0VOOF9ERV9NSVNDXyk7Cj4gKwlHRU4zX0lSUV9SRVNFVChH RU44X1BDVV8pOwo+ICt9Cj4gKwo+ICB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcG9zdF9lbmFi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJICAgICB1OCBwaXBl X21hc2spCj4gIHsKPiBAQCAtMzY1Niw2ICszODIzLDQxIEBAIHN0YXRpYyBpbnQgZ2VuOF9pcnFf cG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+ICtzdGF0aWMgdm9pZCBnZW4xMV9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwljb25zdCB1MzIgaXJxcyA9IEdUX1JFTkRFUl9V U0VSX0lOVEVSUlVQVCB8IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVDsKPiArCj4gKwlCVUlM RF9CVUdfT04oaXJxcyAmIDB4ZmZmZjAwMDApOwo+ICsKPiArCS8qIEVuYWJsZSBSQ1MsIEJDUywg VkNTIGFuZCBWRUNTIGNsYXNzIGludGVycnVwdHMuICovCj4gKwlJOTE1X1dSSVRFKEdFTjExX1JF TkRFUl9DT1BZX0lOVFJfRU5BQkxFLCBpcnFzIDw8IDE2IHwgaXJxcyk7Cj4gKwlJOTE1X1dSSVRF KEdFTjExX1ZDU19WRUNTX0lOVFJfRU5BQkxFLAkgIGlycXMgPDwgMTYgfCBpcnFzKTsKPiArCj4g KwkvKiBVbm1hc2sgaXJxcyBvbiBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGVuZ2luZXMuICovCj4g KwlJOTE1X1dSSVRFKEdFTjExX1JDUzBfUlNWRF9JTlRSX01BU0ssCX4oaXJxcyA8PCAxNikpOwo+ ICsJSTkxNV9XUklURShHRU4xMV9CQ1NfUlNWRF9JTlRSX01BU0ssCX4oaXJxcyA8PCAxNikpOwo+ ICsJSTkxNV9XUklURShHRU4xMV9WQ1MwX1ZDUzFfSU5UUl9NQVNLLAl+KGlycXMgfCBpcnFzIDw8 IDE2KSk7Cj4gKwlJOTE1X1dSSVRFKEdFTjExX1ZDUzJfVkNTM19JTlRSX01BU0ssCX4oaXJxcyB8 IGlycXMgPDwgMTYpKTsKPiArCUk5MTVfV1JJVEUoR0VOMTFfVkVDUzBfVkVDUzFfSU5UUl9NQVNL LAl+KGlycXMgfCBpcnFzIDw8IDE2KSk7Cj4gKwo+ICsJZGV2X3ByaXYtPnBtX2ltciA9IDB4ZmZm ZmZmZmY7IC8qIFRPRE8gKi8KPiArfQo+ICsKPiArc3RhdGljIGludCBnZW4xMV9pcnFfcG9zdGlu c3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4gKwlnZW4xMV9ndF9pcnFf cG9zdGluc3RhbGwoZGV2X3ByaXYpOwo+ICsJZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoZGV2X3By aXYpOwo+ICsKPiArCUk5MTVfV1JJVEUoR0VOMTFfRElTUExBWV9JTlRfQ1RMLCBHRU4xMV9ESVNQ TEFZX0lSUV9FTkFCTEUpOwo+ICsKPiArCUk5MTVfV1JJVEUoR0VOMTFfR0ZYX01TVFJfSVJRLCBH RU4xMV9NQVNURVJfSVJRKTsKPiArCVBPU1RJTkdfUkVBRChHRU4xMV9HRlhfTVNUUl9JUlEpOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGNoZXJyeXZpZXdfaXJxX3Bv c3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBAQCAtNDEwNCw2ICs0MzA2LDE0 IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICAJCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gaTk2NV9lbmFibGVfdmJsYW5rOwo+ ICAJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGk5NjVfZGlzYWJsZV92Ymxhbms7Cj4g IAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGk5MTVfaHBkX2lycV9zZXR1cDsK PiArCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+ICsJCWRldi0+ZHJp dmVyLT5pcnFfaGFuZGxlciA9IGdlbjExX2lycV9oYW5kbGVyOwo+ICsJCWRldi0+ZHJpdmVyLT5p cnFfcHJlaW5zdGFsbCA9IGdlbjExX2lycV9yZXNldDsKPiArCQlkZXYtPmRyaXZlci0+aXJxX3Bv c3RpbnN0YWxsID0gZ2VuMTFfaXJxX3Bvc3RpbnN0YWxsOwo+ICsJCWRldi0+ZHJpdmVyLT5pcnFf dW5pbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0Owo+ICsJCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJs YW5rID0gZ2VuOF9lbmFibGVfdmJsYW5rOwo+ICsJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFu ayA9IGdlbjhfZGlzYWJsZV92Ymxhbms7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9z ZXR1cCA9IHNwdF9ocGRfaXJxX3NldHVwOwo+ICAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDgpIHsKPiAgCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBnZW44X2lycV9oYW5k bGVyOwo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGdlbjhfaXJxX3Jlc2V0Owo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGQ4OGYxMDdiMGQ1MC4uMDg3Zjk4MTQ2MWU3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTgwMjcsNyArODAyNywxMCBAQCB2 b2lkIGludGVsX3Nhbml0aXplX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAlkZXZfcHJpdi0+Z3RfcG0ucmM2LmVuYWJsZWQgPSB0cnVlOyAvKiBmb3Jj ZSBSQzYgZGlzYWJsaW5nICovCj4gIAlpbnRlbF9kaXNhYmxlX2d0X3Bvd2Vyc2F2ZShkZXZfcHJp dik7Cj4gIAo+IC0JZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDExKQo+ICsJCWdlbjZfcmVzZXRfcnBzX2ludGVycnVwdHMo ZGV2X3ByaXYpOwo+ICsJZWxzZQo+ICsJCVdBUk5fT05fT05DRSgxKTsKPiAgfQo+ICAKPiAgc3Rh dGljIGlubGluZSB2b2lkIGludGVsX2Rpc2FibGVfbGxjX3BzdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKPiBAQCAtODE0MCw2ICs4MTQzLDggQEAgc3RhdGljIHZvaWQgaW50ZWxf ZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJY2hlcnJ5 dmlld19lbmFibGVfcnBzKGRldl9wcml2KTsKPiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhk ZXZfcHJpdikpIHsKPiAgCQl2YWxsZXl2aWV3X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwo+ICsJfSBl bHNlIGlmIChXQVJOX09OX09OQ0UoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkpIHsKPiArCQkv KiBUT0RPICovCj4gIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ICAJ CWdlbjlfZW5hYmxlX3JwcyhkZXZfcHJpdik7Cj4gIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChk ZXZfcHJpdikpIHsKPiAtLSAKPiAyLjE0LjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK