From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/3] drm/i915: fully convert the IRQ initialization macros to intel_uncore Date: Tue, 9 Apr 2019 23:21:25 +0300 Message-ID: <20190409202125.GC3888@intel.com> References: <20190409003729.20857-1-paulo.r.zanoni@intel.com> <20190409003729.20857-4-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id C37EC89254 for ; Tue, 9 Apr 2019 20:21:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190409003729.20857-4-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBcHIgMDgsIDIwMTkgYXQgMDU6Mzc6MjlQTSAtMDcwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IE1ha2UgdGhlbSB0YWtlIHRoZSB1bmNvcmUgYXJndW1lbnQgZnJvbSB0aGUgY2FsbGVy IGluc3RlYWQgb2YgcGFzc2luZwo+IHRoZSBpbXBsaWNpdCAmZGV2X3ByaXYtPnVuY29yZSBkaXJl Y3RseS4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGZpbmFsbHkKPiBwYXNzIHNvbWV0aGluZyB0aGF0 J3Mgbm90IGRldl9wcml2LT51bmNvcmUgaW4gdGhlIGZ1dHVyZSwgYW5kIGdldHMgcmlkCj4gb2Yg dGhlIGltcGxpY2l0IHZhcmlhYmxlcyBpbiByZWdpc3RlciBtYWNyb3MuCgpJJ3ZlIG5vdCBiZWVu IHBheWluZyBtdWNoIGF0dGVudGlvbiB0byB0aGUgdW5jb3JlIGRldmVsb3BtZW50cywKc28gSSdt IG5vdCBzdXJlIHRoaXMgbWF0Y2hlcyB3aGF0IG90aGVyIHBlb3BsZSB0aGluayB3ZSBzaG91bGQK ZG8uIEJ1dCB0ZWNoaW5hbGx5IHRoZXNlIGxvb2sgT0sgdG8gbWUuCgpQYXRjaGVzIDIgYW5kIDMg YXJlClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgoKQnV0IEkgZ3Vlc3MgZ2l2ZSBvdGhlciBwZW9wbGUgYSBiaXQgb2YgdGltZSB0byBj b21wbGFpbiBiZWZvcmUKcHVzaGluZyA6KQoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5v bmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICAx IGZpbGUgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCj4gaW5kZXggOTlhNjUyNzU2OGNmLi5iNjM2MWJhYjEwODYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTY2LDE1ICsxNjYsMTUgQEAgc3RhdGlj IHZvaWQgZ2VuMl9pcnFfcmVzZXQoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3Jl Z190IGltciwKPiAgCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWQxNih1bmNvcmUsIGlpcik7Cj4g IH0KPiAgCj4gLSNkZWZpbmUgR0VOOF9JUlFfUkVTRVRfTkRYKHR5cGUsIHdoaWNoKSBcCj4gLQln ZW4zX2lycV9yZXNldCgmZGV2X3ByaXYtPnVuY29yZSwgR0VOOF8jI3R5cGUjI19JTVIod2hpY2gp LCBcCj4gKyNkZWZpbmUgR0VOOF9JUlFfUkVTRVRfTkRYKHVuY29yZSwgdHlwZSwgd2hpY2gpIFwK PiArCWdlbjNfaXJxX3Jlc2V0KCh1bmNvcmUpLCBHRU44XyMjdHlwZSMjX0lNUih3aGljaCksIFwK PiAgCQkgICAgICAgR0VOOF8jI3R5cGUjI19JSVIod2hpY2gpLCBHRU44XyMjdHlwZSMjX0lFUih3 aGljaCkpCj4gIAo+IC0jZGVmaW5lIEdFTjNfSVJRX1JFU0VUKHR5cGUpIFwKPiAtCWdlbjNfaXJx X3Jlc2V0KCZkZXZfcHJpdi0+dW5jb3JlLCB0eXBlIyNJTVIsIHR5cGUjI0lJUiwgdHlwZSMjSUVS KQo+ICsjZGVmaW5lIEdFTjNfSVJRX1JFU0VUKHVuY29yZSwgdHlwZSkgXAo+ICsJZ2VuM19pcnFf cmVzZXQoKHVuY29yZSksIHR5cGUjI0lNUiwgdHlwZSMjSUlSLCB0eXBlIyNJRVIpCj4gIAo+IC0j ZGVmaW5lIEdFTjJfSVJRX1JFU0VUKHR5cGUpIFwKPiAtCWdlbjJfaXJxX3Jlc2V0KCZkZXZfcHJp di0+dW5jb3JlLCB0eXBlIyNJTVIsIHR5cGUjI0lJUiwgdHlwZSMjSUVSKQo+ICsjZGVmaW5lIEdF TjJfSVJRX1JFU0VUKHVuY29yZSwgdHlwZSkgXAo+ICsJZ2VuMl9pcnFfcmVzZXQoKHVuY29yZSks IHR5cGUjI0lNUiwgdHlwZSMjSUlSLCB0eXBlIyNJRVIpCj4gIAo+ICAvKgo+ICAgKiBXZSBzaG91 bGQgY2xlYXIgSU1SIGF0IHByZWluc3RhbGwvdW5pbnN0YWxsLCBhbmQganVzdCBjaGVjayBhdCBw b3N0aW5zdGFsbC4KPiBAQCAtMjMzLDE3ICsyMzMsMTcgQEAgc3RhdGljIHZvaWQgZ2VuMl9pcnFf aW5pdChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVfcmVnX3QgaW1yLAo+ICAJaW50 ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZDE2KHVuY29yZSwgaW1yKTsKPiAgfQo+ICAKPiAtI2RlZmlu ZSBHRU44X0lSUV9JTklUX05EWCh0eXBlLCB3aGljaCwgaW1yX3ZhbCwgaWVyX3ZhbCkgXAo+IC0J Z2VuM19pcnFfaW5pdCgmZGV2X3ByaXYtPnVuY29yZSwgR0VOOF8jI3R5cGUjI19JTVIod2hpY2gp LCBcCj4gKyNkZWZpbmUgR0VOOF9JUlFfSU5JVF9ORFgodW5jb3JlLCB0eXBlLCB3aGljaCwgaW1y X3ZhbCwgaWVyX3ZhbCkgXAo+ICsJZ2VuM19pcnFfaW5pdCgodW5jb3JlKSwgR0VOOF8jI3R5cGUj I19JTVIod2hpY2gpLCBcCj4gIAkJICAgICAgR0VOOF8jI3R5cGUjI19JSVIod2hpY2gpLCBHRU44 XyMjdHlwZSMjX0lFUih3aGljaCksIFwKPiAgCQkgICAgICBpbXJfdmFsLCBpZXJfdmFsKQo+ICAK PiAtI2RlZmluZSBHRU4zX0lSUV9JTklUKHR5cGUsIGltcl92YWwsIGllcl92YWwpIFwKPiAtCWdl bjNfaXJxX2luaXQoJmRldl9wcml2LT51bmNvcmUsIHR5cGUjI0lNUiwgdHlwZSMjSUlSLCB0eXBl IyNJRVIsIFwKPiArI2RlZmluZSBHRU4zX0lSUV9JTklUKHVuY29yZSwgdHlwZSwgaW1yX3ZhbCwg aWVyX3ZhbCkgXAo+ICsJZ2VuM19pcnFfaW5pdCgodW5jb3JlKSwgdHlwZSMjSU1SLCB0eXBlIyNJ SVIsIHR5cGUjI0lFUiwgXAo+ICAJCSAgICAgIGltcl92YWwsIGllcl92YWwpCj4gIAo+IC0jZGVm aW5lIEdFTjJfSVJRX0lOSVQodHlwZSwgaW1yX3ZhbCwgaWVyX3ZhbCkgXAo+IC0JZ2VuMl9pcnFf aW5pdCgmZGV2X3ByaXYtPnVuY29yZSwgdHlwZSMjSU1SLCB0eXBlIyNJSVIsIHR5cGUjI0lFUiwg XAo+ICsjZGVmaW5lIEdFTjJfSVJRX0lOSVQodW5jb3JlLCB0eXBlLCBpbXJfdmFsLCBpZXJfdmFs KSBcCj4gKwlnZW4yX2lycV9pbml0KCh1bmNvcmUpLCB0eXBlIyNJTVIsIHR5cGUjI0lJUiwgdHlw ZSMjSUVSLCBcCj4gIAkJICAgICAgaW1yX3ZhbCwgaWVyX3ZhbCkKPiAgCj4gIHN0YXRpYyB2b2lk IGdlbjZfcnBzX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg dTMyIHBtX2lpcik7Cj4gQEAgLTMzMzEsMTAgKzMzMzEsMTIgQEAgc3RhdGljIHZvaWQgaTk0NWdt X3ZibGFua193b3JrX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAK PiAgc3RhdGljIHZvaWQgaWJ4X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIHsKPiArCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+ dW5jb3JlOwo+ICsKPiAgCWlmIChIQVNfUENIX05PUChkZXZfcHJpdikpCj4gIAkJcmV0dXJuOwo+ ICAKPiAtCUdFTjNfSVJRX1JFU0VUKFNERSk7Cj4gKwlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIFNE RSk7Cj4gIAo+ICAJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSB8fCBIQVNfUENIX0xQVChkZXZf cHJpdikpCj4gIAkJSTkxNV9XUklURShTRVJSX0lOVCwgMHhmZmZmZmZmZik7Cj4gQEAgLTMzNjIs MTMgKzMzNjQsMTcgQEAgc3RhdGljIHZvaWQgaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Jlc2V0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+IC0JR0VOM19JUlFfUkVTRVQo R1QpOwo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7 Cj4gKwo+ICsJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBHVCk7Cj4gIAlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA2KQo+IC0JCUdFTjNfSVJRX1JFU0VUKEdFTjZfUE0pOwo+ICsJCUdFTjNfSVJR X1JFU0VUKHVuY29yZSwgR0VONl9QTSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHZsdl9kaXNw bGF5X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAr CXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICsKPiAg CWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQlJOTE1X1dSSVRFKERQSU5WR1RULCBE UElOVkdUVF9TVEFUVVNfTUFTS19DSFYpOwo+ICAJZWxzZQo+IEBAIC0zMzc5LDEyICszMzg1LDE0 IEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNwbGF5X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJaTl4eF9waXBlc3RhdF9pcnFfcmVzZXQoZGV2X3ByaXYp Owo+ICAKPiAtCUdFTjNfSVJRX1JFU0VUKFZMVl8pOwo+ICsJR0VOM19JUlFfUkVTRVQodW5jb3Jl LCBWTFZfKTsKPiAgCWRldl9wcml2LT5pcnFfbWFzayA9IH4wdTsKPiAgfQo+ICAKPiAgc3RhdGlj IHZvaWQgdmx2X2Rpc3BsYXlfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgewo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9w cml2LT51bmNvcmU7Cj4gKwo+ICAJdTMyIHBpcGVzdGF0X21hc2s7Cj4gIAl1MzIgZW5hYmxlX21h c2s7Cj4gIAllbnVtIHBpcGUgcGlwZTsKPiBAQCAtMzQwOSw3ICszNDE3LDcgQEAgc3RhdGljIHZv aWQgdmx2X2Rpc3BsYXlfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgCj4gIAlkZXZfcHJpdi0+aXJxX21hc2sgPSB+ZW5hYmxlX21hc2s7Cj4gIAo+ IC0JR0VOM19JUlFfSU5JVChWTFZfLCBkZXZfcHJpdi0+aXJxX21hc2ssIGVuYWJsZV9tYXNrKTsK PiArCUdFTjNfSVJRX0lOSVQodW5jb3JlLCBWTFZfLCBkZXZfcHJpdi0+aXJxX21hc2ssIGVuYWJs ZV9tYXNrKTsKPiAgfQo+ICAKPiAgLyogZHJtX2RtYS5oIGhvb2tzCj4gQEAgLTM0MTcsOCArMzQy NSw5IEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNwbGF5X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHN0YXRpYyB2b2lkIGlyb25sYWtlX2lycV9yZXNl dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNv cmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCj4gLQlHRU4zX0lSUV9SRVNFVChERSk7Cj4gKwlH RU4zX0lSUV9SRVNFVCh1bmNvcmUsIERFKTsKPiAgCWlmIChJU19HRU4oZGV2X3ByaXYsIDcpKQo+ ICAJCUk5MTVfV1JJVEUoR0VON19FUlJfSU5ULCAweGZmZmZmZmZmKTsKPiAgCj4gQEAgLTM0NDks MTUgKzM0NTgsMTggQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19pcnFfcmVzZXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Jlc2V0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+IC0JR0VOOF9JUlFfUkVTRVRfTkRY KEdULCAwKTsKPiAtCUdFTjhfSVJRX1JFU0VUX05EWChHVCwgMSk7Cj4gLQlHRU44X0lSUV9SRVNF VF9ORFgoR1QsIDIpOwo+IC0JR0VOOF9JUlFfUkVTRVRfTkRYKEdULCAzKTsKPiArCXN0cnVjdCBp bnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICsKPiArCUdFTjhfSVJR X1JFU0VUX05EWCh1bmNvcmUsIEdULCAwKTsKPiArCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUs IEdULCAxKTsKPiArCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIEdULCAyKTsKPiArCUdFTjhf SVJRX1JFU0VUX05EWCh1bmNvcmUsIEdULCAzKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZ2Vu OF9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGludGVsX3Vu Y29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAlpbnQgcGlwZTsKPiAgCj4gIAln ZW44X21hc3Rlcl9pbnRyX2Rpc2FibGUoZGV2X3ByaXYtPnVuY29yZS5yZWdzKTsKPiBAQCAtMzQ3 MCwxMSArMzQ4MiwxMSBAQCBzdGF0aWMgdm9pZCBnZW44X2lycV9yZXNldChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKPiAgCQlpZiAoaW50 ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGRldl9wcml2LAo+ICAJCQkJCQkgICBQT1dFUl9E T01BSU5fUElQRShwaXBlKSkpCj4gLQkJCUdFTjhfSVJRX1JFU0VUX05EWChERV9QSVBFLCBwaXBl KTsKPiArCQkJR0VOOF9JUlFfUkVTRVRfTkRYKHVuY29yZSwgREVfUElQRSwgcGlwZSk7Cj4gIAo+ IC0JR0VOM19JUlFfUkVTRVQoR0VOOF9ERV9QT1JUXyk7Cj4gLQlHRU4zX0lSUV9SRVNFVChHRU44 X0RFX01JU0NfKTsKPiAtCUdFTjNfSVJRX1JFU0VUKEdFTjhfUENVXyk7Cj4gKwlHRU4zX0lSUV9S RVNFVCh1bmNvcmUsIEdFTjhfREVfUE9SVF8pOwo+ICsJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBH RU44X0RFX01JU0NfKTsKPiArCUdFTjNfSVJRX1JFU0VUKHVuY29yZSwgR0VOOF9QQ1VfKTsKPiAg Cj4gIAlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCj4gIAkJaWJ4X2lycV9yZXNldChkZXZf cHJpdik7Cj4gQEAgLTM1MDAsNiArMzUxMiw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2d0X2lycV9y ZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHN0YXRpYyB2b2lkIGdl bjExX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGlu dGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAlpbnQgcGlwZTsKPiAg Cj4gIAlnZW4xMV9tYXN0ZXJfaW50cl9kaXNhYmxlKGRldl9wcml2LT51bmNvcmUucmVncyk7Cj4g QEAgLTM1MTQsMjEgKzM1MjcsMjMgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaXJxX3Jlc2V0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQo+ICAJ CWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYsCj4gIAkJCQkJCSAg IFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpKSkKPiAtCQkJR0VOOF9JUlFfUkVTRVRfTkRYKERFX1BJ UEUsIHBpcGUpOwo+ICsJCQlHRU44X0lSUV9SRVNFVF9ORFgodW5jb3JlLCBERV9QSVBFLCBwaXBl KTsKPiAgCj4gLQlHRU4zX0lSUV9SRVNFVChHRU44X0RFX1BPUlRfKTsKPiAtCUdFTjNfSVJRX1JF U0VUKEdFTjhfREVfTUlTQ18pOwo+IC0JR0VOM19JUlFfUkVTRVQoR0VOMTFfREVfSFBEXyk7Cj4g LQlHRU4zX0lSUV9SRVNFVChHRU4xMV9HVV9NSVNDXyk7Cj4gLQlHRU4zX0lSUV9SRVNFVChHRU44 X1BDVV8pOwo+ICsJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBHRU44X0RFX1BPUlRfKTsKPiArCUdF TjNfSVJRX1JFU0VUKHVuY29yZSwgR0VOOF9ERV9NSVNDXyk7Cj4gKwlHRU4zX0lSUV9SRVNFVCh1 bmNvcmUsIEdFTjExX0RFX0hQRF8pOwo+ICsJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBHRU4xMV9H VV9NSVNDXyk7Cj4gKwlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdFTjhfUENVXyk7Cj4gIAo+ICAJ aWYgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfSUNQKQo+IC0JCUdFTjNfSVJRX1JF U0VUKFNERSk7Cj4gKwkJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBTREUpOwo+ICB9Cj4gIAo+ICB2 b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCQkJICAgICB1OCBwaXBlX21hc2spCj4gIHsKPiArCXN0cnVjdCBp bnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICsKPiAgCXUzMiBleHRy YV9pZXIgPSBHRU44X1BJUEVfVkJMQU5LIHwgR0VOOF9QSVBFX0ZJRk9fVU5ERVJSVU47Cj4gIAll bnVtIHBpcGUgcGlwZTsKPiAgCj4gQEAgLTM1NDAsNyArMzU1NSw3IEBAIHZvaWQgZ2VuOF9pcnFf cG93ZXJfd2VsbF9wb3N0X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAl9Cj4gIAo+ICAJZm9yX2VhY2hfcGlwZV9tYXNrZWQoZGV2X3ByaXYsIHBpcGUsIHBpcGVf bWFzaykKPiAtCQlHRU44X0lSUV9JTklUX05EWChERV9QSVBFLCBwaXBlLAo+ICsJCUdFTjhfSVJR X0lOSVRfTkRYKHVuY29yZSwgREVfUElQRSwgcGlwZSwKPiAgCQkJCSAgZGV2X3ByaXYtPmRlX2ly cV9tYXNrW3BpcGVdLAo+ICAJCQkJICB+ZGV2X3ByaXYtPmRlX2lycV9tYXNrW3BpcGVdIHwgZXh0 cmFfaWVyKTsKPiAgCj4gQEAgLTM1NTAsNiArMzU2NSw3IEBAIHZvaWQgZ2VuOF9pcnFfcG93ZXJf d2VsbF9wb3N0X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHZv aWQgZ2VuOF9pcnFfcG93ZXJfd2VsbF9wcmVfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJCQkgICAgIHU4IHBpcGVfbWFzaykKPiAgewo+ICsJc3RydWN0IGlu dGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAllbnVtIHBpcGUgcGlw ZTsKPiAgCj4gIAlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+IEBAIC0zNTYw LDcgKzM1NzYsNyBAQCB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJfQo+ICAKPiAgCWZvcl9lYWNoX3BpcGVf bWFza2VkKGRldl9wcml2LCBwaXBlLCBwaXBlX21hc2spCj4gLQkJR0VOOF9JUlFfUkVTRVRfTkRY KERFX1BJUEUsIHBpcGUpOwo+ICsJCUdFTjhfSVJRX1JFU0VUX05EWCh1bmNvcmUsIERFX1BJUEUs IHBpcGUpOwo+ICAKPiAgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAg Cj4gQEAgLTM1NzEsMTMgKzM1ODcsMTQgQEAgdm9pZCBnZW44X2lycV9wb3dlcl93ZWxsX3ByZV9k aXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgc3RhdGljIHZvaWQg Y2hlcnJ5dmlld19pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAo+ICAJSTkxNV9X UklURShHRU44X01BU1RFUl9JUlEsIDApOwo+ICAJUE9TVElOR19SRUFEKEdFTjhfTUFTVEVSX0lS USk7Cj4gIAo+ICAJZ2VuOF9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOwo+ICAKPiAtCUdFTjNfSVJR X1JFU0VUKEdFTjhfUENVXyk7Cj4gKwlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIEdFTjhfUENVXyk7 Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAgCWlmIChkZXZf cHJpdi0+ZGlzcGxheV9pcnFzX2VuYWJsZWQpCj4gQEAgLTM4NjIsNiArMzg3OSw3IEBAIHN0YXRp YyB2b2lkIGlieF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgc3Rh dGljIHZvaWQgZ2VuNV9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp Owo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4g IAl1MzIgcG1faXJxcywgZ3RfaXJxczsKPiAgCj4gIAlwbV9pcnFzID0gZ3RfaXJxcyA9IDA7Cj4g QEAgLTM4ODAsNyArMzg5OCw3IEBAIHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZ3RfaXJxcyB8PSBHVF9CTFRfVVNFUl9JTlRF UlJVUFQgfCBHVF9CU0RfVVNFUl9JTlRFUlJVUFQ7Cj4gIAl9Cj4gIAo+IC0JR0VOM19JUlFfSU5J VChHVCwgZGV2X3ByaXYtPmd0X2lycV9tYXNrLCBndF9pcnFzKTsKPiArCUdFTjNfSVJRX0lOSVQo dW5jb3JlLCBHVCwgZGV2X3ByaXYtPmd0X2lycV9tYXNrLCBndF9pcnFzKTsKPiAgCj4gIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7Cj4gIAkJLyoKPiBAQCAtMzg5MywxMyArMzkxMSwx NCBAQCBzdGF0aWMgdm9pZCBnZW41X2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJCX0KPiAgCj4gIAkJZGV2X3ByaXYtPnBtX2ltciA9IDB4ZmZmZmZmZmY7Cj4g LQkJR0VOM19JUlFfSU5JVChHRU42X1BNLCBkZXZfcHJpdi0+cG1faW1yLCBwbV9pcnFzKTsKPiAr CQlHRU4zX0lSUV9JTklUKHVuY29yZSwgR0VONl9QTSwgZGV2X3ByaXYtPnBtX2ltciwgcG1faXJx cyk7Cj4gIAl9Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29y ZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICAJdTMyIGRpc3BsYXlfbWFzaywgZXh0cmFfbWFzazsK PiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSB7Cj4gQEAgLTM5MTgsNyArMzkz Nyw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gIAl9Cj4gIAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gLQkJ Z2VuM19hc3NlcnRfaWlyX2lzX3plcm8oJmRldl9wcml2LT51bmNvcmUsIEVEUF9QU1JfSUlSKTsK PiArCQlnZW4zX2Fzc2VydF9paXJfaXNfemVybyh1bmNvcmUsIEVEUF9QU1JfSUlSKTsKPiAgCQlp bnRlbF9wc3JfaXJxX2NvbnRyb2woZGV2X3ByaXYsIGRldl9wcml2LT5wc3IuZGVidWcpOwo+ICAJ CWRpc3BsYXlfbWFzayB8PSBERV9FRFBfUFNSX0lOVF9IU1c7Cj4gIAl9Cj4gQEAgLTM5MjcsNyAr Mzk0Niw4IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAo+ICAJaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoZGV2KTsKPiAgCj4g LQlHRU4zX0lSUV9JTklUKERFLCBkZXZfcHJpdi0+aXJxX21hc2ssIGRpc3BsYXlfbWFzayB8IGV4 dHJhX21hc2spOwo+ICsJR0VOM19JUlFfSU5JVCh1bmNvcmUsIERFLCBkZXZfcHJpdi0+aXJxX21h c2ssCj4gKwkJICAgICAgZGlzcGxheV9tYXNrIHwgZXh0cmFfbWFzayk7Cj4gIAo+ICAJZ2VuNV9n dF9pcnFfcG9zdGluc3RhbGwoZGV2KTsKPiAgCj4gQEAgLTM5OTcsNiArNDAxNyw4IEBAIHN0YXRp YyBpbnQgdmFsbGV5dmlld19pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgCj4gIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+ICsJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gJmRldl9wcml2LT51bmNvcmU7Cj4gKwo+ICAJLyogVGhlc2UgYXJlIGludGVycnVwdHMgd2Un bGwgdG9nZ2xlIHdpdGggdGhlIHJpbmcgbWFzayByZWdpc3RlciAqLwo+ICAJdTMyIGd0X2ludGVy cnVwdHNbXSA9IHsKPiAgCQkoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lS UV9TSElGVCB8Cj4gQEAgLTQwMTcsMTggKzQwMzksMjAgQEAgc3RhdGljIHZvaWQgZ2VuOF9ndF9p cnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAg CWRldl9wcml2LT5wbV9pZXIgPSAweDA7Cj4gIAlkZXZfcHJpdi0+cG1faW1yID0gfmRldl9wcml2 LT5wbV9pZXI7Cj4gLQlHRU44X0lSUV9JTklUX05EWChHVCwgMCwgfmd0X2ludGVycnVwdHNbMF0s IGd0X2ludGVycnVwdHNbMF0pOwo+IC0JR0VOOF9JUlFfSU5JVF9ORFgoR1QsIDEsIH5ndF9pbnRl cnJ1cHRzWzFdLCBndF9pbnRlcnJ1cHRzWzFdKTsKPiArCUdFTjhfSVJRX0lOSVRfTkRYKHVuY29y ZSwgR1QsIDAsIH5ndF9pbnRlcnJ1cHRzWzBdLCBndF9pbnRlcnJ1cHRzWzBdKTsKPiArCUdFTjhf SVJRX0lOSVRfTkRYKHVuY29yZSwgR1QsIDEsIH5ndF9pbnRlcnJ1cHRzWzFdLCBndF9pbnRlcnJ1 cHRzWzFdKTsKPiAgCS8qCj4gIAkgKiBSUFMgaW50ZXJydXB0cyB3aWxsIGdldCBlbmFibGVkL2Rp c2FibGVkIG9uIGRlbWFuZCB3aGVuIFJQUyBpdHNlbGYKPiAgCSAqIGlzIGVuYWJsZWQvZGlzYWJs ZWQuIFNhbWUgd2lsIGJlIHRoZSBjYXNlIGZvciBHdUMgaW50ZXJydXB0cy4KPiAgCSAqLwo+IC0J R0VOOF9JUlFfSU5JVF9ORFgoR1QsIDIsIGRldl9wcml2LT5wbV9pbXIsIGRldl9wcml2LT5wbV9p ZXIpOwo+IC0JR0VOOF9JUlFfSU5JVF9ORFgoR1QsIDMsIH5ndF9pbnRlcnJ1cHRzWzNdLCBndF9p bnRlcnJ1cHRzWzNdKTsKPiArCUdFTjhfSVJRX0lOSVRfTkRYKHVuY29yZSwgR1QsIDIsIGRldl9w cml2LT5wbV9pbXIsIGRldl9wcml2LT5wbV9pZXIpOwo+ICsJR0VOOF9JUlFfSU5JVF9ORFgodW5j b3JlLCBHVCwgMywgfmd0X2ludGVycnVwdHNbM10sIGd0X2ludGVycnVwdHNbM10pOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZCBnZW44X2RlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiArCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9 ICZkZXZfcHJpdi0+dW5jb3JlOwo+ICsKPiAgCXUzMiBkZV9waXBlX21hc2tlZCA9IEdFTjhfUElQ RV9DRENMS19DUkNfRE9ORTsKPiAgCXUzMiBkZV9waXBlX2VuYWJsZXM7Cj4gIAl1MzIgZGVfcG9y dF9tYXNrZWQgPSBHRU44X0FVWF9DSEFOTkVMX0E7Cj4gQEAgLTQwNjQsNyArNDA4OCw3IEBAIHN0 YXRpYyB2b2lkIGdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJZGVf cG9ydF9lbmFibGVzIHw9IEdFTjhfUE9SVF9EUF9BX0hPVFBMVUc7Cj4gIAo+IC0JZ2VuM19hc3Nl cnRfaWlyX2lzX3plcm8oJmRldl9wcml2LT51bmNvcmUsIEVEUF9QU1JfSUlSKTsKPiArCWdlbjNf YXNzZXJ0X2lpcl9pc196ZXJvKHVuY29yZSwgRURQX1BTUl9JSVIpOwo+ICAJaW50ZWxfcHNyX2ly cV9jb250cm9sKGRldl9wcml2LCBkZXZfcHJpdi0+cHNyLmRlYnVnKTsKPiAgCj4gIAlmb3JfZWFj aF9waXBlKGRldl9wcml2LCBwaXBlKSB7Cj4gQEAgLTQwNzIsMjAgKzQwOTYsMjEgQEAgc3RhdGlj IHZvaWQgZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAKPiAgCQlpZiAoaW50ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGRldl9w cml2LAo+ICAJCQkJUE9XRVJfRE9NQUlOX1BJUEUocGlwZSkpKQo+IC0JCQlHRU44X0lSUV9JTklU X05EWChERV9QSVBFLCBwaXBlLAo+ICsJCQlHRU44X0lSUV9JTklUX05EWCh1bmNvcmUsIERFX1BJ UEUsIHBpcGUsCj4gIAkJCQkJICBkZXZfcHJpdi0+ZGVfaXJxX21hc2tbcGlwZV0sCj4gIAkJCQkJ ICBkZV9waXBlX2VuYWJsZXMpOwo+ICAJfQo+ICAKPiAtCUdFTjNfSVJRX0lOSVQoR0VOOF9ERV9Q T1JUXywgfmRlX3BvcnRfbWFza2VkLCBkZV9wb3J0X2VuYWJsZXMpOwo+IC0JR0VOM19JUlFfSU5J VChHRU44X0RFX01JU0NfLCB+ZGVfbWlzY19tYXNrZWQsIGRlX21pc2NfbWFza2VkKTsKPiArCUdF TjNfSVJRX0lOSVQodW5jb3JlLCBHRU44X0RFX1BPUlRfLCB+ZGVfcG9ydF9tYXNrZWQsIGRlX3Bv cnRfZW5hYmxlcyk7Cj4gKwlHRU4zX0lSUV9JTklUKHVuY29yZSwgR0VOOF9ERV9NSVNDXywgfmRl X21pc2NfbWFza2VkLCBkZV9taXNjX21hc2tlZCk7Cj4gIAo+ICAJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTEpIHsKPiAgCQl1MzIgZGVfaHBkX21hc2tlZCA9IDA7Cj4gIAkJdTMyIGRlX2hw ZF9lbmFibGVzID0gR0VOMTFfREVfVENfSE9UUExVR19NQVNLIHwKPiAgCQkJCSAgICAgR0VOMTFf REVfVEJUX0hPVFBMVUdfTUFTSzsKPiAgCj4gLQkJR0VOM19JUlFfSU5JVChHRU4xMV9ERV9IUERf LCB+ZGVfaHBkX21hc2tlZCwgZGVfaHBkX2VuYWJsZXMpOwo+ICsJCUdFTjNfSVJRX0lOSVQodW5j b3JlLCBHRU4xMV9ERV9IUERfLCB+ZGVfaHBkX21hc2tlZCwKPiArCQkJICAgICAgZGVfaHBkX2Vu YWJsZXMpOwo+ICAJCWdlbjExX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYpOwo+ICAJfSBl bHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewo+ICAJCWJ4dF9ocGRfZGV0ZWN0aW9uX3Nl dHVwKGRldl9wcml2KTsKPiBAQCAtNDE1Nyw2ICs0MTgyLDcgQEAgc3RhdGljIHZvaWQgaWNwX2ly cV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICBzdGF0aWMgaW50IGdlbjEx X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gIAl1MzIgZ3VfbWlz Y19tYXNrZWQgPSBHRU4xMV9HVV9NSVNDX0dTRTsKPiAgCj4gIAlpZiAoSU5URUxfUENIX1RZUEUo ZGV2X3ByaXYpID49IFBDSF9JQ1ApCj4gQEAgLTQxNjUsNyArNDE5MSw3IEBAIHN0YXRpYyBpbnQg Z2VuMTFfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlnZW4xMV9n dF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwo+ICAJZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwo ZGV2X3ByaXYpOwo+ICAKPiAtCUdFTjNfSVJRX0lOSVQoR0VOMTFfR1VfTUlTQ18sIH5ndV9taXNj X21hc2tlZCwgZ3VfbWlzY19tYXNrZWQpOwo+ICsJR0VOM19JUlFfSU5JVCh1bmNvcmUsIEdFTjEx X0dVX01JU0NfLCB+Z3VfbWlzY19tYXNrZWQsIGd1X21pc2NfbWFza2VkKTsKPiAgCj4gIAlJOTE1 X1dSSVRFKEdFTjExX0RJU1BMQVlfSU5UX0NUTCwgR0VOMTFfRElTUExBWV9JUlFfRU5BQkxFKTsK PiAgCj4gQEAgLTQxOTUsMTUgKzQyMjEsMTcgQEAgc3RhdGljIGludCBjaGVycnl2aWV3X2lycV9w b3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICBzdGF0aWMgdm9pZCBpOHh4X2ly cV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCj4gIAlpOXh4X3BpcGVzdGF0X2lycV9y ZXNldChkZXZfcHJpdik7Cj4gIAo+IC0JR0VOMl9JUlFfUkVTRVQoKTsKPiArCUdFTjJfSVJRX1JF U0VUKHVuY29yZSwgKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBpOHh4X2lycV9wb3N0aW5zdGFs bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNv cmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCXUxNiBlbmFibGVfbWFzazsKPiAgCj4gIAlJOTE1 X1dSSVRFMTYoRU1SLCB+KEk5MTVfRVJST1JfUEFHRV9UQUJMRSB8Cj4gQEAgLTQyMjEsNyArNDI0 OSw3IEBAIHN0YXRpYyBpbnQgaTh4eF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCQlJOTE1X01BU1RFUl9FUlJPUl9JTlRFUlJVUFQgfAo+ICAJCUk5MTVfVVNFUl9J TlRFUlJVUFQ7Cj4gIAo+IC0JR0VOMl9JUlFfSU5JVCgsIGRldl9wcml2LT5pcnFfbWFzaywgZW5h YmxlX21hc2spOwo+ICsJR0VOMl9JUlFfSU5JVCh1bmNvcmUsICwgZGV2X3ByaXYtPmlycV9tYXNr LCBlbmFibGVfbWFzayk7Cj4gIAo+ICAJLyogSW50ZXJydXB0IHNldHVwIGlzIGFscmVhZHkgZ3Vh cmFudGVlZCB0byBiZSBzaW5nbGUtdGhyZWFkZWQsIHRoaXMgaXMKPiAgCSAqIGp1c3QgdG8gbWFr ZSB0aGUgYXNzZXJ0X3NwaW5fbG9ja2VkIGNoZWNrIGhhcHB5LiAqLwo+IEBAIC00MzU3LDYgKzQz ODUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTh4eF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lk ICphcmcpCj4gIHN0YXRpYyB2b2lkIGk5MTVfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKPiArCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3Jl Owo+ICAKPiAgCWlmIChJOTE1X0hBU19IT1RQTFVHKGRldl9wcml2KSkgewo+ICAJCWk5MTVfaG90 cGx1Z19pbnRlcnJ1cHRfdXBkYXRlKGRldl9wcml2LCAweGZmZmZmZmZmLCAwKTsKPiBAQCAtNDM2 NSwxMiArNDM5NCwxMyBAQCBzdGF0aWMgdm9pZCBpOTE1X2lycV9yZXNldChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAKPiAgCWk5eHhfcGlwZXN0YXRfaXJxX3Jlc2V0KGRldl9wcml2KTsKPiAg Cj4gLQlHRU4zX0lSUV9SRVNFVCgpOwo+ICsJR0VOM19JUlFfUkVTRVQodW5jb3JlLCApOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgaW50IGk5MTVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiArCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5j b3JlOwo+ICAJdTMyIGVuYWJsZV9tYXNrOwo+ICAKPiAgCUk5MTVfV1JJVEUoRU1SLCB+KEk5MTVf RVJST1JfUEFHRV9UQUJMRSB8Cj4gQEAgLTQzOTcsNyArNDQyNyw3IEBAIHN0YXRpYyBpbnQgaTkx NV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlkZXZfcHJpdi0+ aXJxX21hc2sgJj0gfkk5MTVfRElTUExBWV9QT1JUX0lOVEVSUlVQVDsKPiAgCX0KPiAgCj4gLQlH RU4zX0lSUV9JTklUKCwgZGV2X3ByaXYtPmlycV9tYXNrLCBlbmFibGVfbWFzayk7Cj4gKwlHRU4z X0lSUV9JTklUKHVuY29yZSwgLCBkZXZfcHJpdi0+aXJxX21hc2ssIGVuYWJsZV9tYXNrKTsKPiAg Cj4gIAkvKiBJbnRlcnJ1cHQgc2V0dXAgaXMgYWxyZWFkeSBndWFyYW50ZWVkIHRvIGJlIHNpbmds ZS10aHJlYWRlZCwgdGhpcyBpcwo+ICAJICoganVzdCB0byBtYWtlIHRoZSBhc3NlcnRfc3Bpbl9s b2NrZWQgY2hlY2sgaGFwcHkuICovCj4gQEAgLTQ0NjgsMTggKzQ0OTgsMjAgQEAgc3RhdGljIGly cXJldHVybl90IGk5MTVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ICBzdGF0aWMg dm9pZCBpOTY1X2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3Qg aW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCj4gIAlpOTE1X2hv dHBsdWdfaW50ZXJydXB0X3VwZGF0ZShkZXZfcHJpdiwgMHhmZmZmZmZmZiwgMCk7Cj4gIAlJOTE1 X1dSSVRFKFBPUlRfSE9UUExVR19TVEFULCBJOTE1X1JFQUQoUE9SVF9IT1RQTFVHX1NUQVQpKTsK PiAgCj4gIAlpOXh4X3BpcGVzdGF0X2lycV9yZXNldChkZXZfcHJpdik7Cj4gIAo+IC0JR0VOM19J UlFfUkVTRVQoKTsKPiArCUdFTjNfSVJRX1JFU0VUKHVuY29yZSwgKTsKPiAgfQo+ICAKPiAgc3Rh dGljIGludCBpOTY1X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g KwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKPiAgCXUz MiBlbmFibGVfbWFzazsKPiAgCXUzMiBlcnJvcl9tYXNrOwo+ICAKPiBAQCAtNDUxNyw3ICs0NTQ5 LDcgQEAgc3RhdGljIGludCBpOTY1X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAJaWYgKElTX0c0WChkZXZfcHJpdikpCj4gIAkJZW5hYmxlX21hc2sgfD0gSTkxNV9C U0RfVVNFUl9JTlRFUlJVUFQ7Cj4gIAo+IC0JR0VOM19JUlFfSU5JVCgsIGRldl9wcml2LT5pcnFf bWFzaywgZW5hYmxlX21hc2spOwo+ICsJR0VOM19JUlFfSU5JVCh1bmNvcmUsICwgZGV2X3ByaXYt PmlycV9tYXNrLCBlbmFibGVfbWFzayk7Cj4gIAo+ICAJLyogSW50ZXJydXB0IHNldHVwIGlzIGFs cmVhZHkgZ3VhcmFudGVlZCB0byBiZSBzaW5nbGUtdGhyZWFkZWQsIHRoaXMgaXMKPiAgCSAqIGp1 c3QgdG8gbWFrZSB0aGUgYXNzZXJ0X3NwaW5fbG9ja2VkIGNoZWNrIGhhcHB5LiAqLwo+IC0tIAo+ IDIuMjAuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=