From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 1/2] drm/i915/bios: store child devices in a list Date: Thu, 7 Nov 2019 18:21:44 +0200 Message-ID: <20191107162144.GE1208@intel.com> References: <20191107160854.17991-1-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id D7F856F72F for ; Thu, 7 Nov 2019 16:21:47 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191107160854.17991-1-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDY6MDg6NTNQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gVXNpbmcgdGhlIGFycmF5IGlzIGdldHRpbmcgY2x1bXN5LiBNYWtlIHRoaW5ncyBhIGJp dCBtb3JlIGR5bmFtaWMuCj4gCj4gUmVtb3ZlIGVhcmx5IHJldHVybnMgb24gbm90IGhhdmluZyBj aGlsZCBkZXZpY2VzIHdoZW4gdGhlIGVuZCByZXN1bHQKPiBhZnRlciAiaXRlcmF0aW5nIiB0aGUg ZW1wdHkgbGlzdCB3b3VsZCBiZSB0aGUgc2FtZS4KPiAKPiB2MjoKPiAtIHN0aWNrIHRvIHByZXZp b3VzIG5hbWluZyBvZiBjaGlsZCBkZXZpY2VzIChWaWxsZSkKPiAtIHVzZSBremFsbG9jLCBoYW5k bGUgZmFpbHVyZQo+IC0gaW5pdGlhbGl6ZSBsaXN0IGhlYWQgZWFybGllciB0byBrZWVwIGludGVs X2Jpb3NfZHJpdmVyX3JlbW92ZSgpIHNhZmUKPiAKPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4KPiAKPiAtLS0KPiAKPiBUaGUgZW5kIGdvYWw6IGFsbG93IG1v cmUgbWV0YSBpbmZvcm1hdGlvbiB0byBiZSBhZGRlZCB0byB0aGUgbmV3Cj4gY2hpbGRfZGV2aWNl IHN0cnVjdCwgaW5kZXBlbmRlbnQgb2YgRERJIHBvcnQgaW5mbyBiZWluZyB1c2VkIG9yIG5vdCBv bgo+IHRoZSBwbGF0Zm9ybSwgYW5kIGV2ZW50dWFsbHkgbWlncmF0ZSBkZGlfcG9ydF9pbmZvIHRv IGl0IGFzIHdlbGwsCj4gdW5pZnlpbmcgdGhlIHN0dWZmIGFjcm9zcyBwbGF0Zm9ybXMuCj4gCj4g Q3VycmVudGx5IGl0J3Mgbm90IGVhc2lseSBwb3NzaWJsZSB0byBhc3NvY2lhdGUgZm9yIGV4YW1w bGUgdGhlIERTQwo+IGNvbXByZXNzaW9uIGRhdGEgdG8gdGhlIGNoaWxkIGRldmljZSBmb3Igbm9u LURESSBwbGF0Zm9ybXMgb3IgZm9yIERTSQo+IG91dHB1dHMuIFRoaXMgbGV0cyB1cyBhZGQgdGhl IGNvbXByZXNzaW9uIGRhdGEgKHBvaW50ZXIpIHRvIHN0cnVjdAo+IGNoaWxkX2RldmljZS4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgfCAxMjMgKysr KysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgICB8ICAgMyArLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDY4 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlv cy5jCj4gaW5kZXggYzE5YjIzNGJlYmU2Li4zN2I5NDQzOTdiNzUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+IEBAIC01OCw2ICs1OCwxMiBAQAo+ICAg KiB0aGF0Lgo+ICAgKi8KPiAgCj4gKy8qIFdyYXBwZXIgZm9yIFZCVCBjaGlsZCBkZXZpY2UgY29u ZmlnICovCj4gK3N0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhIHsKPiArCXN0cnVjdCBjaGlsZF9k ZXZpY2VfY29uZmlnIGNoaWxkOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBub2RlOwo+ICt9Owo+ICsK PiAgI2RlZmluZQlTTEFWRV9BRERSMQkweDcwCj4gICNkZWZpbmUJU0xBVkVfQUREUjIJMHg3Mgo+ ICAKPiBAQCAtNDQ5LDggKzQ1NSw5IEBAIHN0YXRpYyB2b2lkCj4gIHBhcnNlX3Nkdm9fZGV2aWNl X21hcHBpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBiZGJfdmVyc2lv bikKPiAgewo+ICAJc3RydWN0IHNkdm9fZGV2aWNlX21hcHBpbmcgKm1hcHBpbmc7Cj4gKwljb25z dCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPiAgCWNvbnN0IHN0cnVjdCBj aGlsZF9kZXZpY2VfY29uZmlnICpjaGlsZDsKPiAtCWludCBpLCBjb3VudCA9IDA7Cj4gKwlpbnQg Y291bnQgPSAwOwo+ICAKPiAgCS8qCj4gIAkgKiBPbmx5IHBhcnNlIFNEVk8gbWFwcGluZ3Mgb24g Z2VucyB0aGF0IGNvdWxkIGhhdmUgU0RWTy4gVGhpcyBpc24ndAo+IEBAIC00NjEsOCArNDY4LDgg QEAgcGFyc2Vfc2R2b19kZXZpY2VfbWFwcGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIHU4IGJkYl92ZXJzaW9uKQo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlmb3IgKGkg PSAwLCBjb3VudCA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+ IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgKyBpOwo+ICsJbGlzdF9mb3JfZWFj aF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsK PiArCQljaGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiAgCj4gIAkJaWYgKGNoaWxkLT5zbGF2ZV9h ZGRyICE9IFNMQVZFX0FERFIxICYmCj4gIAkJICAgIGNoaWxkLT5zbGF2ZV9hZGRyICE9IFNMQVZF X0FERFIyKSB7Cj4gQEAgLTE1NzIsOCArMTU3OSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2RkaV9w b3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIHN0YXRpYyB2b2lk IHBhcnNlX2RkaV9wb3J0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IGJk Yl92ZXJzaW9uKQo+ICB7Cj4gLQljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hp bGQ7Cj4gLQlpbnQgaTsKPiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpkZXZk YXRhOwo+ICAKPiAgCWlmICghSEFTX0RESShkZXZfcHJpdikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+ICAJCXJldHVybjsKPiBAQCAtMTU4MSwxMSArMTU4Nyw4IEBAIHN0YXRpYyB2b2lk IHBhcnNlX2RkaV9wb3J0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IGJk Yl92ZXJzaW9uKQo+ICAJaWYgKGJkYl92ZXJzaW9uIDwgMTU1KQo+ICAJCXJldHVybjsKPiAgCj4g LQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPiAt CQljaGlsZCA9IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPiAtCj4gLQkJcGFyc2VfZGRp X3BvcnQoZGV2X3ByaXYsIGNoaWxkLCBiZGJfdmVyc2lvbik7Cj4gLQl9Cj4gKwlsaXN0X2Zvcl9l YWNoX2VudHJ5KGRldmRhdGEsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkK PiArCQlwYXJzZV9kZGlfcG9ydChkZXZfcHJpdiwgJmRldmRhdGEtPmNoaWxkLCBiZGJfdmVyc2lv bik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTE1OTMsOCArMTU5Niw5IEBAIHBhcnNl X2dlbmVyYWxfZGVmaW5pdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJCQkgIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gIHsKPiAgCWNvbnN0IHN0cnVj dCBiZGJfZ2VuZXJhbF9kZWZpbml0aW9ucyAqZGVmczsKPiArCXN0cnVjdCBkaXNwbGF5X2Rldmlj ZV9kYXRhICpkZXZkYXRhOwo+ICAJY29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNo aWxkOwo+IC0JaW50IGksIGNoaWxkX2RldmljZV9udW0sIGNvdW50Owo+ICsJaW50IGksIGNoaWxk X2RldmljZV9udW07Cj4gIAl1OCBleHBlY3RlZF9zaXplOwo+ICAJdTE2IGJsb2NrX3NpemU7Cj4g IAlpbnQgYnVzX3BpbjsKPiBAQCAtMTY1MCwyNiArMTY1NCw3IEBAIHBhcnNlX2dlbmVyYWxfZGVm aW5pdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCS8qIGdl dCB0aGUgbnVtYmVyIG9mIGNoaWxkIGRldmljZSAqLwo+ICAJY2hpbGRfZGV2aWNlX251bSA9IChi bG9ja19zaXplIC0gc2l6ZW9mKCpkZWZzKSkgLyBkZWZzLT5jaGlsZF9kZXZfc2l6ZTsKPiAtCWNv dW50ID0gMDsKPiAtCS8qIGdldCB0aGUgbnVtYmVyIG9mIGNoaWxkIGRldmljZSB0aGF0IGlzIHBy ZXNlbnQgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBjaGlsZF9kZXZpY2VfbnVtOyBpKyspIHsKPiAt CQljaGlsZCA9IGNoaWxkX2RldmljZV9wdHIoZGVmcywgaSk7Cj4gLQkJaWYgKCFjaGlsZC0+ZGV2 aWNlX3R5cGUpCj4gLQkJCWNvbnRpbnVlOwo+IC0JCWNvdW50Kys7Cj4gLQl9Cj4gLQlpZiAoIWNv dW50KSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygibm8gY2hpbGQgZGV2IGlzIHBhcnNlZCBmcm9tIFZC VFxuIik7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+IC0JZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgPSBr Y2FsbG9jKGNvdW50LCBzaXplb2YoKmNoaWxkKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWRldl9w cml2LT52YnQuY2hpbGRfZGV2KSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygiTm8gbWVtb3J5IHNwYWNl IGZvciBjaGlsZCBkZXZpY2VcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAgCj4gLQlkZXZfcHJp di0+dmJ0LmNoaWxkX2Rldl9udW0gPSBjb3VudDsKPiAtCWNvdW50ID0gMDsKPiAgCWZvciAoaSA9 IDA7IGkgPCBjaGlsZF9kZXZpY2VfbnVtOyBpKyspIHsKPiAgCQljaGlsZCA9IGNoaWxkX2Rldmlj ZV9wdHIoZGVmcywgaSk7Cj4gIAkJaWYgKCFjaGlsZC0+ZGV2aWNlX3R5cGUpCj4gQEAgLTE2Nzgs MTUgKzE2NjMsMjMgQEAgcGFyc2VfZ2VuZXJhbF9kZWZpbml0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJRFJNX0RFQlVHX0tNUygiRm91bmQgVkJUIGNoaWxkIGRl dmljZSB3aXRoIHR5cGUgMHgleFxuIiwKPiAgCQkJICAgICAgY2hpbGQtPmRldmljZV90eXBlKTsK PiAgCj4gKwkJZGV2ZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkZXZkYXRhKSwgR0ZQX0tFUk5FTCk7 Cj4gKwkJaWYgKCFkZXZkYXRhKQo+ICsJCQlicmVhazsKPiArCj4gIAkJLyoKPiAgCQkgKiBDb3B5 IGFzIG11Y2ggYXMgd2Uga25vdyAoc2l6ZW9mKSBhbmQgaXMgYXZhaWxhYmxlCj4gLQkJICogKGNo aWxkX2Rldl9zaXplKSBvZiB0aGUgY2hpbGQgZGV2aWNlLiBBY2Nlc3NpbmcgdGhlIGRhdGEgbXVz dAo+IC0JCSAqIGRlcGVuZCBvbiBWQlQgdmVyc2lvbi4KPiArCQkgKiAoY2hpbGRfZGV2X3NpemUp IG9mIHRoZSBjaGlsZCBkZXZpY2UgY29uZmlnLiBBY2Nlc3NpbmcgdGhlCj4gKwkJICogZGF0YSBt dXN0IGRlcGVuZCBvbiBWQlQgdmVyc2lvbi4KPiAgCQkgKi8KPiAtCQltZW1jcHkoZGV2X3ByaXYt PnZidC5jaGlsZF9kZXYgKyBjb3VudCwgY2hpbGQsCj4gKwkJbWVtY3B5KCZkZXZkYXRhLT5jaGls ZCwgY2hpbGQsCj4gIAkJICAgICAgIG1pbl90KHNpemVfdCwgZGVmcy0+Y2hpbGRfZGV2X3NpemUs IHNpemVvZigqY2hpbGQpKSk7Cj4gLQkJY291bnQrKzsKPiArCj4gKwkJbGlzdF9hZGQoJmRldmRh dGEtPm5vZGUsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcyk7CgpTZWVtcyBsaWtlIHdl IHdhbnQgbGlzdF9hZGRfdGFpbCgpIGhlcmUgb3Igd2UnbGwgcmV2ZXJzZSB0aGUgY2hpbGQgZGV2 Cm9yZGVyIGFuZCBnZXQgdGhlIHBvcnQgQSB2cy4gcG9ydCBFIGJ1ZyByaWdodCBiYWNrLgoKT3Ro ZXJ3aXNlClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgoKPiAgCX0KPiArCj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnZidC5k aXNwbGF5X2RldmljZXMpKQo+ICsJCURSTV9ERUJVR19LTVMoIm5vIGNoaWxkIGRldiBpcyBwYXJz ZWQgZnJvbSBWQlRcbiIpOwo+ICB9Cj4gIAo+ICAvKiBDb21tb24gZGVmYXVsdHMgd2hpY2ggbWF5 IGJlIG92ZXJyaWRkZW4gYnkgVkJULiAqLwo+IEBAIC0xODM2LDYgKzE4MjksOCBAQCB2b2lkIGlu dGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAljb25z dCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiOwo+ICAJdTggX19pb21lbSAqYmlvcyA9IE5VTEw7Cj4g IAo+ICsJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZpY2VzKTsKPiAr Cj4gIAlpZiAoIUhBU19ESVNQTEFZKGRldl9wcml2KSB8fCAhSU5URUxfRElTUExBWV9FTkFCTEVE KGRldl9wcml2KSkgewo+ICAJCURSTV9ERUJVR19LTVMoIlNraXBwaW5nIFZCVCBpbml0IGR1ZSB0 byBkaXNhYmxlZCBkaXNwbGF5LlxuIik7Cj4gIAkJcmV0dXJuOwo+IEBAIC0xODk1LDkgKzE4OTAs MTMgQEAgdm9pZCBpbnRlbF9iaW9zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAgKi8KPiAgdm9pZCBpbnRlbF9iaW9zX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlrZnJlZShkZXZfcHJpdi0+dmJ0LmNoaWxk X2Rldik7Cj4gLQlkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiA9IE5VTEw7Cj4gLQlkZXZfcHJpdi0+ dmJ0LmNoaWxkX2Rldl9udW0gPSAwOwo+ICsJc3RydWN0IGRpc3BsYXlfZGV2aWNlX2RhdGEgKmRl dmRhdGEsICpuOwo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShkZXZkYXRhLCBuLCAm ZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsKPiArCQlsaXN0X2RlbCgmZGV2 ZGF0YS0+bm9kZSk7Cj4gKwkJa2ZyZWUoZGV2ZGF0YSk7Cj4gKwl9Cj4gKwo+ICAJa2ZyZWUoZGV2 X3ByaXYtPnZidC5zZHZvX2x2ZHNfdmJ0X21vZGUpOwo+ICAJZGV2X3ByaXYtPnZidC5zZHZvX2x2 ZHNfdmJ0X21vZGUgPSBOVUxMOwo+ICAJa2ZyZWUoZGV2X3ByaXYtPnZidC5sZnBfbHZkc192YnRf bW9kZSk7Cj4gQEAgLTE5MjEsMTcgKzE5MjAsMTggQEAgdm9pZCBpbnRlbF9iaW9zX2RyaXZlcl9y ZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgKi8KPiAgYm9vbCBp bnRlbF9iaW9zX2lzX3R2X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICB7Cj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPiAg CWNvbnN0IHN0cnVjdCBjaGlsZF9kZXZpY2VfY29uZmlnICpjaGlsZDsKPiAtCWludCBpOwo+ICAK PiAgCWlmICghZGV2X3ByaXYtPnZidC5pbnRfdHZfc3VwcG9ydCkKPiAgCQlyZXR1cm4gZmFsc2U7 Cj4gIAo+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0pCj4gKwlpZiAobGlzdF9l bXB0eSgmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMpKQo+ICAJCXJldHVybiB0cnVlOwo+ ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykg ewo+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgKyBpOwo+ICsJbGlzdF9mb3Jf ZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUp IHsKPiArCQljaGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiArCj4gIAkJLyoKPiAgCQkgKiBJZiB0 aGUgZGV2aWNlIHR5cGUgaXMgbm90IFRWLCBjb250aW51ZS4KPiAgCQkgKi8KPiBAQCAtMTk2Mywx NCArMTk2MywxNCBAQCBib29sIGludGVsX2Jpb3NfaXNfdHZfcHJlc2VudChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAqLwo+ICBib29sIGludGVsX2Jpb3NfaXNfbHZkc19w cmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggKmkyY19waW4pCj4g IHsKPiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpkZXZkYXRhOwo+ICAJY29u c3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkOwo+IC0JaW50IGk7Cj4gIAo+IC0J aWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0pCj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2 X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMpKQo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiAtCWZv ciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+IC0JCWNo aWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgKyBpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsKPiArCQlj aGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiAgCj4gIAkJLyogSWYgdGhlIGRldmljZSB0eXBlIGlz IG5vdCBMRlAsIGNvbnRpbnVlLgo+ICAJCSAqIFdlIGhhdmUgdG8gY2hlY2sgYm90aCB0aGUgbmV3 IGlkZW50aWZpZXJzIGFzIHdlbGwgYXMgdGhlCj4gQEAgLTIwMTIsNiArMjAxMiw3IEBAIGJvb2wg aW50ZWxfYmlvc19pc19sdmRzX3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1OCAqaTJjX3BpbikKPiAgICovCj4gIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3ByZXNl bnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAg ewo+ICsJY29uc3Qgc3RydWN0IGRpc3BsYXlfZGV2aWNlX2RhdGEgKmRldmRhdGE7Cj4gIAljb25z dCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4gIAlzdGF0aWMgY29uc3Qgc3Ry dWN0IHsKPiAgCQl1MTYgZHAsIGhkbWk7Cj4gQEAgLTIwMjIsNyArMjAyMyw2IEBAIGJvb2wgaW50 ZWxfYmlvc19pc19wb3J0X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9yCj4gIAkJW1BPUlRfRV0gPSB7IERWT19QT1JUX0RQRSwgRFZPX1BPUlRf SERNSUUsIH0sCj4gIAkJW1BPUlRfRl0gPSB7IERWT19QT1JUX0RQRiwgRFZPX1BPUlRfSERNSUYs IH0sCj4gIAl9Owo+IC0JaW50IGk7Cj4gIAo+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4g IAkJY29uc3Qgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICpwb3J0X2luZm8gPQo+IEBAIC0yMDM3 LDExICsyMDM3LDggQEAgYm9vbCBpbnRlbF9iaW9zX2lzX3BvcnRfcHJlc2VudChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3IKPiAgCWlmIChXQVJOX09OKHBv cnQgPT0gUE9SVF9BKSB8fCBwb3J0ID49IEFSUkFZX1NJWkUocG9ydF9tYXBwaW5nKSkKPiAgCQly ZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0pCj4g LQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNo aWxkX2Rldl9udW07IGkrKykgewo+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYg KyBpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNw bGF5X2RldmljZXMsIG5vZGUpIHsKPiArCQljaGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiAgCj4g IAkJaWYgKChjaGlsZC0+ZHZvX3BvcnQgPT0gcG9ydF9tYXBwaW5nW3BvcnRdLmRwIHx8Cj4gIAkJ ICAgICBjaGlsZC0+ZHZvX3BvcnQgPT0gcG9ydF9tYXBwaW5nW3BvcnRdLmhkbWkpICYmCj4gQEAg LTIwNjIsNiArMjA1OSw3IEBAIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3ByZXNlbnQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9yCj4gICAqLwo+ICBib29s IGludGVsX2Jpb3NfaXNfcG9ydF9lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICsJY29uc3Qgc3RydWN0IGRpc3BsYXlfZGV2aWNlX2Rh dGEgKmRldmRhdGE7Cj4gIAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7 Cj4gIAlzdGF0aWMgY29uc3Qgc2hvcnQgcG9ydF9tYXBwaW5nW10gPSB7Cj4gIAkJW1BPUlRfQl0g PSBEVk9fUE9SVF9EUEIsCj4gQEAgLTIwNzAsMTYgKzIwNjgsMTIgQEAgYm9vbCBpbnRlbF9iaW9z X2lzX3BvcnRfZWRwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0 IHBvcnQpCj4gIAkJW1BPUlRfRV0gPSBEVk9fUE9SVF9EUEUsCj4gIAkJW1BPUlRfRl0gPSBEVk9f UE9SVF9EUEYsCj4gIAl9Owo+IC0JaW50IGk7Cj4gIAo+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYp KQo+ICAJCXJldHVybiBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF0uc3VwcG9ydHNf ZWRwOwo+ICAKPiAtCWlmICghZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtKQo+IC0JCXJldHVy biBmYWxzZTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZf bnVtOyBpKyspIHsKPiAtCQljaGlsZCA9IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZp Y2VzLCBub2RlKSB7Cj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7Cj4gIAo+ICAJCWlmIChj aGlsZC0+ZHZvX3BvcnQgPT0gcG9ydF9tYXBwaW5nW3BvcnRdICYmCj4gIAkJICAgIChjaGlsZC0+ ZGV2aWNlX3R5cGUgJiBERVZJQ0VfVFlQRV9lRFBfQklUUykgPT0KPiBAQCAtMjEyOCwxMyArMjEy MiwxMCBAQCBzdGF0aWMgYm9vbCBjaGlsZF9kZXZfaXNfZHBfZHVhbF9tb2RlKGNvbnN0IHN0cnVj dCBjaGlsZF9kZXZpY2VfY29uZmlnICpjaGlsZCwKPiAgYm9vbCBpbnRlbF9iaW9zX2lzX3BvcnRf ZHBfZHVhbF9tb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSAg ICAgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAtCWNvbnN0IHN0cnVjdCBjaGlsZF9kZXZpY2VfY29u ZmlnICpjaGlsZDsKPiAtCWludCBpOwo+ICsJY29uc3Qgc3RydWN0IGRpc3BsYXlfZGV2aWNlX2Rh dGEgKmRldmRhdGE7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT52YnQuY2hpbGRf ZGV2X251bTsgaSsrKSB7Cj4gLQkJY2hpbGQgPSBkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiArIGk7 Cj4gLQo+IC0JCWlmIChjaGlsZF9kZXZfaXNfZHBfZHVhbF9tb2RlKGNoaWxkLCBwb3J0KSkKPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZp Y2VzLCBub2RlKSB7Cj4gKwkJaWYgKGNoaWxkX2Rldl9pc19kcF9kdWFsX21vZGUoJmRldmRhdGEt PmNoaWxkLCBwb3J0KSkKPiAgCQkJcmV0dXJuIHRydWU7Cj4gIAl9Cj4gIAo+IEBAIC0yMTUxLDEy ICsyMTQyLDEyIEBAIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X2RwX2R1YWxfbW9kZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIGJvb2wgaW50ZWxfYmlvc19pc19kc2lfcHJl c2VudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgICBlbnVt IHBvcnQgKnBvcnQpCj4gIHsKPiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpk ZXZkYXRhOwo+ICAJY29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkOwo+ICAJ dTggZHZvX3BvcnQ7Cj4gLQlpbnQgaTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYt PnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPiAtCQljaGlsZCA9IGRldl9wcml2LT52YnQuY2hp bGRfZGV2ICsgaTsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52 YnQuZGlzcGxheV9kZXZpY2VzLCBub2RlKSB7Cj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7 Cj4gIAo+ICAJCWlmICghKGNoaWxkLT5kZXZpY2VfdHlwZSAmIERFVklDRV9UWVBFX01JUElfT1VU UFVUKSkKPiAgCQkJY29udGludWU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNjdi ZGZlNmRlM2ZhLi4yYzA2NzRhODZkZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBA QCAtNzIwLDggKzcyMCw3IEBAIHN0cnVjdCBpbnRlbF92YnRfZGF0YSB7Cj4gIAo+ICAJaW50IGNy dF9kZGNfcGluOwo+ICAKPiAtCWludCBjaGlsZF9kZXZfbnVtOwo+IC0Jc3RydWN0IGNoaWxkX2Rl dmljZV9jb25maWcgKmNoaWxkX2RldjsKPiArCXN0cnVjdCBsaXN0X2hlYWQgZGlzcGxheV9kZXZp Y2VzOwo+ICAKPiAgCXN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyBkZGlfcG9ydF9pbmZvW0k5MTVf TUFYX1BPUlRTXTsKPiAgCXN0cnVjdCBzZHZvX2RldmljZV9tYXBwaW5nIHNkdm9fbWFwcGluZ3Nb Ml07Cj4gLS0gCj4gMi4yMC4xCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== 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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 C3436C5DF60 for ; Thu, 7 Nov 2019 16:21:51 +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 A3221206DF for ; Thu, 7 Nov 2019 16:21:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3221206DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 DA9956F743; Thu, 7 Nov 2019 16:21:49 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id D7F856F72F for ; Thu, 7 Nov 2019 16:21:47 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Nov 2019 08:21:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,278,1569308400"; d="scan'208";a="230629379" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by FMSMGA003.fm.intel.com with SMTP; 07 Nov 2019 08:21:44 -0800 Received: by stinkbox (sSMTP sendmail emulation); Thu, 07 Nov 2019 18:21:44 +0200 Date: Thu, 7 Nov 2019 18:21:44 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Jani Nikula Message-ID: <20191107162144.GE1208@intel.com> References: <20191107160854.17991-1-jani.nikula@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191107160854.17991-1-jani.nikula@intel.com> User-Agent: Mutt/1.10.1 (2018-07-13) 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: <20191107162144.fG_uD7E4l5KVv9n-xfl9eMOcSsQOsgNDRvpi6RU-SoI@z> T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDY6MDg6NTNQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gVXNpbmcgdGhlIGFycmF5IGlzIGdldHRpbmcgY2x1bXN5LiBNYWtlIHRoaW5ncyBhIGJp dCBtb3JlIGR5bmFtaWMuCj4gCj4gUmVtb3ZlIGVhcmx5IHJldHVybnMgb24gbm90IGhhdmluZyBj aGlsZCBkZXZpY2VzIHdoZW4gdGhlIGVuZCByZXN1bHQKPiBhZnRlciAiaXRlcmF0aW5nIiB0aGUg ZW1wdHkgbGlzdCB3b3VsZCBiZSB0aGUgc2FtZS4KPiAKPiB2MjoKPiAtIHN0aWNrIHRvIHByZXZp b3VzIG5hbWluZyBvZiBjaGlsZCBkZXZpY2VzIChWaWxsZSkKPiAtIHVzZSBremFsbG9jLCBoYW5k bGUgZmFpbHVyZQo+IC0gaW5pdGlhbGl6ZSBsaXN0IGhlYWQgZWFybGllciB0byBrZWVwIGludGVs X2Jpb3NfZHJpdmVyX3JlbW92ZSgpIHNhZmUKPiAKPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4KPiAKPiAtLS0KPiAKPiBUaGUgZW5kIGdvYWw6IGFsbG93IG1v cmUgbWV0YSBpbmZvcm1hdGlvbiB0byBiZSBhZGRlZCB0byB0aGUgbmV3Cj4gY2hpbGRfZGV2aWNl IHN0cnVjdCwgaW5kZXBlbmRlbnQgb2YgRERJIHBvcnQgaW5mbyBiZWluZyB1c2VkIG9yIG5vdCBv bgo+IHRoZSBwbGF0Zm9ybSwgYW5kIGV2ZW50dWFsbHkgbWlncmF0ZSBkZGlfcG9ydF9pbmZvIHRv IGl0IGFzIHdlbGwsCj4gdW5pZnlpbmcgdGhlIHN0dWZmIGFjcm9zcyBwbGF0Zm9ybXMuCj4gCj4g Q3VycmVudGx5IGl0J3Mgbm90IGVhc2lseSBwb3NzaWJsZSB0byBhc3NvY2lhdGUgZm9yIGV4YW1w bGUgdGhlIERTQwo+IGNvbXByZXNzaW9uIGRhdGEgdG8gdGhlIGNoaWxkIGRldmljZSBmb3Igbm9u LURESSBwbGF0Zm9ybXMgb3IgZm9yIERTSQo+IG91dHB1dHMuIFRoaXMgbGV0cyB1cyBhZGQgdGhl IGNvbXByZXNzaW9uIGRhdGEgKHBvaW50ZXIpIHRvIHN0cnVjdAo+IGNoaWxkX2RldmljZS4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgfCAxMjMgKysr KysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgICB8ICAgMyArLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDY4 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlv cy5jCj4gaW5kZXggYzE5YjIzNGJlYmU2Li4zN2I5NDQzOTdiNzUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+IEBAIC01OCw2ICs1OCwxMiBAQAo+ICAg KiB0aGF0Lgo+ICAgKi8KPiAgCj4gKy8qIFdyYXBwZXIgZm9yIFZCVCBjaGlsZCBkZXZpY2UgY29u ZmlnICovCj4gK3N0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhIHsKPiArCXN0cnVjdCBjaGlsZF9k ZXZpY2VfY29uZmlnIGNoaWxkOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBub2RlOwo+ICt9Owo+ICsK PiAgI2RlZmluZQlTTEFWRV9BRERSMQkweDcwCj4gICNkZWZpbmUJU0xBVkVfQUREUjIJMHg3Mgo+ ICAKPiBAQCAtNDQ5LDggKzQ1NSw5IEBAIHN0YXRpYyB2b2lkCj4gIHBhcnNlX3Nkdm9fZGV2aWNl X21hcHBpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBiZGJfdmVyc2lv bikKPiAgewo+ICAJc3RydWN0IHNkdm9fZGV2aWNlX21hcHBpbmcgKm1hcHBpbmc7Cj4gKwljb25z dCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPiAgCWNvbnN0IHN0cnVjdCBj aGlsZF9kZXZpY2VfY29uZmlnICpjaGlsZDsKPiAtCWludCBpLCBjb3VudCA9IDA7Cj4gKwlpbnQg Y291bnQgPSAwOwo+ICAKPiAgCS8qCj4gIAkgKiBPbmx5IHBhcnNlIFNEVk8gbWFwcGluZ3Mgb24g Z2VucyB0aGF0IGNvdWxkIGhhdmUgU0RWTy4gVGhpcyBpc24ndAo+IEBAIC00NjEsOCArNDY4LDgg QEAgcGFyc2Vfc2R2b19kZXZpY2VfbWFwcGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIHU4IGJkYl92ZXJzaW9uKQo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlmb3IgKGkg PSAwLCBjb3VudCA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+ IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgKyBpOwo+ICsJbGlzdF9mb3JfZWFj aF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsK PiArCQljaGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiAgCj4gIAkJaWYgKGNoaWxkLT5zbGF2ZV9h ZGRyICE9IFNMQVZFX0FERFIxICYmCj4gIAkJICAgIGNoaWxkLT5zbGF2ZV9hZGRyICE9IFNMQVZF X0FERFIyKSB7Cj4gQEAgLTE1NzIsOCArMTU3OSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2RkaV9w b3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIHN0YXRpYyB2b2lk IHBhcnNlX2RkaV9wb3J0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IGJk Yl92ZXJzaW9uKQo+ICB7Cj4gLQljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hp bGQ7Cj4gLQlpbnQgaTsKPiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpkZXZk YXRhOwo+ICAKPiAgCWlmICghSEFTX0RESShkZXZfcHJpdikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+ICAJCXJldHVybjsKPiBAQCAtMTU4MSwxMSArMTU4Nyw4IEBAIHN0YXRpYyB2b2lk IHBhcnNlX2RkaV9wb3J0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IGJk Yl92ZXJzaW9uKQo+ICAJaWYgKGJkYl92ZXJzaW9uIDwgMTU1KQo+ICAJCXJldHVybjsKPiAgCj4g LQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPiAt CQljaGlsZCA9IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPiAtCj4gLQkJcGFyc2VfZGRp X3BvcnQoZGV2X3ByaXYsIGNoaWxkLCBiZGJfdmVyc2lvbik7Cj4gLQl9Cj4gKwlsaXN0X2Zvcl9l YWNoX2VudHJ5KGRldmRhdGEsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcywgbm9kZSkK PiArCQlwYXJzZV9kZGlfcG9ydChkZXZfcHJpdiwgJmRldmRhdGEtPmNoaWxkLCBiZGJfdmVyc2lv bik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTE1OTMsOCArMTU5Niw5IEBAIHBhcnNl X2dlbmVyYWxfZGVmaW5pdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJCQkgIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gIHsKPiAgCWNvbnN0IHN0cnVj dCBiZGJfZ2VuZXJhbF9kZWZpbml0aW9ucyAqZGVmczsKPiArCXN0cnVjdCBkaXNwbGF5X2Rldmlj ZV9kYXRhICpkZXZkYXRhOwo+ICAJY29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNo aWxkOwo+IC0JaW50IGksIGNoaWxkX2RldmljZV9udW0sIGNvdW50Owo+ICsJaW50IGksIGNoaWxk X2RldmljZV9udW07Cj4gIAl1OCBleHBlY3RlZF9zaXplOwo+ICAJdTE2IGJsb2NrX3NpemU7Cj4g IAlpbnQgYnVzX3BpbjsKPiBAQCAtMTY1MCwyNiArMTY1NCw3IEBAIHBhcnNlX2dlbmVyYWxfZGVm aW5pdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCS8qIGdl dCB0aGUgbnVtYmVyIG9mIGNoaWxkIGRldmljZSAqLwo+ICAJY2hpbGRfZGV2aWNlX251bSA9IChi bG9ja19zaXplIC0gc2l6ZW9mKCpkZWZzKSkgLyBkZWZzLT5jaGlsZF9kZXZfc2l6ZTsKPiAtCWNv dW50ID0gMDsKPiAtCS8qIGdldCB0aGUgbnVtYmVyIG9mIGNoaWxkIGRldmljZSB0aGF0IGlzIHBy ZXNlbnQgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBjaGlsZF9kZXZpY2VfbnVtOyBpKyspIHsKPiAt CQljaGlsZCA9IGNoaWxkX2RldmljZV9wdHIoZGVmcywgaSk7Cj4gLQkJaWYgKCFjaGlsZC0+ZGV2 aWNlX3R5cGUpCj4gLQkJCWNvbnRpbnVlOwo+IC0JCWNvdW50Kys7Cj4gLQl9Cj4gLQlpZiAoIWNv dW50KSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygibm8gY2hpbGQgZGV2IGlzIHBhcnNlZCBmcm9tIFZC VFxuIik7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+IC0JZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgPSBr Y2FsbG9jKGNvdW50LCBzaXplb2YoKmNoaWxkKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWRldl9w cml2LT52YnQuY2hpbGRfZGV2KSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygiTm8gbWVtb3J5IHNwYWNl IGZvciBjaGlsZCBkZXZpY2VcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAgCj4gLQlkZXZfcHJp di0+dmJ0LmNoaWxkX2Rldl9udW0gPSBjb3VudDsKPiAtCWNvdW50ID0gMDsKPiAgCWZvciAoaSA9 IDA7IGkgPCBjaGlsZF9kZXZpY2VfbnVtOyBpKyspIHsKPiAgCQljaGlsZCA9IGNoaWxkX2Rldmlj ZV9wdHIoZGVmcywgaSk7Cj4gIAkJaWYgKCFjaGlsZC0+ZGV2aWNlX3R5cGUpCj4gQEAgLTE2Nzgs MTUgKzE2NjMsMjMgQEAgcGFyc2VfZ2VuZXJhbF9kZWZpbml0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJRFJNX0RFQlVHX0tNUygiRm91bmQgVkJUIGNoaWxkIGRl dmljZSB3aXRoIHR5cGUgMHgleFxuIiwKPiAgCQkJICAgICAgY2hpbGQtPmRldmljZV90eXBlKTsK PiAgCj4gKwkJZGV2ZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkZXZkYXRhKSwgR0ZQX0tFUk5FTCk7 Cj4gKwkJaWYgKCFkZXZkYXRhKQo+ICsJCQlicmVhazsKPiArCj4gIAkJLyoKPiAgCQkgKiBDb3B5 IGFzIG11Y2ggYXMgd2Uga25vdyAoc2l6ZW9mKSBhbmQgaXMgYXZhaWxhYmxlCj4gLQkJICogKGNo aWxkX2Rldl9zaXplKSBvZiB0aGUgY2hpbGQgZGV2aWNlLiBBY2Nlc3NpbmcgdGhlIGRhdGEgbXVz dAo+IC0JCSAqIGRlcGVuZCBvbiBWQlQgdmVyc2lvbi4KPiArCQkgKiAoY2hpbGRfZGV2X3NpemUp IG9mIHRoZSBjaGlsZCBkZXZpY2UgY29uZmlnLiBBY2Nlc3NpbmcgdGhlCj4gKwkJICogZGF0YSBt dXN0IGRlcGVuZCBvbiBWQlQgdmVyc2lvbi4KPiAgCQkgKi8KPiAtCQltZW1jcHkoZGV2X3ByaXYt PnZidC5jaGlsZF9kZXYgKyBjb3VudCwgY2hpbGQsCj4gKwkJbWVtY3B5KCZkZXZkYXRhLT5jaGls ZCwgY2hpbGQsCj4gIAkJICAgICAgIG1pbl90KHNpemVfdCwgZGVmcy0+Y2hpbGRfZGV2X3NpemUs IHNpemVvZigqY2hpbGQpKSk7Cj4gLQkJY291bnQrKzsKPiArCj4gKwkJbGlzdF9hZGQoJmRldmRh dGEtPm5vZGUsICZkZXZfcHJpdi0+dmJ0LmRpc3BsYXlfZGV2aWNlcyk7CgpTZWVtcyBsaWtlIHdl IHdhbnQgbGlzdF9hZGRfdGFpbCgpIGhlcmUgb3Igd2UnbGwgcmV2ZXJzZSB0aGUgY2hpbGQgZGV2 Cm9yZGVyIGFuZCBnZXQgdGhlIHBvcnQgQSB2cy4gcG9ydCBFIGJ1ZyByaWdodCBiYWNrLgoKT3Ro ZXJ3aXNlClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgoKPiAgCX0KPiArCj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnZidC5k aXNwbGF5X2RldmljZXMpKQo+ICsJCURSTV9ERUJVR19LTVMoIm5vIGNoaWxkIGRldiBpcyBwYXJz ZWQgZnJvbSBWQlRcbiIpOwo+ICB9Cj4gIAo+ICAvKiBDb21tb24gZGVmYXVsdHMgd2hpY2ggbWF5 IGJlIG92ZXJyaWRkZW4gYnkgVkJULiAqLwo+IEBAIC0xODM2LDYgKzE4MjksOCBAQCB2b2lkIGlu dGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAljb25z dCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiOwo+ICAJdTggX19pb21lbSAqYmlvcyA9IE5VTEw7Cj4g IAo+ICsJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZpY2VzKTsKPiAr Cj4gIAlpZiAoIUhBU19ESVNQTEFZKGRldl9wcml2KSB8fCAhSU5URUxfRElTUExBWV9FTkFCTEVE KGRldl9wcml2KSkgewo+ICAJCURSTV9ERUJVR19LTVMoIlNraXBwaW5nIFZCVCBpbml0IGR1ZSB0 byBkaXNhYmxlZCBkaXNwbGF5LlxuIik7Cj4gIAkJcmV0dXJuOwo+IEBAIC0xODk1LDkgKzE4OTAs MTMgQEAgdm9pZCBpbnRlbF9iaW9zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAgKi8KPiAgdm9pZCBpbnRlbF9iaW9zX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlrZnJlZShkZXZfcHJpdi0+dmJ0LmNoaWxk X2Rldik7Cj4gLQlkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiA9IE5VTEw7Cj4gLQlkZXZfcHJpdi0+ dmJ0LmNoaWxkX2Rldl9udW0gPSAwOwo+ICsJc3RydWN0IGRpc3BsYXlfZGV2aWNlX2RhdGEgKmRl dmRhdGEsICpuOwo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShkZXZkYXRhLCBuLCAm ZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsKPiArCQlsaXN0X2RlbCgmZGV2 ZGF0YS0+bm9kZSk7Cj4gKwkJa2ZyZWUoZGV2ZGF0YSk7Cj4gKwl9Cj4gKwo+ICAJa2ZyZWUoZGV2 X3ByaXYtPnZidC5zZHZvX2x2ZHNfdmJ0X21vZGUpOwo+ICAJZGV2X3ByaXYtPnZidC5zZHZvX2x2 ZHNfdmJ0X21vZGUgPSBOVUxMOwo+ICAJa2ZyZWUoZGV2X3ByaXYtPnZidC5sZnBfbHZkc192YnRf bW9kZSk7Cj4gQEAgLTE5MjEsMTcgKzE5MjAsMTggQEAgdm9pZCBpbnRlbF9iaW9zX2RyaXZlcl9y ZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgKi8KPiAgYm9vbCBp bnRlbF9iaW9zX2lzX3R2X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICB7Cj4gKwljb25zdCBzdHJ1Y3QgZGlzcGxheV9kZXZpY2VfZGF0YSAqZGV2ZGF0YTsKPiAg CWNvbnN0IHN0cnVjdCBjaGlsZF9kZXZpY2VfY29uZmlnICpjaGlsZDsKPiAtCWludCBpOwo+ICAK PiAgCWlmICghZGV2X3ByaXYtPnZidC5pbnRfdHZfc3VwcG9ydCkKPiAgCQlyZXR1cm4gZmFsc2U7 Cj4gIAo+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0pCj4gKwlpZiAobGlzdF9l bXB0eSgmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMpKQo+ICAJCXJldHVybiB0cnVlOwo+ ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykg ewo+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgKyBpOwo+ICsJbGlzdF9mb3Jf ZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUp IHsKPiArCQljaGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiArCj4gIAkJLyoKPiAgCQkgKiBJZiB0 aGUgZGV2aWNlIHR5cGUgaXMgbm90IFRWLCBjb250aW51ZS4KPiAgCQkgKi8KPiBAQCAtMTk2Mywx NCArMTk2MywxNCBAQCBib29sIGludGVsX2Jpb3NfaXNfdHZfcHJlc2VudChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAqLwo+ICBib29sIGludGVsX2Jpb3NfaXNfbHZkc19w cmVzZW50KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggKmkyY19waW4pCj4g IHsKPiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpkZXZkYXRhOwo+ICAJY29u c3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkOwo+IC0JaW50IGk7Cj4gIAo+IC0J aWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0pCj4gKwlpZiAobGlzdF9lbXB0eSgmZGV2 X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMpKQo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiAtCWZv ciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW07IGkrKykgewo+IC0JCWNo aWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYgKyBpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNwbGF5X2RldmljZXMsIG5vZGUpIHsKPiArCQlj aGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiAgCj4gIAkJLyogSWYgdGhlIGRldmljZSB0eXBlIGlz IG5vdCBMRlAsIGNvbnRpbnVlLgo+ICAJCSAqIFdlIGhhdmUgdG8gY2hlY2sgYm90aCB0aGUgbmV3 IGlkZW50aWZpZXJzIGFzIHdlbGwgYXMgdGhlCj4gQEAgLTIwMTIsNiArMjAxMiw3IEBAIGJvb2wg aW50ZWxfYmlvc19pc19sdmRzX3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1OCAqaTJjX3BpbikKPiAgICovCj4gIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3ByZXNl bnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAg ewo+ICsJY29uc3Qgc3RydWN0IGRpc3BsYXlfZGV2aWNlX2RhdGEgKmRldmRhdGE7Cj4gIAljb25z dCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7Cj4gIAlzdGF0aWMgY29uc3Qgc3Ry dWN0IHsKPiAgCQl1MTYgZHAsIGhkbWk7Cj4gQEAgLTIwMjIsNyArMjAyMyw2IEBAIGJvb2wgaW50 ZWxfYmlvc19pc19wb3J0X3ByZXNlbnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9yCj4gIAkJW1BPUlRfRV0gPSB7IERWT19QT1JUX0RQRSwgRFZPX1BPUlRf SERNSUUsIH0sCj4gIAkJW1BPUlRfRl0gPSB7IERWT19QT1JUX0RQRiwgRFZPX1BPUlRfSERNSUYs IH0sCj4gIAl9Owo+IC0JaW50IGk7Cj4gIAo+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4g IAkJY29uc3Qgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICpwb3J0X2luZm8gPQo+IEBAIC0yMDM3 LDExICsyMDM3LDggQEAgYm9vbCBpbnRlbF9iaW9zX2lzX3BvcnRfcHJlc2VudChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3IKPiAgCWlmIChXQVJOX09OKHBv cnQgPT0gUE9SVF9BKSB8fCBwb3J0ID49IEFSUkFZX1NJWkUocG9ydF9tYXBwaW5nKSkKPiAgCQly ZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKCFkZXZfcHJpdi0+dmJ0LmNoaWxkX2Rldl9udW0pCj4g LQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dmJ0LmNo aWxkX2Rldl9udW07IGkrKykgewo+IC0JCWNoaWxkID0gZGV2X3ByaXYtPnZidC5jaGlsZF9kZXYg KyBpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXZkYXRhLCAmZGV2X3ByaXYtPnZidC5kaXNw bGF5X2RldmljZXMsIG5vZGUpIHsKPiArCQljaGlsZCA9ICZkZXZkYXRhLT5jaGlsZDsKPiAgCj4g IAkJaWYgKChjaGlsZC0+ZHZvX3BvcnQgPT0gcG9ydF9tYXBwaW5nW3BvcnRdLmRwIHx8Cj4gIAkJ ICAgICBjaGlsZC0+ZHZvX3BvcnQgPT0gcG9ydF9tYXBwaW5nW3BvcnRdLmhkbWkpICYmCj4gQEAg LTIwNjIsNiArMjA1OSw3IEBAIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X3ByZXNlbnQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9yCj4gICAqLwo+ICBib29s IGludGVsX2Jpb3NfaXNfcG9ydF9lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICsJY29uc3Qgc3RydWN0IGRpc3BsYXlfZGV2aWNlX2Rh dGEgKmRldmRhdGE7Cj4gIAljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQ7 Cj4gIAlzdGF0aWMgY29uc3Qgc2hvcnQgcG9ydF9tYXBwaW5nW10gPSB7Cj4gIAkJW1BPUlRfQl0g PSBEVk9fUE9SVF9EUEIsCj4gQEAgLTIwNzAsMTYgKzIwNjgsMTIgQEAgYm9vbCBpbnRlbF9iaW9z X2lzX3BvcnRfZWRwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0 IHBvcnQpCj4gIAkJW1BPUlRfRV0gPSBEVk9fUE9SVF9EUEUsCj4gIAkJW1BPUlRfRl0gPSBEVk9f UE9SVF9EUEYsCj4gIAl9Owo+IC0JaW50IGk7Cj4gIAo+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYp KQo+ICAJCXJldHVybiBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF0uc3VwcG9ydHNf ZWRwOwo+ICAKPiAtCWlmICghZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZfbnVtKQo+IC0JCXJldHVy biBmYWxzZTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnZidC5jaGlsZF9kZXZf bnVtOyBpKyspIHsKPiAtCQljaGlsZCA9IGRldl9wcml2LT52YnQuY2hpbGRfZGV2ICsgaTsKPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZp Y2VzLCBub2RlKSB7Cj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7Cj4gIAo+ICAJCWlmIChj aGlsZC0+ZHZvX3BvcnQgPT0gcG9ydF9tYXBwaW5nW3BvcnRdICYmCj4gIAkJICAgIChjaGlsZC0+ ZGV2aWNlX3R5cGUgJiBERVZJQ0VfVFlQRV9lRFBfQklUUykgPT0KPiBAQCAtMjEyOCwxMyArMjEy MiwxMCBAQCBzdGF0aWMgYm9vbCBjaGlsZF9kZXZfaXNfZHBfZHVhbF9tb2RlKGNvbnN0IHN0cnVj dCBjaGlsZF9kZXZpY2VfY29uZmlnICpjaGlsZCwKPiAgYm9vbCBpbnRlbF9iaW9zX2lzX3BvcnRf ZHBfZHVhbF9tb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSAg ICAgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAtCWNvbnN0IHN0cnVjdCBjaGlsZF9kZXZpY2VfY29u ZmlnICpjaGlsZDsKPiAtCWludCBpOwo+ICsJY29uc3Qgc3RydWN0IGRpc3BsYXlfZGV2aWNlX2Rh dGEgKmRldmRhdGE7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT52YnQuY2hpbGRf ZGV2X251bTsgaSsrKSB7Cj4gLQkJY2hpbGQgPSBkZXZfcHJpdi0+dmJ0LmNoaWxkX2RldiArIGk7 Cj4gLQo+IC0JCWlmIChjaGlsZF9kZXZfaXNfZHBfZHVhbF9tb2RlKGNoaWxkLCBwb3J0KSkKPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52YnQuZGlzcGxheV9kZXZp Y2VzLCBub2RlKSB7Cj4gKwkJaWYgKGNoaWxkX2Rldl9pc19kcF9kdWFsX21vZGUoJmRldmRhdGEt PmNoaWxkLCBwb3J0KSkKPiAgCQkJcmV0dXJuIHRydWU7Cj4gIAl9Cj4gIAo+IEBAIC0yMTUxLDEy ICsyMTQyLDEyIEBAIGJvb2wgaW50ZWxfYmlvc19pc19wb3J0X2RwX2R1YWxfbW9kZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIGJvb2wgaW50ZWxfYmlvc19pc19kc2lfcHJl c2VudChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgICBlbnVt IHBvcnQgKnBvcnQpCj4gIHsKPiArCWNvbnN0IHN0cnVjdCBkaXNwbGF5X2RldmljZV9kYXRhICpk ZXZkYXRhOwo+ICAJY29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkOwo+ICAJ dTggZHZvX3BvcnQ7Cj4gLQlpbnQgaTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYt PnZidC5jaGlsZF9kZXZfbnVtOyBpKyspIHsKPiAtCQljaGlsZCA9IGRldl9wcml2LT52YnQuY2hp bGRfZGV2ICsgaTsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2ZGF0YSwgJmRldl9wcml2LT52 YnQuZGlzcGxheV9kZXZpY2VzLCBub2RlKSB7Cj4gKwkJY2hpbGQgPSAmZGV2ZGF0YS0+Y2hpbGQ7 Cj4gIAo+ICAJCWlmICghKGNoaWxkLT5kZXZpY2VfdHlwZSAmIERFVklDRV9UWVBFX01JUElfT1VU UFVUKSkKPiAgCQkJY29udGludWU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNjdi ZGZlNmRlM2ZhLi4yYzA2NzRhODZkZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBA QCAtNzIwLDggKzcyMCw3IEBAIHN0cnVjdCBpbnRlbF92YnRfZGF0YSB7Cj4gIAo+ICAJaW50IGNy dF9kZGNfcGluOwo+ICAKPiAtCWludCBjaGlsZF9kZXZfbnVtOwo+IC0Jc3RydWN0IGNoaWxkX2Rl dmljZV9jb25maWcgKmNoaWxkX2RldjsKPiArCXN0cnVjdCBsaXN0X2hlYWQgZGlzcGxheV9kZXZp Y2VzOwo+ICAKPiAgCXN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyBkZGlfcG9ydF9pbmZvW0k5MTVf TUFYX1BPUlRTXTsKPiAgCXN0cnVjdCBzZHZvX2RldmljZV9tYXBwaW5nIHNkdm9fbWFwcGluZ3Nb Ml07Cj4gLS0gCj4gMi4yMC4xCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==