From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: Re: [PATCH 01/28] drm/i915: Add modular FIA Date: Wed, 26 Jun 2019 10:48:01 -0700 Message-ID: <20190626174801.pbm3ltestrd6l7tv@ldmartin-desk1> References: <20190625175437.14840-1-lucas.demarchi@intel.com> <20190625175437.14840-2-lucas.demarchi@intel.com> <20190626155014.GT5942@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 387FF6E4AD for ; Wed, 26 Jun 2019 17:48:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190626155014.GT5942@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 T24gV2VkLCBKdW4gMjYsIDIwMTkgYXQgMDY6NTA6MTRQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+T24gVHVlLCBKdW4gMjUsIDIwMTkgYXQgMTA6NTQ6MTBBTSAtMDcwMCwgTHVjYXMg RGUgTWFyY2hpIHdyb3RlOgo+PiBGcm9tOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRz YUBpbnRlbC5jb20+Cj4+Cj4+IFNvbWUgcGxhdGZvcm1zIG1heSBoYXZlIE1vZHVsYXIgRklBLiBJ ZiBNb2R1bGFyIEZJQSBpcyB1c2VkIGluIHRoZSBTT0MsCj4+IHRoZW4gRGlzcGxheSBEcml2ZXIg d2lsbCBhY2Nlc3MgdGhlIGFkZGl0aW9uYWwgaW5zdGFuY2VzIG9mCj4+IEZJQSBiYXNlZCBvbiBw cmUtYXNzaWduZWQgb2Zmc2V0IGluIEdUVE1BRERSIHNwYWNlLgo+Pgo+PiBFYWNoIE1vZHVsYXIg RklBIGluc3RhbmNlIGhhcyBpdHMgb3duIElPU0YgU2lkZWJhbmQgUG9ydCBJRAo+PiBhbmQgaXQg aG91c2VzIG9ubHkgMiBUeXBlLUMgUG9ydC4gSW4gU09DIHRoYXQgaGFzIG1vcmUgdGhhbgo+PiB0 d28gVHlwZS1DIFBvcnRzLCB0aGVyZSBhcmUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIE1vZHVsYXIg RklBLgo+PiBHdW5pdCB3aWxsIG5lZWQgdG8gdXNlIGRpZmZlcmVudCBkZXN0aW5hdGlvbiBJRCB3 aGVuIGl0IGFjY2Vzcwo+PiBkaWZmZXJlbnQgcGFpciBvZiBUeXBlLUMgUG9ydC4KPj4KPj4gVGhl IERGTEVYRFBTUCByZWdpc3RlciBoYXMgTW9kdWxhciBGSUEgYml0LiBJZiBNb2R1bGFyIEZJQSBp cwo+PiB1c2VkIGluIHRoZSBTT0MsIHRoaXMgcmVnaXN0ZXIgYml0IGV4aXN0cyBpbiBhbGwgdGhl IGluc3RhbmNlcyBvZgo+PiBNb2R1bGFyIEZJQS4gSU9NIEZXIGlzIHJlcXVpcmVkIHRvIHByb2dy YW0gb25seSB0aGUgTUYgYml0IGluCj4+IGZpcnN0IEZJQSBpbnN0YW5jZSB0aGF0IGhvdXNlcyB0 aGUgVHlwZS1DIFBvcnQgMCBhbmQgUG9ydCAxLCBmb3IKPj4gRGlzcGxheSBEcml2ZXIgdG8gcmVh ZCBmcm9tLgo+Pgo+PiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4g U2lnbmVkLW9mZi1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29t Pgo+PiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVs LmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5j ICAgICB8ICA5ICsrKystLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jIHwgMjcgKysrKysrKysrKysrKysrKysrKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oIHwgIDYgKysrKysKPj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAgICAgIHwgMjUgKysrKysrKysrKysrLS0tLS0tCj4+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICB8IDEzICsrKysr KystLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggICAgIHwg IDEgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgICAgfCAg MiArKwo+PiAgNyBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMo LSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4+IGluZGV4 IDc5MjVhMTc2ZjkwMC4uYjcxNzU2MmZjY2U1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPj4gQEAgLTI5OTcsNiArMjk5Nyw3IEBAIHN0YXRpYyB2b2lk IGljbF9wcm9ncmFtX21nX2RwX21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQpCj4+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0 Owo+PiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwg cG9ydCk7Cj4+ICAJdTMyIGxuMCwgbG4xLCBsYW5lX2luZm87Cj4+ICsJZW51bSBkaXNwbGF5X2Zp YSBmaWE7Cj4KPkNhbiB3ZSBzdGljayB0aGlzIGludG8gdGhlIG5ldyBlbnVtIHBoeSBuYW1lc3Bh Y2Ugd2UncmUgZ29pbmcgdG8gbmVlZAo+YW55d2F5IGZvciBlaGw/CgplYWNoIG1vZHVsYXIgRklB IG1hcHMgdXAgdG8gMiBwaHlzIChhcyBvcHBvc2VkIHRvIElDTCdzIEZJQSB0aGF0IGhhcyA0CnBo eXMpLiBJIGRvbid0IHRoaW5rIGl0IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBlbnVtIG5hbWVzcGFj ZS4KClllcywgd2l0aCBwYXRjaAoiZHJtL2k5MTUvZ2VuMTE6IFN0YXJ0IGRpc3Rpbmd1aXNoaW5n ICdwaHknIGZyb20gJ3BvcnQnIiBtZXJnZWQgd2UKc2hvdWxkIHJhdGhlciBkbyB0aGUgcGh5IC0+ IGZpYSBtYXBwaW5nIGhlcmUgYW5kIGl0IGNvdWxkIGJlIGFzIHNpbXBsZQphcyBgcGh5IC8gMmAu CgpJIHdvdWxkIHJhdGhlciBtZXJnZSB0aGlzIGFzIGlzIGFuZCBjb252ZXJ0IGl0IHdoZW4gdGhh dCBwYXRjaCBpcwphcHBsaWVkLiBBbHNvLCB0aGF0IHNlcmllcyBpcyBzdGlsbCBtaXNzaW5nIHRo ZSBjb252ZXJzaW9uIGZvciBUQyBzaW5jZQpFSEwgaGFzIG9ubHkgY29tYm8gcGh5cy4gVGhpcyBv bmUgaXMgYWJvdXQgVEMuCgpPbmNlIHRoYXQgc2VyaWVzIGlzIG1lcmdlZCBhbmQgYWxzbyB0aGUg cGVuZGluZyBvbmUgZnJvbSBJbXJlIHRvCnNlcGFyYXRlIHRoZSBUQyBoYW5kbGluZywgSSBjYW4g cmV3b3JrIHRoaXMuCgoKTHVjYXMgRGUgTWFyY2hpCgo+Cj4+Cj4+ICAJaWYgKHRjX3BvcnQgPT0g UE9SVF9UQ19OT05FIHx8IGludGVsX2RpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVEJUKQo+ PiAgCQlyZXR1cm47Cj4+IEBAIC0zMDA5LDcgKzMwMTAsOCBAQCBzdGF0aWMgdm9pZCBpY2xfcHJv Z3JhbV9tZ19kcF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 KQo+PiAgCQlsbjAgJj0gfihNR19EUF9NT0RFX0NGR19EUF9YMV9NT0RFIHwgTUdfRFBfTU9ERV9D RkdfRFBfWDJfTU9ERSk7Cj4+ICAJCWxuMSAmPSB+KE1HX0RQX01PREVfQ0ZHX0RQX1gxX01PREUg fCBNR19EUF9NT0RFX0NGR19EUF9YMl9NT0RFKTsKPj4KPj4gLQkJbGFuZV9pbmZvID0gKEk5MTVf UkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJgo+PiArCQlmaWEgPSBpbnRlbF90Y19wb3J0X3RvX2Zp YShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4+ICsJCWxhbmVfaW5mbyA9IChJOTE1X1JFQUQoUE9SVF9U WF9ERkxFWERQU1AoZmlhKSkgJgo+PiAgCQkJICAgICBEUF9MQU5FX0FTU0lHTk1FTlRfTUFTSyh0 Y19wb3J0KSkgPj4KPj4gIAkJCSAgICBEUF9MQU5FX0FTU0lHTk1FTlRfU0hJRlQodGNfcG9ydCk7 Cj4+Cj4+IEBAIC0zNTk4LDcgKzM2MDAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfc2V0X2Zp YV9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ PiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KCZlbmNvZGVyLT5iYXNlKTsKPj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRf dG9fdGMoZGV2X3ByaXYsIHBvcnQpOwo+PiAtCXUzMiB2YWwgPSBJOTE1X1JFQUQoUE9SVF9UWF9E RkxFWERQTUxFMSk7Cj4+ICsJZW51bSBkaXNwbGF5X2ZpYSBmaWEgPSBpbnRlbF90Y19wb3J0X3Rv X2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4+ICsJdTMyIHZhbCA9IEk5MTVfUkVBRChQT1JUX1RY X0RGTEVYRFBNTEUxKGZpYSkpOwo+PiAgCWJvb2wgbGFuZV9yZXZlcnNhbCA9IGRpZ19wb3J0LT5z YXZlZF9wb3J0X2JpdHMgJiBERElfQlVGX1BPUlRfUkVWRVJTQUw7Cj4+Cj4+ICAJdmFsICY9IH5E RkxFWERQTUxFMV9EUE1MRVRDX01BU0sodGNfcG9ydCk7Cj4+IEBAIC0zNjE3LDcgKzM2MjAsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfc2V0X2ZpYV9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+PiAgCWRlZmF1bHQ6Cj4+ICAJCU1JU1NJTkdfQ0FTRShwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCk7Cj4+ICAJfQo+PiAtCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQ TUxFMSwgdmFsKTsKPj4gKwlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUE1MRTEoZmlhKSwgdmFs KTsKPj4gIH0KPj4KPj4gIHN0YXRpYyB2b2lkCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IDg1OTJhN2Q0MjJkZS4uNjIxN2I1YmNlYTJh IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku Ywo+PiBAQCAtNjU5MCw2ICs2NTkwLDMzIEBAIGVudW0gdGNfcG9ydCBpbnRlbF9wb3J0X3RvX3Rj KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4+ICAJ cmV0dXJuIHBvcnQgLSBQT1JUX0M7Cj4+ICB9Cj4+Cj4+ICtzdGF0aWMgYm9vbCBpbnRlbF9oYXNf bW9kdWxhcl9maWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiArewo+PiAr CWlmICghSU5URUxfSU5GTyhkZXZfcHJpdiktPmRpc3BsYXkuaGFzX21vZHVsYXJfZmlhKQo+PiAr CQlyZXR1cm4gZmFsc2U7Cj4+ICsKPj4gKwlyZXR1cm4gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhE UFNQKEZJQV8xKSkgJiBNT0RVTEFSX0ZJQV9NQVNLOwo+PiArfQo+PiArCj4+ICtlbnVtIGRpc3Bs YXlfZmlhIGludGVsX3RjX3BvcnRfdG9fZmlhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPj4gKwkJCQkgICAgICBlbnVtIHRjX3BvcnQgdGNfcG9ydCkKPj4gK3sKPj4gKwlpZiAo IWludGVsX2hhc19tb2R1bGFyX2ZpYShkZXZfcHJpdikpCj4+ICsJCXJldHVybiBGSUFfMTsKPj4g Kwo+PiArCXN3aXRjaCAodGNfcG9ydCkgewo+PiArCWNhc2UgUE9SVF9UQzE6Cj4+ICsJY2FzZSBQ T1JUX1RDMjoKPj4gKwkJcmV0dXJuIEZJQV8xOwo+PiArCWNhc2UgUE9SVF9UQzM6Cj4+ICsJY2Fz ZSBQT1JUX1RDNDoKPj4gKwkJcmV0dXJuIEZJQV8yOwo+PiArCWRlZmF1bHQ6Cj4+ICsJCVdBUk5f T04odGNfcG9ydCk7Cj4+ICsJCXJldHVybiBGSUFfMTsKPj4gKwl9Cj4+ICt9Cj4+ICsKPj4gIGVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4o ZW51bSBwb3J0IHBvcnQpCj4+ICB7Cj4+ICAJc3dpdGNoIChwb3J0KSB7Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCj4+IGluZGV4IGVlNmI4MTk0YTQ1 OS4uMTJkZWQwMWVkNWQzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuaAo+PiBAQCAtMTk2LDYgKzE5NiwxMiBAQCBlbnVtIHRjX3BvcnRfdHlw ZSB7Cj4+ICAJVENfUE9SVF9MRUdBQ1ksCj4+ICB9Owo+Pgo+PiArZW51bSBkaXNwbGF5X2ZpYSB7 Cj4+ICsJRklBXzEgPSAwLAo+PiArCUZJQV8yLAo+PiArCUZJQV8zLAo+PiArfTsKPj4gKwo+PiAg ZW51bSBkcGlvX2NoYW5uZWwgewo+PiAgCURQSU9fQ0gwLAo+PiAgCURQSU9fQ0gxCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPj4gaW5kZXggNDMzNmRmNDZmZTc4Li41 ZWQ2ZTQ5ZmVmMzMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw LmMKPj4gQEAgLTIxOCwxMyArMjE4LDE1IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfZ2V0X2ZpYV9z dXBwb3J0ZWRfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiAgCWVudW0g dGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJh c2UucG9ydCk7Cj4+ICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4+ICAJdTMyIGxhbmVfaW5m bzsKPj4gKwllbnVtIGRpc3BsYXlfZmlhIGZpYTsKPj4KPj4gIAlpZiAodGNfcG9ydCA9PSBQT1JU X1RDX05PTkUgfHwgZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9UWVBFQykKPj4gIAkJcmV0 dXJuIDQ7Cj4+Cj4+ICsJZmlhICA9IGludGVsX3RjX3BvcnRfdG9fZmlhKGRldl9wcml2LCB0Y19w b3J0KTsKPj4gIAlsYW5lX2luZm8gPSAwOwo+PiAgCXdpdGhfaW50ZWxfZGlzcGxheV9wb3dlcihk ZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwgd2FrZXJlZikKPj4gLQkJbGFuZV9p bmZvID0gKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJgo+PiArCQlsYW5lX2luZm8gPSAo STkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKGZpYSkpICYKPj4gIAkJCSAgICAgRFBfTEFORV9B U1NJR05NRU5UX01BU0sodGNfcG9ydCkpID4+Cj4+ICAJCQkJRFBfTEFORV9BU1NJR05NRU5UX1NI SUZUKHRjX3BvcnQpOwo+Pgo+PiBAQCAtNTMwMCwxMiArNTMwMiwxNCBAQCBzdGF0aWMgYm9vbCBp Y2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAg ewo+PiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwg ZGlnX3BvcnQtPmJhc2UucG9ydCk7Cj4+ICAJdTMyIHZhbDsKPj4gKwllbnVtIGRpc3BsYXlfZmlh IGZpYTsKPj4KPj4gIAlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9MRUdBQ1kgJiYK Pj4gIAkgICAgZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9UWVBFQykKPj4gIAkJcmV0dXJu IHRydWU7Cj4+Cj4+IC0JdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Cj4+ICsJ ZmlhID0gaW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYsIHRjX3BvcnQpOwo+PiArCXZhbCA9 IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBQTVMoZmlhKSk7Cj4+ICAJaWYgKCEodmFsICYgRFBf UEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KSkpIHsKPj4gIAkJRFJNX0RFQlVHX0tN UygiRFAgUEhZIGZvciBUQyBwb3J0ICVkIG5vdCByZWFkeVxuIiwgdGNfcG9ydCk7Cj4+ICAJCVdB Uk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKPj4gQEAgLTUzMTYsMTAgKzUzMjAsMTAg QEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPj4gIAkgKiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgbWFueSB0aW1l cyBpbiBhIHJvdyB3aXRob3V0IGFuIEhQRCBldmVudAo+PiAgCSAqIGluIGJldHdlZW4sIHNvIHRy eSB0byBhdm9pZCB0aGUgd3JpdGUgd2hlbiB3ZSBjYW4uCj4+ICAJICovCj4+IC0JdmFsID0gSTkx NV9SRUFEKFBPUlRfVFhfREZMRVhEUENTU1MpOwo+PiArCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RY X0RGTEVYRFBDU1NTKGZpYSkpOwo+PiAgCWlmICghKHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19O T1RfU0FGRSh0Y19wb3J0KSkpIHsKPj4gIAkJdmFsIHw9IERQX1BIWV9NT0RFX1NUQVRVU19OT1Rf U0FGRSh0Y19wb3J0KTsKPj4gLQkJSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBDU1NTLCB2YWwp Owo+PiArCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MoZmlhKSwgdmFsKTsKPj4gIAl9 Cj4+Cj4+ICAJLyoKPj4gQEAgLTUzMjcsNyArNTMzMSw3IEBAIHN0YXRpYyBib29sIGljbF90Y19w aHlfY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJICogYmVj YW1lIGRpc2Nvbm5lY3RlZC4gTm90IG5lY2Vzc2FyeSBmb3IgbGVnYWN5IG1vZGUuCj4+ICAJICov Cj4+ICAJaWYgKGRpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVFlQRUMgJiYKPj4gLQkgICAg IShJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1ApICYgVENfTElWRV9TVEFURV9UQyh0Y19wb3J0 KSkpIHsKPj4gKwkgICAgIShJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1AoZmlhKSkgJiBUQ19M SVZFX1NUQVRFX1RDKHRjX3BvcnQpKSkgewo+PiAgCQlEUk1fREVCVUdfS01TKCJUQyBQSFkgJWQg c3VkZGVuIGRpc2Nvbm5lY3QuXG4iLCB0Y19wb3J0KTsKPj4gIAkJaWNsX3RjX3BoeV9kaXNjb25u ZWN0KGRldl9wcml2LCBkaWdfcG9ydCk7Cj4+ICAJCXJldHVybiBmYWxzZTsKPj4gQEAgLTUzNDQs MTAgKzUzNDgsMTMgQEAgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQpCj4+ICB7Cj4+ICAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3Rv X3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKPj4gKwllbnVtIGRpc3BsYXlfZmlh IGZpYTsKPj4KPj4gIAlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9SVF9VTktOT1dOKQo+ PiAgCQlyZXR1cm47Cj4+Cj4+ICsJZmlhID0gaW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYs IHRjX3BvcnQpOwo+PiArCj4+ICAJLyoKPj4gIAkgKiBUQlQgZGlzY29ubmVjdGlvbiBmbG93IGlz IHJlYWQgdGhlIGxpdmUgc3RhdHVzLCB3aGF0IHdhcyBkb25lIGluCj4+ICAJICogY2FsbGVyLgo+ PiBAQCAtNTM1Niw5ICs1MzYzLDkgQEAgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCSAgICBkaWdfcG9ydC0+dGNfdHlwZSA9 PSBUQ19QT1JUX0xFR0FDWSkgewo+PiAgCQl1MzIgdmFsOwo+Pgo+PiAtCQl2YWwgPSBJOTE1X1JF QUQoUE9SVF9UWF9ERkxFWERQQ1NTUyk7Cj4+ICsJCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RG TEVYRFBDU1NTKGZpYSkpOwo+PiAgCQl2YWwgJj0gfkRQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FG RSh0Y19wb3J0KTsKPj4gLQkJSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBDU1NTLCB2YWwpOwo+ PiArCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MoZmlhKSwgdmFsKTsKPj4gIAl9Cj4+ Cj4+ICAJRFJNX0RFQlVHX0tNUygiUG9ydCAlYyBUQyB0eXBlICVzIGRpc2Nvbm5lY3RlZFxuIiwK Pj4gQEAgLTUzODMsNiArNTM5MCw3IEBAIHN0YXRpYyBib29sIGljbF90Y19wb3J0X2Nvbm5lY3Rl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICB7Cj4+ICAJZW51bSBwb3J0 IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0Owo+PiAgCWVudW0gdGNfcG9ydCB0Y19w b3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgcG9ydCk7Cj4+ICsJZW51bSBkaXNwbGF5 X2ZpYSBmaWEgPSBpbnRlbF90Y19wb3J0X3RvX2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4+ICAJ Ym9vbCBpc19sZWdhY3ksIGlzX3R5cGVjLCBpc190YnQ7Cj4+ICAJdTMyIGRwc3A7Cj4+Cj4+IEBA IC01NDAyLDcgKzU0MTAsOCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCSAqIFRoZSBzcGVjIHNheXMgd2Ug c2hvdWxkbid0IGJlIHVzaW5nIHRoZSBJU1IgYml0cyBmb3IgZGV0ZWN0aW5nCj4+ICAJICogYmV0 d2VlbiBUQyBhbmQgVEJULiBXZSBzaG91bGQgdXNlIERGTEVYRFBTUC4KPj4gIAkgKi8KPj4gLQlk cHNwID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKTsKPj4gKwo+PiArCWRwc3AgPSBJOTE1 X1JFQUQoUE9SVF9UWF9ERkxFWERQU1AoZmlhKSk7Cj4+ICAJaXNfdHlwZWMgPSBkcHNwICYgVENf TElWRV9TVEFURV9UQyh0Y19wb3J0KTsKPj4gIAlpc190YnQgPSBkcHNwICYgVENfTElWRV9TVEFU RV9UQlQodGNfcG9ydCk7Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBpbmRleCA3ZTYw MDljZWZiMTguLjgwNDdmMWJlZDMxNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ IEBAIC0yMjAxLDkgKzIyMDEsMTMgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewo+PiAgI2Rl ZmluZSAgIERXNl9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyOCkKPj4KPj4gICNkZWZpbmUg RklBMV9CQVNFCQkJMHgxNjMwMDAKPj4gKyNkZWZpbmUgRklBMl9CQVNFCQkJMHgxNkUwMDAKPj4g KyNkZWZpbmUgRklBM19CQVNFCQkJMHgxNkYwMDAKPj4gKyNkZWZpbmUgX0ZJQShmaWEpCQkJX1BJ Q0soKGZpYSksIEZJQTFfQkFTRSwgRklBMl9CQVNFLCBGSUEzX0JBU0UpCj4+ICsjZGVmaW5lIF9N TUlPX0ZJQShmaWEsIG9mZikJCV9NTUlPKF9GSUEoZmlhKSArIChvZmYpKQo+Pgo+PiAgLyogSUNM IFBIWSBERkxFWCByZWdpc3RlcnMgKi8KPj4gLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQTUxFMQkJ X01NSU8oRklBMV9CQVNFICsgMHgwMDhDMCkKPj4gKyNkZWZpbmUgUE9SVF9UWF9ERkxFWERQTUxF MShmaWEpCV9NTUlPX0ZJQSgoZmlhKSwgIDB4MDA4QzApCj4+ICAjZGVmaW5lICAgREZMRVhEUE1M RTFfRFBNTEVUQ19NQVNLKHRjX3BvcnQpCSgweGYgPDwgKDQgKiAodGNfcG9ydCkpKQo+PiAgI2Rl ZmluZSAgIERGTEVYRFBNTEUxX0RQTUxFVENfTUwwKHRjX3BvcnQpCSgxIDw8ICg0ICogKHRjX3Bv cnQpKSkKPj4gICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1MRVRDX01MMV8wKHRjX3BvcnQpCSgz IDw8ICg0ICogKHRjX3BvcnQpKSkKPj4gQEAgLTExNDYxLDE3ICsxMTQ2NSwxOCBAQCBlbnVtIHNr bF9wb3dlcl9nYXRlIHsKPj4gIAkJCQkJCV9JQ0xfRFNDMV9SQ19CVUZfVEhSRVNIXzFfVURXX1BC LCBcCj4+ICAJCQkJCQlfSUNMX0RTQzFfUkNfQlVGX1RIUkVTSF8xX1VEV19QQykKPj4KPj4gLSNk ZWZpbmUgUE9SVF9UWF9ERkxFWERQU1AJCQlfTU1JTyhGSUExX0JBU0UgKyAweDAwOEEwKQo+PiAr I2RlZmluZSBQT1JUX1RYX0RGTEVYRFBTUChmaWEpCQkJX01NSU9fRklBKChmaWEpLCAweDAwOEEw KQo+PiArI2RlZmluZSAgIE1PRFVMQVJfRklBX01BU0sJCQkoMSA8PCA0KQo+PiAgI2RlZmluZSAg IFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpCQkoMSA8PCAoKHRjX3BvcnQpICogOCArIDYpKQo+ PiAgI2RlZmluZSAgIFRDX0xJVkVfU1RBVEVfVEModGNfcG9ydCkJCSgxIDw8ICgodGNfcG9ydCkg KiA4ICsgNSkpCj4+ICAjZGVmaW5lICAgRFBfTEFORV9BU1NJR05NRU5UX1NISUZUKHRjX3BvcnQp CSgodGNfcG9ydCkgKiA4KQo+PiAgI2RlZmluZSAgIERQX0xBTkVfQVNTSUdOTUVOVF9NQVNLKHRj X3BvcnQpCSgweGYgPDwgKCh0Y19wb3J0KSAqIDgpKQo+PiAgI2RlZmluZSAgIERQX0xBTkVfQVNT SUdOTUVOVCh0Y19wb3J0LCB4KQkoKHgpIDw8ICgodGNfcG9ydCkgKiA4KSkKPj4KPj4gLSNkZWZp bmUgUE9SVF9UWF9ERkxFWERQUE1TCQkJCV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4OTApCj4+ICsj ZGVmaW5lIFBPUlRfVFhfREZMRVhEUFBNUyhmaWEpCQkJX01NSU9fRklBKChmaWEpLCAweDAwODkw KQo+PiAgI2RlZmluZSAgIERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQodGNfcG9ydCkJCSgx IDw8ICh0Y19wb3J0KSkKPj4KPj4gLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQQ1NTUwkJCV9NTUlP KEZJQTFfQkFTRSArIDB4MDA4OTQpCj4+ICsjZGVmaW5lIFBPUlRfVFhfREZMRVhEUENTU1MoZmlh KQkJX01NSU9fRklBKChmaWEpLCAweDAwODk0KQo+PiAgI2RlZmluZSAgIERQX1BIWV9NT0RFX1NU QVRVU19OT1RfU0FGRSh0Y19wb3J0KQkJKDEgPDwgKHRjX3BvcnQpKQo+Pgo+PiAgI2VuZGlmIC8q IF9JOTE1X1JFR19IXyAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZv LmgKPj4gaW5kZXggZGRhZmM4MTliZjMwLi5lOWRjODZlZDUxN2IgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+PiBAQCAtMTM2LDYgKzEzNiw3IEBAIGVu dW0gaW50ZWxfcHBndHRfdHlwZSB7Cj4+ICAJZnVuYyhoYXNfZ21jaCk7IFwKPj4gIAlmdW5jKGhh c19ob3RwbHVnKTsgXAo+PiAgCWZ1bmMoaGFzX2lwYyk7IFwKPj4gKwlmdW5jKGhhc19tb2R1bGFy X2ZpYSk7IFwKPj4gIAlmdW5jKGhhc19vdmVybGF5KTsgXAo+PiAgCWZ1bmMoaGFzX3Bzcik7IFwK Pj4gIAlmdW5jKG92ZXJsYXlfbmVlZHNfcGh5c2ljYWwpOyBcCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4+IGluZGV4IDFkNThmN2VjNWQ4NC4uZTMwY2I0YmU0OTk3IDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtMTQ3Nyw2ICsxNDc3LDggQEAgYm9vbCBpbnRlbF9w b3J0X2lzX2NvbWJvcGh5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBw b3J0IHBvcnQpOwo+PiAgYm9vbCBpbnRlbF9wb3J0X2lzX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+PiAgZW51bSB0Y19wb3J0IGludGVsX3Bv cnRfdG9fdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCQkJICAgICAg ZW51bSBwb3J0IHBvcnQpOwo+PiArZW51bSBkaXNwbGF5X2ZpYSBpbnRlbF90Y19wb3J0X3RvX2Zp YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICsJCQkJICAgICAgZW51bSB0 Y19wb3J0IHRjX3BvcnQpOwo+PiAgaW50IGludGVsX2dldF9waXBlX2Zyb21fY3J0Y19pZF9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+PiAgCQkJCSAgICAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPj4gIGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3Rv X2NwdV90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gLS0K Pj4gMi4yMS4wCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo+Cj4tLSAKPlZpbGxlIFN5cmrDpGzDpAo+SW50ZWwKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4