From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 1/2] drm/i915/bios: store child devices in a list Date: Fri, 08 Nov 2019 11:01:46 +0200 Message-ID: <87pni268sl.fsf@intel.com> References: <20191107160854.17991-1-jani.nikula@intel.com> <20191107162144.GE1208@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 9882E6F8B8 for ; Fri, 8 Nov 2019 09:01:51 +0000 (UTC) In-Reply-To: <20191107162144.GE1208@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwNyBOb3YgMjAxOSwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDY6MDg6NTNQTSAr MDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IFVzaW5nIHRoZSBhcnJheSBpcyBnZXR0aW5nIGNs dW1zeS4gTWFrZSB0aGluZ3MgYSBiaXQgbW9yZSBkeW5hbWljLgo+PiAKPj4gUmVtb3ZlIGVhcmx5 IHJldHVybnMgb24gbm90IGhhdmluZyBjaGlsZCBkZXZpY2VzIHdoZW4gdGhlIGVuZCByZXN1bHQK Pj4gYWZ0ZXIgIml0ZXJhdGluZyIgdGhlIGVtcHR5IGxpc3Qgd291bGQgYmUgdGhlIHNhbWUuCj4+ IAo+PiB2MjoKPj4gLSBzdGljayB0byBwcmV2aW91cyBuYW1pbmcgb2YgY2hpbGQgZGV2aWNlcyAo VmlsbGUpCj4+IC0gdXNlIGt6YWxsb2MsIGhhbmRsZSBmYWlsdXJlCj4+IC0gaW5pdGlhbGl6ZSBs aXN0IGhlYWQgZWFybGllciB0byBrZWVwIGludGVsX2Jpb3NfZHJpdmVyX3JlbW92ZSgpIHNhZmUK Pj4gCj4+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pj4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4g Cj4+IC0tLQo+PiAKPj4gVGhlIGVuZCBnb2FsOiBhbGxvdyBtb3JlIG1ldGEgaW5mb3JtYXRpb24g dG8gYmUgYWRkZWQgdG8gdGhlIG5ldwo+PiBjaGlsZF9kZXZpY2Ugc3RydWN0LCBpbmRlcGVuZGVu dCBvZiBEREkgcG9ydCBpbmZvIGJlaW5nIHVzZWQgb3Igbm90IG9uCj4+IHRoZSBwbGF0Zm9ybSwg YW5kIGV2ZW50dWFsbHkgbWlncmF0ZSBkZGlfcG9ydF9pbmZvIHRvIGl0IGFzIHdlbGwsCj4+IHVu aWZ5aW5nIHRoZSBzdHVmZiBhY3Jvc3MgcGxhdGZvcm1zLgo+PiAKPj4gQ3VycmVudGx5IGl0J3Mg bm90IGVhc2lseSBwb3NzaWJsZSB0byBhc3NvY2lhdGUgZm9yIGV4YW1wbGUgdGhlIERTQwo+PiBj b21wcmVzc2lvbiBkYXRhIHRvIHRoZSBjaGlsZCBkZXZpY2UgZm9yIG5vbi1EREkgcGxhdGZvcm1z IG9yIGZvciBEU0kKPj4gb3V0cHV0cy4gVGhpcyBsZXRzIHVzIGFkZCB0aGUgY29tcHJlc3Npb24g ZGF0YSAocG9pbnRlcikgdG8gc3RydWN0Cj4+IGNoaWxkX2RldmljZS4KPj4gLS0tCj4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyB8IDEyMyArKysrKysrKysrLS0t LS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICB8 ICAgMyArLQo+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlv bnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCj4+ IGluZGV4IGMxOWIyMzRiZWJlNi4uMzdiOTQ0Mzk3Yjc1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+PiBAQCAtNTgsNiArNTgsMTIgQEAKPj4gICAq IHRoYXQuCj4+ICAgKi8KPj4gIAo+PiArLyogV3JhcHBlciBmb3IgVkJUIGNoaWxkIGRldmljZSBj b25maWcgKi8KPj4gK3N0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhIHsKPj4gKwlzdHJ1Y3QgY2hp bGRfZGV2aWNlX2NvbmZpZyBjaGlsZDsKPj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+ICt9 Owo+PiArCj4+ICAjZGVmaW5lCVNMQVZFX0FERFIxCTB4NzAKPj4gICNkZWZpbmUJU0xBVkVfQURE UjIJMHg3Mgo+PiAgCj4+IEBAIC00NDksOCArNDU1LDkgQEAgc3RhdGljIHZvaWQKPj4gIHBhcnNl X3Nkdm9fZGV2aWNlX21hcHBpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 OCBiZGJfdmVyc2lvbikKPj4gIHsKPj4gIAlzdHJ1Y3Qgc2R2b19kZXZpY2VfbWFwcGluZyAqbWFw cGluZzsKPj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4g IAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+IC0JaW50IGksIGNv dW50ID0gMDsKPj4gKwlpbnQgY291bnQgPSAwOwo+PiAgCj4+ICAJLyoKPj4gIAkgKiBPbmx5IHBh cnNlIFNEVk8gbWFwcGluZ3Mgb24gZ2VucyB0aGF0IGNvdWxkIGhhdmUgU0RWTy4gVGhpcyBpc24n dAo+PiBAQCAtNDYxLDggKzQ2OCw4IEBAIHBhcnNlX3Nkdm9fZGV2aWNlX21hcHBpbmcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBiZGJfdmVyc2lvbikKPj4gIAkJcmV0dXJu Owo+PiAgCX0KPj4gIAo+PiAtCWZvciAoaSA9IDAsIGNvdW50ID0gMDsgaSA8IGRldl9wcml2LT52 YnQuY2hpbGRfZGV2X251bTsgaSsrKSB7Cj4+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGls ZF9kZXYgKyBpOwo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52 YnQuZGlzcGxheV9kZXZpY2VzLCBub2RlKSB7Cj4+ICsJCWNoaWxkID0gJmRldmRhdGEtPmNoaWxk Owo+PiAgCj4+ICAJCWlmIChjaGlsZC0+c2xhdmVfYWRkciAhPSBTTEFWRV9BRERSMSAmJgo+PiAg CQkgICAgY2hpbGQtPnNsYXZlX2FkZHIgIT0gU0xBVkVfQUREUjIpIHsKPj4gQEAgLTE1NzIsOCAr MTU3OSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2RkaV9wb3J0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPj4gIAo+PiAgc3RhdGljIHZvaWQgcGFyc2VfZGRpX3BvcnRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggYmRiX3ZlcnNpb24pCj4+ICB7Cj4+IC0J Y29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkOwo+PiAtCWludCBpOwo+PiAr CWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpkZXZkYXRhOwo+PiAgCj4+ICAJaWYg KCFIQVNfRERJKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4+ICAJCXJl dHVybjsKPj4gQEAgLTE1ODEsMTEgKzE1ODcsOCBAQCBzdGF0aWMgdm9pZCBwYXJzZV9kZGlfcG9y dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBiZGJfdmVyc2lvbikKPj4g IAlpZiAoYmRiX3ZlcnNpb24gPCAxNTUpCj4+ICAJCXJldHVybjsKPj4gIAo+PiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+PiAtCQljaGlsZCA9 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPj4gLQo+PiAtCQlwYXJzZV9kZGlfcG9ydChk ZXZfcHJpdiwgY2hpbGQsIGJkYl92ZXJzaW9uKTsKPj4gLQl9Cj4+ICsJbGlzdF9mb3JfZWFjaF9l bnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpCj4+ICsJ CXBhcnNlX2RkaV9wb3J0KGRldl9wcml2LCAmZGV2ZGF0YS0+Y2hpbGQsIGJkYl92ZXJzaW9uKTsK Pj4gIH0KPj4gIAo+PiAgc3RhdGljIHZvaWQKPj4gQEAgLTE1OTMsOCArMTU5Niw5IEBAIHBhcnNl X2dlbmVyYWxfZGVmaW5pdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ PiAgCQkJICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQo+PiAgewo+PiAgCWNvbnN0IHN0 cnVjdCBiZGJfZ2VuZXJhbF9kZWZpbml0aW9ucyAqZGVmczsKPj4gKwlzdHJ1Y3QgZGlzcGxheV9k ZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZp ZyAqY2hpbGQ7Cj4+IC0JaW50IGksIGNoaWxkX2RldmljZV9udW0sIGNvdW50Owo+PiArCWludCBp LCBjaGlsZF9kZXZpY2VfbnVtOwo+PiAgCXU4IGV4cGVjdGVkX3NpemU7Cj4+ICAJdTE2IGJsb2Nr X3NpemU7Cj4+ICAJaW50IGJ1c19waW47Cj4+IEBAIC0xNjUwLDI2ICsxNjU0LDcgQEAgcGFyc2Vf Z2VuZXJhbF9kZWZpbml0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ ICAKPj4gIAkvKiBnZXQgdGhlIG51bWJlciBvZiBjaGlsZCBkZXZpY2UgKi8KPj4gIAljaGlsZF9k ZXZpY2VfbnVtID0gKGJsb2NrX3NpemUgLSBzaXplb2YoKmRlZnMpKSAvIGRlZnMtPmNoaWxkX2Rl dl9zaXplOwo+PiAtCWNvdW50ID0gMDsKPj4gLQkvKiBnZXQgdGhlIG51bWJlciBvZiBjaGlsZCBk ZXZpY2UgdGhhdCBpcyBwcmVzZW50ICovCj4+IC0JZm9yIChpID0gMDsgaSA8IGNoaWxkX2Rldmlj ZV9udW07IGkrKykgewo+PiAtCQljaGlsZCA9IGNoaWxkX2RldmljZV9wdHIoZGVmcywgaSk7Cj4+ IC0JCWlmICghY2hpbGQtPmRldmljZV90eXBlKQo+PiAtCQkJY29udGludWU7Cj4+IC0JCWNvdW50 Kys7Cj4+IC0JfQo+PiAtCWlmICghY291bnQpIHsKPj4gLQkJRFJNX0RFQlVHX0tNUygibm8gY2hp bGQgZGV2IGlzIHBhcnNlZCBmcm9tIFZCVFxuIik7Cj4+IC0JCXJldHVybjsKPj4gLQl9Cj4+IC0J ZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmNoaWxkKSwg R0ZQX0tFUk5FTCk7Cj4+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldikgewo+PiAtCQlE Uk1fREVCVUdfS01TKCJObyBtZW1vcnkgc3BhY2UgZm9yIGNoaWxkIGRldmljZVxuIik7Cj4+IC0J CXJldHVybjsKPj4gLQl9Cj4+ICAKPj4gLQlkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0gPSBj b3VudDsKPj4gLQljb3VudCA9IDA7Cj4+ICAJZm9yIChpID0gMDsgaSA8IGNoaWxkX2RldmljZV9u dW07IGkrKykgewo+PiAgCQljaGlsZCA9IGNoaWxkX2RldmljZV9wdHIoZGVmcywgaSk7Cj4+ICAJ CWlmICghY2hpbGQtPmRldmljZV90eXBlKQo+PiBAQCAtMTY3OCwxNSArMTY2MywyMyBAQCBwYXJz ZV9nZW5lcmFsX2RlZmluaXRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK Pj4gIAkJRFJNX0RFQlVHX0tNUygiRm91bmQgVkJUIGNoaWxkIGRldmljZSB3aXRoIHR5cGUgMHgl eFxuIiwKPj4gIAkJCSAgICAgIGNoaWxkLT5kZXZpY2VfdHlwZSk7Cj4+ICAKPj4gKwkJZGV2ZGF0 YSA9IGt6YWxsb2Moc2l6ZW9mKCpkZXZkYXRhKSwgR0ZQX0tFUk5FTCk7Cj4+ICsJCWlmICghZGV2 ZGF0YSkKPj4gKwkJCWJyZWFrOwo+PiArCj4+ICAJCS8qCj4+ICAJCSAqIENvcHkgYXMgbXVjaCBh cyB3ZSBrbm93IChzaXplb2YpIGFuZCBpcyBhdmFpbGFibGUKPj4gLQkJICogKGNoaWxkX2Rldl9z aXplKSBvZiB0aGUgY2hpbGQgZGV2aWNlLiBBY2Nlc3NpbmcgdGhlIGRhdGEgbXVzdAo+PiAtCQkg KiBkZXBlbmQgb24gVkJUIHZlcnNpb24uCj4+ICsJCSAqIChjaGlsZF9kZXZfc2l6ZSkgb2YgdGhl IGNoaWxkIGRldmljZSBjb25maWcuIEFjY2Vzc2luZyB0aGUKPj4gKwkJICogZGF0YSBtdXN0IGRl cGVuZCBvbiBWQlQgdmVyc2lvbi4KPj4gIAkJICovCj4+IC0JCW1lbWNweShkZXZfcHJpdi0+dmJ0 LmNoaWxkX2RldiArIGNvdW50LCBjaGlsZCwKPj4gKwkJbWVtY3B5KCZkZXZkYXRhLT5jaGlsZCwg Y2hpbGQsCj4+ICAJCSAgICAgICBtaW5fdChzaXplX3QsIGRlZnMtPmNoaWxkX2Rldl9zaXplLCBz aXplb2YoKmNoaWxkKSkpOwo+PiAtCQljb3VudCsrOwo+PiArCj4+ICsJCWxpc3RfYWRkKCZkZXZk YXRhLT5ub2RlLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMpOwo+Cj4gU2VlbXMgbGlr ZSB3ZSB3YW50IGxpc3RfYWRkX3RhaWwoKSBoZXJlIG9yIHdlJ2xsIHJldmVyc2UgdGhlIGNoaWxk IGRldgo+IG9yZGVyIGFuZCBnZXQgdGhlIHBvcnQgQSB2cy4gcG9ydCBFIGJ1ZyByaWdodCBiYWNr LgoKRCdvaCEgVGhhbmtzLgoKQlIsCkphbmkuCgo+Cj4gT3RoZXJ3aXNlCj4gUmV2aWV3ZWQtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPj4gIAl9 Cj4+ICsKPj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMp KQo+PiArCQlEUk1fREVCVUdfS01TKCJubyBjaGlsZCBkZXYgaXMgcGFyc2VkIGZyb20gVkJUXG4i KTsKPj4gIH0KPj4gIAo+PiAgLyogQ29tbW9uIGRlZmF1bHRzIHdoaWNoIG1heSBiZSBvdmVycmlk ZGVuIGJ5IFZCVC4gKi8KPj4gQEAgLTE4MzYsNiArMTgyOSw4IEBAIHZvaWQgaW50ZWxfYmlvc19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIAljb25zdCBzdHJ1Y3Qg YmRiX2hlYWRlciAqYmRiOwo+PiAgCXU4IF9faW9tZW0gKmJpb3MgPSBOVUxMOwo+PiAgCj4+ICsJ SU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZpY2VzKTsKPj4gKwo+PiAg CWlmICghSEFTX0RJU1BMQVkoZGV2X3ByaXYpIHx8ICFJTlRFTF9ESVNQTEFZX0VOQUJMRUQoZGV2 X3ByaXYpKSB7Cj4+ICAJCURSTV9ERUJVR19LTVMoIlNraXBwaW5nIFZCVCBpbml0IGR1ZSB0byBk aXNhYmxlZCBkaXNwbGF5LlxuIik7Cj4+ICAJCXJldHVybjsKPj4gQEAgLTE4OTUsOSArMTg5MCwx MyBAQCB2b2lkIGludGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgKi8KPj4gIHZvaWQgaW50ZWxfYmlvc19kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIHsKPj4gLQlrZnJlZShkZXZfcHJpdi0+dmJ0LmNo aWxkX2Rldik7Cj4+IC0JZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgPSBOVUxMOwo+PiAtCWRldl9w cml2LT52YnQuY2hpbGRfZGV2X251bSA9IDA7Cj4+ICsJc3RydWN0IGRpc3BsYXlfZGV2aWNlX2Rh dGEgKmRldmRhdGEsICpuOwo+PiArCj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGRldmRh dGEsIG4sICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQlsaXN0 X2RlbCgmZGV2ZGF0YS0+bm9kZSk7Cj4+ICsJCWtmcmVlKGRldmRhdGEpOwo+PiArCX0KPj4gKwo+ PiAgCWtmcmVlKGRldl9wcml2LT52YnQuc2R2b19sdmRzX3ZidF9tb2RlKTsKPj4gIAlkZXZfcHJp di0+dmJ0LnNkdm9fbHZkc192YnRfbW9kZSA9IE5VTEw7Cj4+ICAJa2ZyZWUoZGV2X3ByaXYtPnZi dC5sZnBfbHZkc192YnRfbW9kZSk7Cj4+IEBAIC0xOTIxLDE3ICsxOTIwLDE4IEBAIHZvaWQgaW50 ZWxfYmlvc19kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK Pj4gICAqLwo+PiAgYm9vbCBpbnRlbF9iaW9zX2lzX3R2X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgewo+PiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2Rldmlj ZV9kYXRhICpkZXZkYXRhOwo+PiAgCWNvbnN0IHN0cnVjdCBjaGlsZF9kZXZpY2VfY29uZmlnICpj aGlsZDsKPj4gLQlpbnQgaTsKPj4gIAo+PiAgCWlmICghZGV2X3ByaXYtPnZidC5pbnRfdHZfc3Vw cG9ydCkKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiAgCj4+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNo aWxkX2Rldl9udW0pCj4+ICsJaWYgKGxpc3RfZW1wdHkoJmRldl9wcml2LT52YnQuZGlzcGxheV9k ZXZpY2VzKSkKPj4gIAkJcmV0dXJuIHRydWU7Cj4+ICAKPj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2 X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPj4gLQkJY2hpbGQgPSBkZXZfcHJpdi0+ dmJ0LmNoaWxkX2RldiArIGk7Cj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2 X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsKPj4gKwkJY2hpbGQgPSAmZGV2ZGF0 YS0+Y2hpbGQ7Cj4+ICsKPj4gIAkJLyoKPj4gIAkJICogSWYgdGhlIGRldmljZSB0eXBlIGlzIG5v dCBUViwgY29udGludWUuCj4+ICAJCSAqLwo+PiBAQCAtMTk2MywxNCArMTk2MywxNCBAQCBib29s IGludGVsX2Jpb3NfaXNfdHZfcHJlc2VudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgKi8KPj4gIGJvb2wgaW50ZWxfYmlvc19pc19sdmRzX3ByZXNlbnQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCAqaTJjX3BpbikKPj4gIHsKPj4gKwljb25zdCBz dHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25zdCBzdHJ1Y3QgY2hp bGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+IC0JaW50IGk7Cj4+ICAKPj4gLQlpZiAoIWRldl9w cml2LT52YnQuY2hpbGRfZGV2X251bSkKPj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnZi dC5kaXNwbGF5X2RldmljZXMpKQo+PiAgCQlyZXR1cm4gdHJ1ZTsKPj4gIAo+PiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+PiAtCQljaGlsZCA9 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl dmRhdGEsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQljaGls ZCA9ICZkZXZkYXRhLT5jaGlsZDsKPj4gIAo+PiAgCQkvKiBJZiB0aGUgZGV2aWNlIHR5cGUgaXMg bm90IExGUCwgY29udGludWUuCj4+ICAJCSAqIFdlIGhhdmUgdG8gY2hlY2sgYm90aCB0aGUgbmV3 IGlkZW50aWZpZXJzIGFzIHdlbGwgYXMgdGhlCj4+IEBAIC0yMDEyLDYgKzIwMTIsNyBAQCBib29s IGludGVsX2Jpb3NfaXNfbHZkc19wcmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTggKmkyY19waW4pCj4+ICAgKi8KPj4gIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3By ZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkK Pj4gIHsKPj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4g IAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+ICAJc3RhdGljIGNv bnN0IHN0cnVjdCB7Cj4+ICAJCXUxNiBkcCwgaGRtaTsKPj4gQEAgLTIwMjIsNyArMjAyMyw2IEBA IGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBlbnVtIHBvcnQgcG9yCj4+ICAJCVtQT1JUX0VdID0geyBEVk9fUE9SVF9EUEUs IERWT19QT1JUX0hETUlFLCB9LAo+PiAgCQlbUE9SVF9GXSA9IHsgRFZPX1BPUlRfRFBGLCBEVk9f UE9SVF9IRE1JRiwgfSwKPj4gIAl9Owo+PiAtCWludCBpOwo+PiAgCj4+ICAJaWYgKEhBU19EREko ZGV2X3ByaXYpKSB7Cj4+ICAJCWNvbnN0IHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyAqcG9ydF9p bmZvID0KPj4gQEAgLTIwMzcsMTEgKzIwMzcsOCBAQCBib29sIGludGVsX2Jpb3NfaXNfcG9ydF9w cmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcgo+ PiAgCWlmIChXQVJOX09OKHBvcnQgPT0gUE9SVF9BKSB8fCBwb3J0ID49IEFSUkFZX1NJWkUocG9y dF9tYXBwaW5nKSkKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiAgCj4+IC0JaWYgKCFkZXZfcHJpdi0+ dmJ0LmNoaWxkX2Rldl9udW0pCj4+IC0JCXJldHVybiBmYWxzZTsKPj4gLQo+PiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+PiAtCQljaGlsZCA9 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl dmRhdGEsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQljaGls ZCA9ICZkZXZkYXRhLT5jaGlsZDsKPj4gIAo+PiAgCQlpZiAoKGNoaWxkLT5kdm9fcG9ydCA9PSBw b3J0X21hcHBpbmdbcG9ydF0uZHAgfHwKPj4gIAkJICAgICBjaGlsZC0+ZHZvX3BvcnQgPT0gcG9y dF9tYXBwaW5nW3BvcnRdLmhkbWkpICYmCj4+IEBAIC0yMDYyLDYgKzIwNTksNyBAQCBib29sIGlu dGVsX2Jpb3NfaXNfcG9ydF9wcmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgZW51bSBwb3J0IHBvcgo+PiAgICovCj4+ICBib29sIGludGVsX2Jpb3NfaXNfcG9ydF9lZHAo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPj4gIHsK Pj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25z dCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+ICAJc3RhdGljIGNvbnN0IHNo b3J0IHBvcnRfbWFwcGluZ1tdID0gewo+PiAgCQlbUE9SVF9CXSA9IERWT19QT1JUX0RQQiwKPj4g QEAgLTIwNzAsMTYgKzIwNjgsMTIgQEAgYm9vbCBpbnRlbF9iaW9zX2lzX3BvcnRfZWRwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4+ICAJCVtQT1JU X0VdID0gRFZPX1BPUlRfRFBFLAo+PiAgCQlbUE9SVF9GXSA9IERWT19QT1JUX0RQRiwKPj4gIAl9 Owo+PiAtCWludCBpOwo+PiAgCj4+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKQo+PiAgCQlyZXR1 cm4gZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLnN1cHBvcnRzX2VkcDsKPj4gIAo+ PiAtCWlmICghZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtKQo+PiAtCQlyZXR1cm4gZmFsc2U7 Cj4+IC0KPj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBp KyspIHsKPj4gLQkJY2hpbGQgPSBkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiArIGk7Cj4+ICsJbGlz dF9mb3JfZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMs IG5vZGUpIHsKPj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7Cj4+ICAKPj4gIAkJaWYgKGNo aWxkLT5kdm9fcG9ydCA9PSBwb3J0X21hcHBpbmdbcG9ydF0gJiYKPj4gIAkJICAgIChjaGlsZC0+ ZGV2aWNlX3R5cGUgJiBERVZJQ0VfVFlQRV9lRFBfQklUUykgPT0KPj4gQEAgLTIxMjgsMTMgKzIx MjIsMTAgQEAgc3RhdGljIGJvb2wgY2hpbGRfZGV2X2lzX2RwX2R1YWxfbW9kZShjb25zdCBzdHJ1 Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQsCj4+ICBib29sIGludGVsX2Jpb3NfaXNfcG9y dF9kcF9kdWFsX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCQkJ CSAgICAgZW51bSBwb3J0IHBvcnQpCj4+ICB7Cj4+IC0JY29uc3Qgc3RydWN0IGNoaWxkX2Rldmlj ZV9jb25maWcgKmNoaWxkOwo+PiAtCWludCBpOwo+PiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2Rl dmljZV9kYXRhICpkZXZkYXRhOwo+PiAgCj4+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT52 YnQuY2hpbGRfZGV2X251bTsgaSsrKSB7Cj4+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGls ZF9kZXYgKyBpOwo+PiAtCj4+IC0JCWlmIChjaGlsZF9kZXZfaXNfZHBfZHVhbF9tb2RlKGNoaWxk LCBwb3J0KSkKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldmRhdGEsICZkZXZfcHJpdi0+dmJ0 LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQlpZiAoY2hpbGRfZGV2X2lzX2RwX2R1YWxf bW9kZSgmZGV2ZGF0YS0+Y2hpbGQsIHBvcnQpKQo+PiAgCQkJcmV0dXJuIHRydWU7Cj4+ICAJfQo+ PiAgCj4+IEBAIC0yMTUxLDEyICsyMTQyLDEyIEBAIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X2Rw X2R1YWxfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICBib29sIGlu dGVsX2Jpb3NfaXNfZHNpX3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+PiAgCQkJICAgICAgIGVudW0gcG9ydCAqcG9ydCkKPj4gIHsKPj4gKwljb25zdCBzdHJ1Y3Qg ZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2 aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+ICAJdTggZHZvX3BvcnQ7Cj4+IC0JaW50IGk7Cj4+ICAKPj4g LQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPj4g LQkJY2hpbGQgPSBkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiArIGk7Cj4+ICsJbGlzdF9mb3JfZWFj aF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsK Pj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7Cj4+ICAKPj4gIAkJaWYgKCEoY2hpbGQtPmRl dmljZV90eXBlICYgREVWSUNFX1RZUEVfTUlQSV9PVVRQVVQpKQo+PiAgCQkJY29udGludWU7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCA2N2JkZmU2ZGUzZmEuLjJjMDY3NGE4NmRk OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC03MjAsOCArNzIwLDcgQEAg c3RydWN0IGludGVsX3ZidF9kYXRhIHsKPj4gIAo+PiAgCWludCBjcnRfZGRjX3BpbjsKPj4gIAo+ PiAtCWludCBjaGlsZF9kZXZfbnVtOwo+PiAtCXN0cnVjdCBjaGlsZF9kZXZpY2VfY29uZmlnICpj aGlsZF9kZXY7Cj4+ICsJc3RydWN0IGxpc3RfaGVhZCBkaXNwbGF5X2RldmljZXM7Cj4+ICAKPj4g IAlzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gZGRpX3BvcnRfaW5mb1tJOTE1X01BWF9QT1JUU107 Cj4+ICAJc3RydWN0IHNkdm9fZGV2aWNlX21hcHBpbmcgc2R2b19tYXBwaW5nc1syXTsKPj4gLS0g Cj4+IDIuMjAuMQoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62496FA372C for ; Fri, 8 Nov 2019 09:01:53 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3EE1B207FA for ; Fri, 8 Nov 2019 09:01:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3EE1B207FA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D50366F8B8; Fri, 8 Nov 2019 09:01:52 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9882E6F8B8 for ; Fri, 8 Nov 2019 09:01:51 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Nov 2019 01:01:51 -0800 X-IronPort-AV: E=Sophos;i="5.68,280,1569308400"; d="scan'208";a="196845102" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Nov 2019 01:01:49 -0800 From: Jani Nikula To: Ville =?utf-8?B?U3lyasOkbMOk?= In-Reply-To: <20191107162144.GE1208@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191107160854.17991-1-jani.nikula@intel.com> <20191107162144.GE1208@intel.com> Date: Fri, 08 Nov 2019 11:01:46 +0200 Message-ID: <87pni268sl.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 1/2] drm/i915/bios: store child devices in a list X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191108090146.fbAwLwVBJsfeubq5VcoM3BWdhbNWPaDEyUAfhyaurdw@z> T24gVGh1LCAwNyBOb3YgMjAxOSwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDY6MDg6NTNQTSAr MDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IFVzaW5nIHRoZSBhcnJheSBpcyBnZXR0aW5nIGNs dW1zeS4gTWFrZSB0aGluZ3MgYSBiaXQgbW9yZSBkeW5hbWljLgo+PiAKPj4gUmVtb3ZlIGVhcmx5 IHJldHVybnMgb24gbm90IGhhdmluZyBjaGlsZCBkZXZpY2VzIHdoZW4gdGhlIGVuZCByZXN1bHQK Pj4gYWZ0ZXIgIml0ZXJhdGluZyIgdGhlIGVtcHR5IGxpc3Qgd291bGQgYmUgdGhlIHNhbWUuCj4+ IAo+PiB2MjoKPj4gLSBzdGljayB0byBwcmV2aW91cyBuYW1pbmcgb2YgY2hpbGQgZGV2aWNlcyAo VmlsbGUpCj4+IC0gdXNlIGt6YWxsb2MsIGhhbmRsZSBmYWlsdXJlCj4+IC0gaW5pdGlhbGl6ZSBs aXN0IGhlYWQgZWFybGllciB0byBrZWVwIGludGVsX2Jpb3NfZHJpdmVyX3JlbW92ZSgpIHNhZmUK Pj4gCj4+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pj4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4g Cj4+IC0tLQo+PiAKPj4gVGhlIGVuZCBnb2FsOiBhbGxvdyBtb3JlIG1ldGEgaW5mb3JtYXRpb24g dG8gYmUgYWRkZWQgdG8gdGhlIG5ldwo+PiBjaGlsZF9kZXZpY2Ugc3RydWN0LCBpbmRlcGVuZGVu dCBvZiBEREkgcG9ydCBpbmZvIGJlaW5nIHVzZWQgb3Igbm90IG9uCj4+IHRoZSBwbGF0Zm9ybSwg YW5kIGV2ZW50dWFsbHkgbWlncmF0ZSBkZGlfcG9ydF9pbmZvIHRvIGl0IGFzIHdlbGwsCj4+IHVu aWZ5aW5nIHRoZSBzdHVmZiBhY3Jvc3MgcGxhdGZvcm1zLgo+PiAKPj4gQ3VycmVudGx5IGl0J3Mg bm90IGVhc2lseSBwb3NzaWJsZSB0byBhc3NvY2lhdGUgZm9yIGV4YW1wbGUgdGhlIERTQwo+PiBj b21wcmVzc2lvbiBkYXRhIHRvIHRoZSBjaGlsZCBkZXZpY2UgZm9yIG5vbi1EREkgcGxhdGZvcm1z IG9yIGZvciBEU0kKPj4gb3V0cHV0cy4gVGhpcyBsZXRzIHVzIGFkZCB0aGUgY29tcHJlc3Npb24g ZGF0YSAocG9pbnRlcikgdG8gc3RydWN0Cj4+IGNoaWxkX2RldmljZS4KPj4gLS0tCj4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyB8IDEyMyArKysrKysrKysrLS0t LS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICB8 ICAgMyArLQo+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlv bnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCj4+ IGluZGV4IGMxOWIyMzRiZWJlNi4uMzdiOTQ0Mzk3Yjc1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+PiBAQCAtNTgsNiArNTgsMTIgQEAKPj4gICAq IHRoYXQuCj4+ICAgKi8KPj4gIAo+PiArLyogV3JhcHBlciBmb3IgVkJUIGNoaWxkIGRldmljZSBj b25maWcgKi8KPj4gK3N0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhIHsKPj4gKwlzdHJ1Y3QgY2hp bGRfZGV2aWNlX2NvbmZpZyBjaGlsZDsKPj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+ICt9 Owo+PiArCj4+ICAjZGVmaW5lCVNMQVZFX0FERFIxCTB4NzAKPj4gICNkZWZpbmUJU0xBVkVfQURE UjIJMHg3Mgo+PiAgCj4+IEBAIC00NDksOCArNDU1LDkgQEAgc3RhdGljIHZvaWQKPj4gIHBhcnNl X3Nkdm9fZGV2aWNlX21hcHBpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 OCBiZGJfdmVyc2lvbikKPj4gIHsKPj4gIAlzdHJ1Y3Qgc2R2b19kZXZpY2VfbWFwcGluZyAqbWFw cGluZzsKPj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4g IAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+IC0JaW50IGksIGNv dW50ID0gMDsKPj4gKwlpbnQgY291bnQgPSAwOwo+PiAgCj4+ICAJLyoKPj4gIAkgKiBPbmx5IHBh cnNlIFNEVk8gbWFwcGluZ3Mgb24gZ2VucyB0aGF0IGNvdWxkIGhhdmUgU0RWTy4gVGhpcyBpc24n dAo+PiBAQCAtNDYxLDggKzQ2OCw4IEBAIHBhcnNlX3Nkdm9fZGV2aWNlX21hcHBpbmcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBiZGJfdmVyc2lvbikKPj4gIAkJcmV0dXJu Owo+PiAgCX0KPj4gIAo+PiAtCWZvciAoaSA9IDAsIGNvdW50ID0gMDsgaSA8IGRldl9wcml2LT52 YnQuY2hpbGRfZGV2X251bTsgaSsrKSB7Cj4+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGls ZF9kZXYgKyBpOwo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52 YnQuZGlzcGxheV9kZXZpY2VzLCBub2RlKSB7Cj4+ICsJCWNoaWxkID0gJmRldmRhdGEtPmNoaWxk Owo+PiAgCj4+ICAJCWlmIChjaGlsZC0+c2xhdmVfYWRkciAhPSBTTEFWRV9BRERSMSAmJgo+PiAg CQkgICAgY2hpbGQtPnNsYXZlX2FkZHIgIT0gU0xBVkVfQUREUjIpIHsKPj4gQEAgLTE1NzIsOCAr MTU3OSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2RkaV9wb3J0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPj4gIAo+PiAgc3RhdGljIHZvaWQgcGFyc2VfZGRpX3BvcnRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggYmRiX3ZlcnNpb24pCj4+ICB7Cj4+IC0J Y29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkOwo+PiAtCWludCBpOwo+PiAr CWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpkZXZkYXRhOwo+PiAgCj4+ICAJaWYg KCFIQVNfRERJKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4+ICAJCXJl dHVybjsKPj4gQEAgLTE1ODEsMTEgKzE1ODcsOCBAQCBzdGF0aWMgdm9pZCBwYXJzZV9kZGlfcG9y dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBiZGJfdmVyc2lvbikKPj4g IAlpZiAoYmRiX3ZlcnNpb24gPCAxNTUpCj4+ICAJCXJldHVybjsKPj4gIAo+PiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+PiAtCQljaGlsZCA9 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPj4gLQo+PiAtCQlwYXJzZV9kZGlfcG9ydChk ZXZfcHJpdiwgY2hpbGQsIGJkYl92ZXJzaW9uKTsKPj4gLQl9Cj4+ICsJbGlzdF9mb3JfZWFjaF9l bnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpCj4+ICsJ CXBhcnNlX2RkaV9wb3J0KGRldl9wcml2LCAmZGV2ZGF0YS0+Y2hpbGQsIGJkYl92ZXJzaW9uKTsK Pj4gIH0KPj4gIAo+PiAgc3RhdGljIHZvaWQKPj4gQEAgLTE1OTMsOCArMTU5Niw5IEBAIHBhcnNl X2dlbmVyYWxfZGVmaW5pdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ PiAgCQkJICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQo+PiAgewo+PiAgCWNvbnN0IHN0 cnVjdCBiZGJfZ2VuZXJhbF9kZWZpbml0aW9ucyAqZGVmczsKPj4gKwlzdHJ1Y3QgZGlzcGxheV9k ZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZp ZyAqY2hpbGQ7Cj4+IC0JaW50IGksIGNoaWxkX2RldmljZV9udW0sIGNvdW50Owo+PiArCWludCBp LCBjaGlsZF9kZXZpY2VfbnVtOwo+PiAgCXU4IGV4cGVjdGVkX3NpemU7Cj4+ICAJdTE2IGJsb2Nr X3NpemU7Cj4+ICAJaW50IGJ1c19waW47Cj4+IEBAIC0xNjUwLDI2ICsxNjU0LDcgQEAgcGFyc2Vf Z2VuZXJhbF9kZWZpbml0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ ICAKPj4gIAkvKiBnZXQgdGhlIG51bWJlciBvZiBjaGlsZCBkZXZpY2UgKi8KPj4gIAljaGlsZF9k ZXZpY2VfbnVtID0gKGJsb2NrX3NpemUgLSBzaXplb2YoKmRlZnMpKSAvIGRlZnMtPmNoaWxkX2Rl dl9zaXplOwo+PiAtCWNvdW50ID0gMDsKPj4gLQkvKiBnZXQgdGhlIG51bWJlciBvZiBjaGlsZCBk ZXZpY2UgdGhhdCBpcyBwcmVzZW50ICovCj4+IC0JZm9yIChpID0gMDsgaSA8IGNoaWxkX2Rldmlj ZV9udW07IGkrKykgewo+PiAtCQljaGlsZCA9IGNoaWxkX2RldmljZV9wdHIoZGVmcywgaSk7Cj4+ IC0JCWlmICghY2hpbGQtPmRldmljZV90eXBlKQo+PiAtCQkJY29udGludWU7Cj4+IC0JCWNvdW50 Kys7Cj4+IC0JfQo+PiAtCWlmICghY291bnQpIHsKPj4gLQkJRFJNX0RFQlVHX0tNUygibm8gY2hp bGQgZGV2IGlzIHBhcnNlZCBmcm9tIFZCVFxuIik7Cj4+IC0JCXJldHVybjsKPj4gLQl9Cj4+IC0J ZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmNoaWxkKSwg R0ZQX0tFUk5FTCk7Cj4+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldikgewo+PiAtCQlE Uk1fREVCVUdfS01TKCJObyBtZW1vcnkgc3BhY2UgZm9yIGNoaWxkIGRldmljZVxuIik7Cj4+IC0J CXJldHVybjsKPj4gLQl9Cj4+ICAKPj4gLQlkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0gPSBj b3VudDsKPj4gLQljb3VudCA9IDA7Cj4+ICAJZm9yIChpID0gMDsgaSA8IGNoaWxkX2RldmljZV9u dW07IGkrKykgewo+PiAgCQljaGlsZCA9IGNoaWxkX2RldmljZV9wdHIoZGVmcywgaSk7Cj4+ICAJ CWlmICghY2hpbGQtPmRldmljZV90eXBlKQo+PiBAQCAtMTY3OCwxNSArMTY2MywyMyBAQCBwYXJz ZV9nZW5lcmFsX2RlZmluaXRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK Pj4gIAkJRFJNX0RFQlVHX0tNUygiRm91bmQgVkJUIGNoaWxkIGRldmljZSB3aXRoIHR5cGUgMHgl eFxuIiwKPj4gIAkJCSAgICAgIGNoaWxkLT5kZXZpY2VfdHlwZSk7Cj4+ICAKPj4gKwkJZGV2ZGF0 YSA9IGt6YWxsb2Moc2l6ZW9mKCpkZXZkYXRhKSwgR0ZQX0tFUk5FTCk7Cj4+ICsJCWlmICghZGV2 ZGF0YSkKPj4gKwkJCWJyZWFrOwo+PiArCj4+ICAJCS8qCj4+ICAJCSAqIENvcHkgYXMgbXVjaCBh cyB3ZSBrbm93IChzaXplb2YpIGFuZCBpcyBhdmFpbGFibGUKPj4gLQkJICogKGNoaWxkX2Rldl9z aXplKSBvZiB0aGUgY2hpbGQgZGV2aWNlLiBBY2Nlc3NpbmcgdGhlIGRhdGEgbXVzdAo+PiAtCQkg KiBkZXBlbmQgb24gVkJUIHZlcnNpb24uCj4+ICsJCSAqIChjaGlsZF9kZXZfc2l6ZSkgb2YgdGhl IGNoaWxkIGRldmljZSBjb25maWcuIEFjY2Vzc2luZyB0aGUKPj4gKwkJICogZGF0YSBtdXN0IGRl cGVuZCBvbiBWQlQgdmVyc2lvbi4KPj4gIAkJICovCj4+IC0JCW1lbWNweShkZXZfcHJpdi0+dmJ0 LmNoaWxkX2RldiArIGNvdW50LCBjaGlsZCwKPj4gKwkJbWVtY3B5KCZkZXZkYXRhLT5jaGlsZCwg Y2hpbGQsCj4+ICAJCSAgICAgICBtaW5fdChzaXplX3QsIGRlZnMtPmNoaWxkX2Rldl9zaXplLCBz aXplb2YoKmNoaWxkKSkpOwo+PiAtCQljb3VudCsrOwo+PiArCj4+ICsJCWxpc3RfYWRkKCZkZXZk YXRhLT5ub2RlLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMpOwo+Cj4gU2VlbXMgbGlr ZSB3ZSB3YW50IGxpc3RfYWRkX3RhaWwoKSBoZXJlIG9yIHdlJ2xsIHJldmVyc2UgdGhlIGNoaWxk IGRldgo+IG9yZGVyIGFuZCBnZXQgdGhlIHBvcnQgQSB2cy4gcG9ydCBFIGJ1ZyByaWdodCBiYWNr LgoKRCdvaCEgVGhhbmtzLgoKQlIsCkphbmkuCgo+Cj4gT3RoZXJ3aXNlCj4gUmV2aWV3ZWQtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPj4gIAl9 Cj4+ICsKPj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMp KQo+PiArCQlEUk1fREVCVUdfS01TKCJubyBjaGlsZCBkZXYgaXMgcGFyc2VkIGZyb20gVkJUXG4i KTsKPj4gIH0KPj4gIAo+PiAgLyogQ29tbW9uIGRlZmF1bHRzIHdoaWNoIG1heSBiZSBvdmVycmlk ZGVuIGJ5IFZCVC4gKi8KPj4gQEAgLTE4MzYsNiArMTgyOSw4IEBAIHZvaWQgaW50ZWxfYmlvc19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIAljb25zdCBzdHJ1Y3Qg YmRiX2hlYWRlciAqYmRiOwo+PiAgCXU4IF9faW9tZW0gKmJpb3MgPSBOVUxMOwo+PiAgCj4+ICsJ SU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZpY2VzKTsKPj4gKwo+PiAg CWlmICghSEFTX0RJU1BMQVkoZGV2X3ByaXYpIHx8ICFJTlRFTF9ESVNQTEFZX0VOQUJMRUQoZGV2 X3ByaXYpKSB7Cj4+ICAJCURSTV9ERUJVR19LTVMoIlNraXBwaW5nIFZCVCBpbml0IGR1ZSB0byBk aXNhYmxlZCBkaXNwbGF5LlxuIik7Cj4+ICAJCXJldHVybjsKPj4gQEAgLTE4OTUsOSArMTg5MCwx MyBAQCB2b2lkIGludGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgKi8KPj4gIHZvaWQgaW50ZWxfYmlvc19kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIHsKPj4gLQlrZnJlZShkZXZfcHJpdi0+dmJ0LmNo aWxkX2Rldik7Cj4+IC0JZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgPSBOVUxMOwo+PiAtCWRldl9w cml2LT52YnQuY2hpbGRfZGV2X251bSA9IDA7Cj4+ICsJc3RydWN0IGRpc3BsYXlfZGV2aWNlX2Rh dGEgKmRldmRhdGEsICpuOwo+PiArCj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGRldmRh dGEsIG4sICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQlsaXN0 X2RlbCgmZGV2ZGF0YS0+bm9kZSk7Cj4+ICsJCWtmcmVlKGRldmRhdGEpOwo+PiArCX0KPj4gKwo+ PiAgCWtmcmVlKGRldl9wcml2LT52YnQuc2R2b19sdmRzX3ZidF9tb2RlKTsKPj4gIAlkZXZfcHJp di0+dmJ0LnNkdm9fbHZkc192YnRfbW9kZSA9IE5VTEw7Cj4+ICAJa2ZyZWUoZGV2X3ByaXYtPnZi dC5sZnBfbHZkc192YnRfbW9kZSk7Cj4+IEBAIC0xOTIxLDE3ICsxOTIwLDE4IEBAIHZvaWQgaW50 ZWxfYmlvc19kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK Pj4gICAqLwo+PiAgYm9vbCBpbnRlbF9iaW9zX2lzX3R2X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgewo+PiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2Rldmlj ZV9kYXRhICpkZXZkYXRhOwo+PiAgCWNvbnN0IHN0cnVjdCBjaGlsZF9kZXZpY2VfY29uZmlnICpj aGlsZDsKPj4gLQlpbnQgaTsKPj4gIAo+PiAgCWlmICghZGV2X3ByaXYtPnZidC5pbnRfdHZfc3Vw cG9ydCkKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiAgCj4+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNo aWxkX2Rldl9udW0pCj4+ICsJaWYgKGxpc3RfZW1wdHkoJmRldl9wcml2LT52YnQuZGlzcGxheV9k ZXZpY2VzKSkKPj4gIAkJcmV0dXJuIHRydWU7Cj4+ICAKPj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2 X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPj4gLQkJY2hpbGQgPSBkZXZfcHJpdi0+ dmJ0LmNoaWxkX2RldiArIGk7Cj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2 X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsKPj4gKwkJY2hpbGQgPSAmZGV2ZGF0 YS0+Y2hpbGQ7Cj4+ICsKPj4gIAkJLyoKPj4gIAkJICogSWYgdGhlIGRldmljZSB0eXBlIGlzIG5v dCBUViwgY29udGludWUuCj4+ICAJCSAqLwo+PiBAQCAtMTk2MywxNCArMTk2MywxNCBAQCBib29s IGludGVsX2Jpb3NfaXNfdHZfcHJlc2VudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgKi8KPj4gIGJvb2wgaW50ZWxfYmlvc19pc19sdmRzX3ByZXNlbnQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCAqaTJjX3BpbikKPj4gIHsKPj4gKwljb25zdCBz dHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25zdCBzdHJ1Y3QgY2hp bGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+IC0JaW50IGk7Cj4+ICAKPj4gLQlpZiAoIWRldl9w cml2LT52YnQuY2hpbGRfZGV2X251bSkKPj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnZi dC5kaXNwbGF5X2RldmljZXMpKQo+PiAgCQlyZXR1cm4gdHJ1ZTsKPj4gIAo+PiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+PiAtCQljaGlsZCA9 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl dmRhdGEsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQljaGls ZCA9ICZkZXZkYXRhLT5jaGlsZDsKPj4gIAo+PiAgCQkvKiBJZiB0aGUgZGV2aWNlIHR5cGUgaXMg bm90IExGUCwgY29udGludWUuCj4+ICAJCSAqIFdlIGhhdmUgdG8gY2hlY2sgYm90aCB0aGUgbmV3 IGlkZW50aWZpZXJzIGFzIHdlbGwgYXMgdGhlCj4+IEBAIC0yMDEyLDYgKzIwMTIsNyBAQCBib29s IGludGVsX2Jpb3NfaXNfbHZkc19wcmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTggKmkyY19waW4pCj4+ICAgKi8KPj4gIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3By ZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkK Pj4gIHsKPj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4g IAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+ICAJc3RhdGljIGNv bnN0IHN0cnVjdCB7Cj4+ICAJCXUxNiBkcCwgaGRtaTsKPj4gQEAgLTIwMjIsNyArMjAyMyw2IEBA IGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBlbnVtIHBvcnQgcG9yCj4+ICAJCVtQT1JUX0VdID0geyBEVk9fUE9SVF9EUEUs IERWT19QT1JUX0hETUlFLCB9LAo+PiAgCQlbUE9SVF9GXSA9IHsgRFZPX1BPUlRfRFBGLCBEVk9f UE9SVF9IRE1JRiwgfSwKPj4gIAl9Owo+PiAtCWludCBpOwo+PiAgCj4+ICAJaWYgKEhBU19EREko ZGV2X3ByaXYpKSB7Cj4+ICAJCWNvbnN0IHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyAqcG9ydF9p bmZvID0KPj4gQEAgLTIwMzcsMTEgKzIwMzcsOCBAQCBib29sIGludGVsX2Jpb3NfaXNfcG9ydF9w cmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcgo+ PiAgCWlmIChXQVJOX09OKHBvcnQgPT0gUE9SVF9BKSB8fCBwb3J0ID49IEFSUkFZX1NJWkUocG9y dF9tYXBwaW5nKSkKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiAgCj4+IC0JaWYgKCFkZXZfcHJpdi0+ dmJ0LmNoaWxkX2Rldl9udW0pCj4+IC0JCXJldHVybiBmYWxzZTsKPj4gLQo+PiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+PiAtCQljaGlsZCA9 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl dmRhdGEsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQljaGls ZCA9ICZkZXZkYXRhLT5jaGlsZDsKPj4gIAo+PiAgCQlpZiAoKGNoaWxkLT5kdm9fcG9ydCA9PSBw b3J0X21hcHBpbmdbcG9ydF0uZHAgfHwKPj4gIAkJICAgICBjaGlsZC0+ZHZvX3BvcnQgPT0gcG9y dF9tYXBwaW5nW3BvcnRdLmhkbWkpICYmCj4+IEBAIC0yMDYyLDYgKzIwNTksNyBAQCBib29sIGlu dGVsX2Jpb3NfaXNfcG9ydF9wcmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgZW51bSBwb3J0IHBvcgo+PiAgICovCj4+ICBib29sIGludGVsX2Jpb3NfaXNfcG9ydF9lZHAo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPj4gIHsK Pj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25z dCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+ICAJc3RhdGljIGNvbnN0IHNo b3J0IHBvcnRfbWFwcGluZ1tdID0gewo+PiAgCQlbUE9SVF9CXSA9IERWT19QT1JUX0RQQiwKPj4g QEAgLTIwNzAsMTYgKzIwNjgsMTIgQEAgYm9vbCBpbnRlbF9iaW9zX2lzX3BvcnRfZWRwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4+ICAJCVtQT1JU X0VdID0gRFZPX1BPUlRfRFBFLAo+PiAgCQlbUE9SVF9GXSA9IERWT19QT1JUX0RQRiwKPj4gIAl9 Owo+PiAtCWludCBpOwo+PiAgCj4+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKQo+PiAgCQlyZXR1 cm4gZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLnN1cHBvcnRzX2VkcDsKPj4gIAo+ PiAtCWlmICghZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtKQo+PiAtCQlyZXR1cm4gZmFsc2U7 Cj4+IC0KPj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBp KyspIHsKPj4gLQkJY2hpbGQgPSBkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiArIGk7Cj4+ICsJbGlz dF9mb3JfZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMs IG5vZGUpIHsKPj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7Cj4+ICAKPj4gIAkJaWYgKGNo aWxkLT5kdm9fcG9ydCA9PSBwb3J0X21hcHBpbmdbcG9ydF0gJiYKPj4gIAkJICAgIChjaGlsZC0+ ZGV2aWNlX3R5cGUgJiBERVZJQ0VfVFlQRV9lRFBfQklUUykgPT0KPj4gQEAgLTIxMjgsMTMgKzIx MjIsMTAgQEAgc3RhdGljIGJvb2wgY2hpbGRfZGV2X2lzX2RwX2R1YWxfbW9kZShjb25zdCBzdHJ1 Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQsCj4+ICBib29sIGludGVsX2Jpb3NfaXNfcG9y dF9kcF9kdWFsX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCQkJ CSAgICAgZW51bSBwb3J0IHBvcnQpCj4+ICB7Cj4+IC0JY29uc3Qgc3RydWN0IGNoaWxkX2Rldmlj ZV9jb25maWcgKmNoaWxkOwo+PiAtCWludCBpOwo+PiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2Rl dmljZV9kYXRhICpkZXZkYXRhOwo+PiAgCj4+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT52 YnQuY2hpbGRfZGV2X251bTsgaSsrKSB7Cj4+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGls ZF9kZXYgKyBpOwo+PiAtCj4+IC0JCWlmIChjaGlsZF9kZXZfaXNfZHBfZHVhbF9tb2RlKGNoaWxk LCBwb3J0KSkKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldmRhdGEsICZkZXZfcHJpdi0+dmJ0 LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkgewo+PiArCQlpZiAoY2hpbGRfZGV2X2lzX2RwX2R1YWxf bW9kZSgmZGV2ZGF0YS0+Y2hpbGQsIHBvcnQpKQo+PiAgCQkJcmV0dXJuIHRydWU7Cj4+ICAJfQo+ PiAgCj4+IEBAIC0yMTUxLDEyICsyMTQyLDEyIEBAIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X2Rw X2R1YWxfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICBib29sIGlu dGVsX2Jpb3NfaXNfZHNpX3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+PiAgCQkJICAgICAgIGVudW0gcG9ydCAqcG9ydCkKPj4gIHsKPj4gKwljb25zdCBzdHJ1Y3Qg ZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPj4gIAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2 aWNlX2NvbmZpZyAqY2hpbGQ7Cj4+ICAJdTggZHZvX3BvcnQ7Cj4+IC0JaW50IGk7Cj4+ICAKPj4g LQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPj4g LQkJY2hpbGQgPSBkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiArIGk7Cj4+ICsJbGlzdF9mb3JfZWFj aF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsK Pj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7Cj4+ICAKPj4gIAkJaWYgKCEoY2hpbGQtPmRl dmljZV90eXBlICYgREVWSUNFX1RZUEVfTUlQSV9PVVRQVVQpKQo+PiAgCQkJY29udGludWU7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCA2N2JkZmU2ZGUzZmEuLjJjMDY3NGE4NmRk OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC03MjAsOCArNzIwLDcgQEAg c3RydWN0IGludGVsX3ZidF9kYXRhIHsKPj4gIAo+PiAgCWludCBjcnRfZGRjX3BpbjsKPj4gIAo+ PiAtCWludCBjaGlsZF9kZXZfbnVtOwo+PiAtCXN0cnVjdCBjaGlsZF9kZXZpY2VfY29uZmlnICpj aGlsZF9kZXY7Cj4+ICsJc3RydWN0IGxpc3RfaGVhZCBkaXNwbGF5X2RldmljZXM7Cj4+ICAKPj4g IAlzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gZGRpX3BvcnRfaW5mb1tJOTE1X01BWF9QT1JUU107 Cj4+ICAJc3RydWN0IHNkdm9fZGV2aWNlX21hcHBpbmcgc2R2b19tYXBwaW5nc1syXTsKPj4gLS0g Cj4+IDIuMjAuMQoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4