From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 1/1] drm/i915: Add modular FIA Date: Fri, 12 Jul 2019 15:55:01 +0300 Message-ID: <20190712125501.GJ5942@intel.com> References: <20190711205827.12849-1-lucas.demarchi@intel.com> <20190711205827.12849-2-lucas.demarchi@intel.com> <8508f5d2ebc23b5a6a67af51bd9aa9f7cc8cb976.camel@intel.com> <20190711234907.pflpxssq26c6rymd@ldmartin-desk1> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C58589D7C for ; Fri, 12 Jul 2019 12:55:05 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190711234907.pflpxssq26c6rymd@ldmartin-desk1> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMTEsIDIwMTkgYXQgMDQ6NDk6MDdQTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIFRodSwgSnVsIDExLCAyMDE5IGF0IDA0OjE1OjQyUE0gLTA3MDAsIFN1bW1l cnMsIFN0dWFydCB3cm90ZToKPiA+T24gVGh1LCAyMDE5LTA3LTExIGF0IDEzOjU4IC0wNzAwLCBM dWNhcyBEZSBNYXJjaGkgd3JvdGU6Cj4gPj4gRnJvbTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEu c3JpdmF0c2FAaW50ZWwuY29tPgo+ID4+Cj4gPj4gU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgTW9k dWxhciBGSUEuIElmIE1vZHVsYXIgRklBIGlzIHVzZWQgaW4gdGhlCj4gPj4gU09DLAo+ID4+IHRo ZW4gRGlzcGxheSBEcml2ZXIgd2lsbCBhY2Nlc3MgdGhlIGFkZGl0aW9uYWwgaW5zdGFuY2VzIG9m Cj4gPj4gRklBIGJhc2VkIG9uIHByZS1hc3NpZ25lZCBvZmZzZXQgaW4gR1RUTUFERFIgc3BhY2Uu Cj4gPj4KPiA+PiBFYWNoIE1vZHVsYXIgRklBIGluc3RhbmNlIGhhcyBpdHMgb3duIElPU0YgU2lk ZWJhbmQgUG9ydCBJRAo+ID4+IGFuZCBpdCBob3VzZXMgb25seSAyIFR5cGUtQyBQb3J0LiBJbiBT T0MgdGhhdCBoYXMgbW9yZSB0aGFuCj4gPj4gdHdvIFR5cGUtQyBQb3J0cywgdGhlcmUgYXJlIG11 bHRpcGxlIGluc3RhbmNlcyBvZiBNb2R1bGFyIEZJQS4KPiA+PiBHdW5pdCB3aWxsIG5lZWQgdG8g dXNlIGRpZmZlcmVudCBkZXN0aW5hdGlvbiBJRCB3aGVuIGl0IGFjY2Vzcwo+ID4+IGRpZmZlcmVu dCBwYWlyIG9mIFR5cGUtQyBQb3J0Lgo+ID4+Cj4gPj4gVGhlIERGTEVYRFBTUCByZWdpc3RlciBo YXMgTW9kdWxhciBGSUEgYml0IHN0YXJ0aW5nIG9uIFRpZ2VyCj4gPj4gTGFrZS4gIElmCj4gPj4g TW9kdWxhciBGSUEgaXMgdXNlZCBpbiB0aGUgU09DLCB0aGlzIHJlZ2lzdGVyIGJpdCBleGlzdHMg aW4gYWxsIHRoZQo+ID4+IGluc3RhbmNlcyBvZiBNb2R1bGFyIEZJQS4gSU9NIEZXIGlzIHJlcXVp cmVkIHRvIHByb2dyYW0gb25seSB0aGUgTUYKPiA+PiBiaXQKPiA+PiBpbiBmaXJzdCBGSUEgaW5z dGFuY2UgdGhhdCBob3VzZXMgdGhlIFR5cGUtQyBQb3J0IDAgYW5kIFBvcnQgMSwgZm9yCj4gPj4g RGlzcGxheSBEcml2ZXIgdG8gcmVhZCBmcm9tLgo+ID4+Cj4gPj4gdjIgKEx1Y2FzKToKPiA+PiAg IC0gTW92ZSBhbGwgYWNjZXNzZXMgdG8gRklBIHRvIGJlIGNvbnRhaW5lZCBpbiBpbnRlbF90Yy5j LCBhbG9uZwo+ID4+IHdpdGgKPiA+PiAgICAgZGlzcGxheV9maWEgdGhhdCBpcyBub3cgY2FsbGVk IHRjX3BoeV9maWEKPiA+PiAgIC0gU2F2ZSB0aGUgZmlhIGluc3RhbmNlIG51bWJlciBvbiBpbnRl bF9kaWdpdGFsX3BvcnQsIHNvIHdlIGRvbid0Cj4gPj4gaGF2ZQo+ID4+ICAgICB0byBxdWVyeSBp ZiBtb2R1bGFyIEZJQSBpcyB1c2VkIG9uIGV2ZXJ5IGFjY2Vzcwo+ID4+IHYzIChMdWNhcyk6IE1h a2UgZnVuY3Rpb24gc3RhdGljCj4gPj4gdjQgKEx1Y2FzKTogTW92ZSBlbnVtIHBoeV9maWEgdG8g dGhlIGhlYWRlciBhbmQgdXNlIGl0IGluCj4gPj4gICAgaW50ZWxfZGlnaXRhbF9wb3J0IChzdWdn ZXN0ZWQgYnkgVmlsbGUpCj4gPj4KPiA+PiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2 YXRzYUBpbnRlbC5jb20+Cj4gPj4gU2lnbmVkLW9mZi1ieTogTHVjYXMgRGUgTWFyY2hpIDxsdWNh cy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4gPj4gQWNrZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oIHwgIDYgKysrCj4gPj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYyAgICAgIHwgNDMgKysrKysrKysrKysrKysrKwo+ ID4+IC0tLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAg ICAgfCAxMyArKysrLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2lu Zm8uaCAgICAgfCAgMSArCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg ICAgICAgICAgIHwgIDEgKwo+ID4+ICA1IGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyks IDEyIGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCj4gPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuaAo+ID4+IGluZGV4IDhhNGE1N2VmODJhMi4uOGIwNDg5NzZm N2I0IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmgKPiA+PiBAQCAtMjQzLDYgKzI0MywxMiBAQCBlbnVtIHBoeSB7Cj4gPj4KPiA+PiAg I2RlZmluZSBwaHlfbmFtZShhKSAoKGEpICsgJ0EnKQo+ID4+Cj4gPj4gK2VudW0gcGh5X2ZpYSB7 Cj4gPj4gKwlGSUExLAo+ID4+ICsJRklBMiwKPiA+PiArCUZJQTMsCj4gPj4gK307Cj4gPj4gKwo+ ID4+ICAjZGVmaW5lIGZvcl9lYWNoX3BpcGUoX19kZXZfcHJpdiwgX19wKSBcCj4gPj4gIAlmb3Ig KChfX3ApID0gMDsgKF9fcCkgPCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fcGlwZXM7Cj4g Pj4gKF9fcCkrKykKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3RjLmMKPiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfdGMuYwo+ID4+IGluZGV4IGY0NGVlNGJmZTdjOC4uOTQwMGRhNGY3OTE2IDEwMDY0NAo+ID4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYwo+ID4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYwo+ID4+IEBAIC0yMiw2ICsy MiwyNCBAQCBzdGF0aWMgY29uc3QgY2hhciAqdGNfcG9ydF9tb2RlX25hbWUoZW51bQo+ID4+IHRj X3BvcnRfbW9kZSBtb2RlKQo+ID4+ICAJcmV0dXJuIG5hbWVzW21vZGVdOwo+ID4+ICB9Cj4gPj4K PiA+PiArc3RhdGljIGJvb2wgaGFzX21vZHVsYXJfZmlhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQo+ID4+ICt7Cj4gPj4gKwlpZiAoIUlOVEVMX0lORk8oaTkxNSktPmRpc3BsYXkuaGFz X21vZHVsYXJfZmlhKQo+ID4+ICsJCXJldHVybiBmYWxzZTsKPiA+PiArCj4gPj4gKwlyZXR1cm4g aW50ZWxfdW5jb3JlX3JlYWQoJmk5MTUtPnVuY29yZSwKPiA+PiArCQkJCSBQT1JUX1RYX0RGTEVY RFBTUChGSUExKSkgJgo+ID4+IE1PRFVMQVJfRklBX01BU0s7Cj4gPj4gK30KPiA+PiArCj4gPj4g K3N0YXRpYyBlbnVtIHBoeV9maWEgdGNfcG9ydF90b19maWEoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCj4gPj4gKwkJCQkgICBlbnVtIHRjX3BvcnQgdGNfcG9ydCkKPiA+PiArewo+ID4+ ICsJaWYgKCFoYXNfbW9kdWxhcl9maWEoaTkxNSkpCj4gPj4gKwkJcmV0dXJuIEZJQTE7Cj4gPj4g Kwo+ID4+ICsJcmV0dXJuIHRjX3BvcnQgLyAyOwo+ID4KPiA+SSByZWFsaXplIHRoaXMgaXMgZGVz Y3JpYmVkIGluIHRoZSBjb21taXQgbWVzc2FnZSwgYnV0IHdvdWxkIGJlIG5pY2UgdG8KPiA+aGF2 ZSBhIGJyaWVmIGNvbW1lbnQgZGVzY3JpYmluZyB3aHkgd2UgbmVlZCB0aGlzIGNvbnZlcnNpb24u Cj4gPgo+ID4+ICt9Cj4gPj4gKwo+ID4+ICB1MzIgaW50ZWxfdGNfcG9ydF9nZXRfbGFuZV9tYXNr KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ID4+ICB7Cj4gPj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtCj4gPj4gPmJhc2Uu YmFzZS5kZXYpOwo+ID4+IEBAIC0yOSw3ICs0Nyw4IEBAIHUzMiBpbnRlbF90Y19wb3J0X2dldF9s YW5lX21hc2soc3RydWN0Cj4gPj4gaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiA+PiAg CXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7Cj4gPj4gIAl1MzIg bGFuZV9tYXNrOwo+ID4+Cj4gPj4gLQlsYW5lX21hc2sgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNv cmUsIFBPUlRfVFhfREZMRVhEUFNQKTsKPiA+PiArCWxhbmVfbWFzayA9IGludGVsX3VuY29yZV9y ZWFkKHVuY29yZSwKPiA+PiArCQkJCSAgICAgIFBPUlRfVFhfREZMRVhEUFNQKGRpZ19wb3J0LQo+ ID4+ID50Y19waHlfZmlhKSk7Cj4gPj4KPiA+PiAgCVdBUk5fT04obGFuZV9tYXNrID09IDB4ZmZm ZmZmZmYpOwo+ID4+Cj4gPj4gQEAgLTc4LDcgKzk3LDggQEAgdm9pZCBpbnRlbF90Y19wb3J0X3Nl dF9maWFfbGFuZV9jb3VudChzdHJ1Y3QKPiA+PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 LAo+ID4+Cj4gPj4gIAlXQVJOX09OKGxhbmVfcmV2ZXJzYWwgJiYgZGlnX3BvcnQtPnRjX21vZGUg IT0gVENfUE9SVF9MRUdBQ1kpOwo+ID4+Cj4gPj4gLQl2YWwgPSBpbnRlbF91bmNvcmVfcmVhZCh1 bmNvcmUsIFBPUlRfVFhfREZMRVhEUE1MRTEpOwo+ID4+ICsJdmFsID0gaW50ZWxfdW5jb3JlX3Jl YWQodW5jb3JlLAo+ID4+ICsJCQkJUE9SVF9UWF9ERkxFWERQTUxFMShkaWdfcG9ydC0KPiA+PiA+ dGNfcGh5X2ZpYSkpOwo+ID4+ICAJdmFsICY9IH5ERkxFWERQTUxFMV9EUE1MRVRDX01BU0sodGNf cG9ydCk7Cj4gPj4KPiA+PiAgCXN3aXRjaCAocmVxdWlyZWRfbGFuZXMpIHsKPiA+PiBAQCAtOTcs NyArMTE3LDggQEAgdm9pZCBpbnRlbF90Y19wb3J0X3NldF9maWFfbGFuZV9jb3VudChzdHJ1Y3QK PiA+PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAo+ID4+ICAJCU1JU1NJTkdfQ0FTRShy ZXF1aXJlZF9sYW5lcyk7Cj4gPj4gIAl9Cj4gPj4KPiA+PiAtCWludGVsX3VuY29yZV93cml0ZSh1 bmNvcmUsIFBPUlRfVFhfREZMRVhEUE1MRTEsIHZhbCk7Cj4gPj4gKwlpbnRlbF91bmNvcmVfd3Jp dGUodW5jb3JlLAo+ID4+ICsJCQkgICBQT1JUX1RYX0RGTEVYRFBNTEUxKGRpZ19wb3J0LT50Y19w aHlfZmlhKSwKPiA+PiB2YWwpOwo+ID4+ICB9Cj4gPj4KPiA+PiAgc3RhdGljIHZvaWQgdGNfcG9y dF9maXh1cF9sZWdhY3lfZmxhZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPj4gKmRpZ19w b3J0LAo+ID4+IEBAIC0xMjksNyArMTUwLDggQEAgc3RhdGljIHUzMiB0Y19wb3J0X2xpdmVfc3Rh dHVzX21hc2soc3RydWN0Cj4gPj4gaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiA+PiAg CXUzMiBtYXNrID0gMDsKPiA+PiAgCXUzMiB2YWw7Cj4gPj4KPiA+PiAtCXZhbCA9IGludGVsX3Vu Y29yZV9yZWEKPiA+PiBkKHVuY29yZSwgUE9SVF9UWF9ERkxFWERQU1ApOwo+ID4+ICsJdmFsID0g aW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAo+ID4+ICsJCQkJUE9SVF9UWF9ERkxFWERQU1AoZGln X3BvcnQtCj4gPj4gPnRjX3BoeV9maWEpKTsKPiA+Pgo+ID4+ICAJaWYgKHZhbCA9PSAweGZmZmZm ZmZmKSB7Cj4gPj4gIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIGluIFRDQ09MRCwgbm90 aGluZwo+ID4+IGNvbm5lY3RlZFxuIiwKPiA+PiBAQCAtMTU5LDcgKzE4MSw4IEBAIHN0YXRpYyBi b29sIGljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKHN0cnVjdAo+ID4+IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQpCj4gPj4gIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkx NS0+dW5jb3JlOwo+ID4+ICAJdTMyIHZhbDsKPiA+Pgo+ID4+IC0JdmFsID0gaW50ZWxfdW5jb3Jl X3JlYWQodW5jb3JlLCBQT1JUX1RYX0RGTEVYRFBQTVMpOwo+ID4+ICsJdmFsID0gaW50ZWxfdW5j b3JlX3JlYWQodW5jb3JlLAo+ID4+ICsJCQkJUE9SVF9UWF9ERkxFWERQUE1TKGRpZ19wb3J0LQo+ ID4+ID50Y19waHlfZmlhKSk7Cj4gPj4gIAlpZiAodmFsID09IDB4ZmZmZmZmZmYpIHsKPiA+PiAg CQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkgaW4gVENDT0xELCBhc3N1bWluZyBub3QKPiA+ PiBjb21wbGV0ZVxuIiwKPiA+PiAgCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7Cj4g Pj4gQEAgLTE3Nyw3ICsyMDAsOCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X3NldF9zYWZlX21v ZGUoc3RydWN0Cj4gPj4gaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKPiA+PiAgCXN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNvcmU7Cj4gPj4gIAl1MzIgdmFsOwo+ ID4+Cj4gPj4gLQl2YWwgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIFBPUlRfVFhfREZMRVhE UENTU1MpOwo+ID4+ICsJdmFsID0gaW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLAo+ID4+ICsJCQkJ UE9SVF9UWF9ERkxFWERQQ1NTUyhkaWdfcG9ydC0KPiA+PiA+dGNfcGh5X2ZpYSkpOwo+ID4+ICAJ aWYgKHZhbCA9PSAweGZmZmZmZmZmKSB7Cj4gPj4gIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczog UEhZIGluIFRDQ09MRCwgY2FuJ3Qgc2V0IHNhZmUtCj4gPj4gbW9kZSB0byAlc1xuIiwKPiA+PiAg CQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwKPiA+PiBAQCAtMTkwLDcgKzIxNCw4IEBA IHN0YXRpYyBib29sIGljbF90Y19waHlfc2V0X3NhZmVfbW9kZShzdHJ1Y3QKPiA+PiBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0LAo+ID4+ICAJaWYgKCFlbmFibGUpCj4gPj4gIAkJdmFsIHw9 IERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0KTsKPiA+Pgo+ID4+IC0JaW50ZWxf dW5jb3JlX3dyaXRlKHVuY29yZSwgUE9SVF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKPiA+PiArCWlu dGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCj4gPj4gKwkJCSAgIFBPUlRfVFhfREZMRVhEUENTU1Mo ZGlnX3BvcnQtPnRjX3BoeV9maWEpLAo+ID4+IHZhbCk7Cj4gPj4KPiA+PiAgCWlmIChlbmFibGUg JiYgd2FpdF9mb3IoIWljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSwKPiA+PiAx MCkpCj4gPj4gIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIGNvbXBsZXRlIGNsZWFyIHRp bWVkCj4gPj4gb3V0XG4iLAo+ID4+IEBAIC0yMDYsNyArMjMxLDggQEAgc3RhdGljIGJvb2wgaWNs X3RjX3BoeV9pc19pbl9zYWZlX21vZGUoc3RydWN0Cj4gPj4gaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCkKPiA+PiAgCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZpOTE1LT51bmNv cmU7Cj4gPj4gIAl1MzIgdmFsOwo+ID4+Cj4gPj4gLQl2YWwgPSBpbnRlbF91bmNvcmVfcmVhZCh1 bmNvcmUsIFBPUlRfVFhfREZMRVhEUENTU1MpOwo+ID4+ICsJdmFsID0gaW50ZWxfdW5jb3JlX3Jl YWQodW5jb3JlLAo+ID4+ICsJCQkJUE9SVF9UWF9ERkxFWERQQ1NTUyhkaWdfcG9ydC0KPiA+PiA+ dGNfcGh5X2ZpYSkpOwo+ID4+ICAJaWYgKHZhbCA9PSAweGZmZmZmZmZmKSB7Cj4gPj4gIAkJRFJN X0RFQlVHX0tNUygiUG9ydCAlczogUEhZIGluIFRDQ09MRCwgYXNzdW1lIHNhZmUKPiA+PiBtb2Rl XG4iLAo+ID4+ICAJCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lKTsKPiA+PiBAQCAtNTAz LDQgKzUyOSw1IEBAIHZvaWQgaW50ZWxfdGNfcG9ydF9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQKPiA+PiAqZGlnX3BvcnQsIGJvb2wgaXNfbGVnYWN5KQo+ID4+ICAJbXV0ZXhfaW5pdCgm ZGlnX3BvcnQtPnRjX2xvY2spOwo+ID4+ICAJZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gaXNf bGVnYWN5Owo+ID4+ICAJZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgPSAwOwo+ID4+ICsJZGln X3BvcnQtPnRjX3BoeV9maWEgPSB0Y19wb3J0X3RvX2ZpYShpOTE1LCB0Y19wb3J0KTsKPiA+PiAg fQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4gaW5kZXggOTViOWNhMWZkYTJl Li5kMDUxMDAyMjAxM2MgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+PiBA QCAtMjIwMyw5ICsyMjAzLDEzIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiA+PiAgI2Rl ZmluZSAgIERXNl9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyOCkKPiA+Pgo+ID4+ICAjZGVm aW5lIEZJQTFfQkFTRQkJCTB4MTYzMDAwCj4gPj4gKyNkZWZpbmUgRklBMl9CQVNFCQkJMHgxNkUw MDAKPiA+PiArI2RlZmluZSBGSUEzX0JBU0UJCQkweDE2RjAwMAo+ID4+ICsjZGVmaW5lIF9GSUEo ZmlhKQkJCV9QSUNLKChmaWEpLCBGSUExX0JBU0UsCj4gPj4gRklBMl9CQVNFLCBGSUEzX0JBU0Up Cj4gPj4gKyNkZWZpbmUgX01NSU9fRklBKGZpYSwgb2ZmKQkJX01NSU8oX0ZJQShmaWEpICsgKG9m ZikpCj4gPj4KPiA+PiAgLyogSUNMIFBIWSBERkxFWCByZWdpc3RlcnMgKi8KPiA+PiAtI2RlZmlu ZSBQT1JUX1RYX0RGTEVYRFBNTEUxCQlfTU1JTyhGSUExX0JBU0UgKyAweDAwOEMwKQo+ID4+ICsj ZGVmaW5lIFBPUlRfVFhfREZMRVhEUE1MRTEoZmlhKQlfTU1JT19GSUEoKGZpYSksICAweDAwOEMw KQo+ID4+ICAjZGVmaW5lICAgREZMRVhEUE1MRTFfRFBNTEVUQ19NQVNLKHRjX3BvcnQpCSgweGYg PDwgKDQgKgo+ID4+ICh0Y19wb3J0KSkpCj4gPj4gICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1M RVRDX01MMCh0Y19wb3J0KQkoMSA8PCAoNCAqICh0Y19wb3J0KSkpCj4gPj4gICNkZWZpbmUgICBE RkxFWERQTUxFMV9EUE1MRVRDX01MMV8wKHRjX3BvcnQpCSgzIDw8ICg0ICogKHRjX3BvcnQpKSkK PiA+PiBAQCAtMTE0ODQsMTcgKzExNDg4LDE4IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+ID4+ ICAJCQkJCQlfSUNMX0RTQzFfUkNfQlVGX1RIUkVTSAo+ID4+IF8xX1VEV19QQiwgXAo+ID4+ICAJ CQkJCQlfSUNMX0RTQzFfUkNfQlVGX1RIUkVTSAo+ID4+IF8xX1VEV19QQykKPiA+Pgo+ID4+IC0j ZGVmaW5lIFBPUlRfVFhfREZMRVhEUFNQCQkJX01NSU8oRklBMV9CQVNFICsKPiA+PiAweDAwOEEw KQo+ID4+ICsjZGVmaW5lIFBPUlRfVFhfREZMRVhEUFNQKGZpYSkJCQlfTU1JT19GSUEoKGZpYSkK PiA+PiAsIDB4MDA4QTApCj4gPj4gKyNkZWZpbmUgICBNT0RVTEFSX0ZJQV9NQVNLCQkJKDEgPDwg NCkKPiA+PiAgI2RlZmluZSAgIFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpCQkoMSA8PCAoKHRj X3BvcnQpICogOCArCj4gPj4gNikpCj4gPj4gICNkZWZpbmUgICBUQ19MSVZFX1NUQVRFX1RDKHRj X3BvcnQpCQkoMSA8PCAoKHRjX3BvcnQpICogOCArCj4gPj4gNSkpCj4gPj4gICNkZWZpbmUgICBE UF9MQU5FX0FTU0lHTk1FTlRfU0hJRlQodGNfcG9ydCkJKCh0Y19wb3J0KSAqIDgpCj4gPj4gICNk ZWZpbmUgICBEUF9MQU5FX0FTU0lHTk1FTlRfTUFTSyh0Y19wb3J0KQkoMHhmIDw8ICgodGNfcG9y dCkgKgo+ID4+IDgpKQo+ID4+ICAjZGVmaW5lICAgRFBfTEFORV9BU1NJR05NRU5UKHRjX3BvcnQs IHgpCSgoeCkgPDwgKCh0Y19wb3J0KSAqCj4gPj4gOCkpCj4gPj4KPiA+PiAtI2RlZmluZSBQT1JU X1RYX0RGTEVYRFBQTVMJCQkJX01NSU8oRklBMV9CQVNFCj4gPj4gKyAweDAwODkwKQo+ID4+ICsj ZGVmaW5lIFBPUlRfVFhfREZMRVhEUFBNUyhmaWEpCQkJX01NSU9fRklBKChmaWEpCj4gPj4gLCAw eDAwODkwKQo+ID4+ICAjZGVmaW5lICAgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19w b3J0KQkJKDEgPDwKPiA+PiAodGNfcG9ydCkpCj4gPj4KPiA+PiAtI2RlZmluZSBQT1JUX1RYX0RG TEVYRFBDU1NTCQkJX01NSU8oRklBMV9CQVNFICsKPiA+PiAweDAwODk0KQo+ID4+ICsjZGVmaW5l IFBPUlRfVFhfREZMRVhEUENTU1MoZmlhKQkJX01NSU9fRklBKChmaWEpLAo+ID4+IDB4MDA4OTQp Cj4gPj4gICNkZWZpbmUgICBEUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCkJCSgx IDw8Cj4gPj4gKHRjX3BvcnQpKQo+ID4+Cj4gPj4gICNlbmRpZiAvKiBfSTkxNV9SRUdfSF8gKi8K PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u aAo+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+ID4+IGlu ZGV4IGRkYWZjODE5YmYzMC4uZTlkYzg2ZWQ1MTdiIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4gPj4gQEAgLTEzNiw2ICsxMzYsNyBAQCBlbnVt IGludGVsX3BwZ3R0X3R5cGUgewo+ID4+ICAJZnVuYyhoYXNfZ21jaCk7IFwKPiA+PiAgCWZ1bmMo aGFzX2hvdHBsdWcpOyBcCj4gPj4gIAlmdW5jKGhhc19pcGMpOyBcCj4gPj4gKwlmdW5jKGhhc19t b2R1bGFyX2ZpYSk7IFwKPiA+Cj4gPklmIHdlIGhhdmUgYSByZWdpc3RlciB0byB0ZWxsIHVzIHdo ZXRoZXIgdGhlIHBsYXRmb3JtIHN1cHBvcnRzIHRoaXMsCj4gPndoeSBkbyB3ZSBuZWVkIHRoaXMg ZmVhdHVyZSBmbGFnPwo+IAo+IGJlY2F1c2UgdGhlIHBsYXRmb3JtIG1heSBub3QgaGF2ZSB0aGUg cmVnaXN0ZXIgYml0IHRoYXQgdGVsbHMgaWYgdGhlIHdlCj4gaGF2ZSBtb2R1bGFyIEZJQSwgYXMg aXMgdGhlIGNhc2Ugd2l0aCBJY2UgTGFrZS4gVGhlIGJpdCBpcyByZXNlcnZlZAo+IHRoZXJlLiBU aGlzIGlzIGFjdHVhbGx5ICJtYXlfaGF2ZV9tb2R1bGFyX2ZpYSIgcmF0aGVyIHRoYW4KPiAiaGFz X21vZHVsYXJfZmlhIiwgYnV0IHRoZSBuYW1lIGlzIHByZXR0eSBiYWQgdG8gbWFrZSBpdCB0aGF0 IHdheS4KCkFyZSB3ZSBleHBlY3RpbmcgdGhpcyB0byBwaW5nLXBvbmcgYmV0d2VlbiB2YXJpb3Vz IGdlbjEyKyBwbGF0Zm9ybXM/CklmIG5vdCB0aGVuIElNTyBhIGZsYWcgaXMgb3ZlcmtpbGwuCgo+ IAo+IEx1Y2FzIERlIE1hcmNoaQo+IAo+ID4KPiA+VGhhbmtzLAo+ID5TdHVhcnQKPiA+Cj4gPj4g IAlmdW5jKGhhc19vdmVybGF5KTsgXAo+ID4+ICAJZnVuYyhoYXNfcHNyKTsgXAo+ID4+ICAJZnVu YyhvdmVybGF5X25lZWRzX3BoeXNpY2FsKTsgXAo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+PiBpbmRleCA3NzBmOWY2YWFkODQuLmU4ZWNiZDU1NDc2ZSAxMDA2NDQKPiA+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPj4gQEAgLTEyNDUsNiArMTI0NSw3IEBAIHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+ID4+ICAJYm9vbCB0Y19sZWdhY3lfcG9ydDoxOwo+ID4+ ICAJY2hhciB0Y19wb3J0X25hbWVbOF07Cj4gPj4gIAllbnVtIHRjX3BvcnRfbW9kZSB0Y19tb2Rl Owo+ID4+ICsJZW51bSBwaHlfZmlhIHRjX3BoeV9maWE7Cj4gPj4KPiA+PiAgCXZvaWQgKCp3cml0 ZV9pbmZvZnJhbWUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4+ICAJCQkJY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+PiAqY3J0Y19zdGF0ZSwKPiAKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4