From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 01/28] drm/i915: Add modular FIA Date: Wed, 26 Jun 2019 18:50:14 +0300 Message-ID: <20190626155014.GT5942@intel.com> References: <20190625175437.14840-1-lucas.demarchi@intel.com> <20190625175437.14840-2-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 22F0F6E482 for ; Wed, 26 Jun 2019 15:50:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190625175437.14840-2-lucas.demarchi@intel.com> 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 T24gVHVlLCBKdW4gMjUsIDIwMTkgYXQgMTA6NTQ6MTBBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IEZyb206IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNv bT4KPiAKPiBTb21lIHBsYXRmb3JtcyBtYXkgaGF2ZSBNb2R1bGFyIEZJQS4gSWYgTW9kdWxhciBG SUEgaXMgdXNlZCBpbiB0aGUgU09DLAo+IHRoZW4gRGlzcGxheSBEcml2ZXIgd2lsbCBhY2Nlc3Mg dGhlIGFkZGl0aW9uYWwgaW5zdGFuY2VzIG9mCj4gRklBIGJhc2VkIG9uIHByZS1hc3NpZ25lZCBv ZmZzZXQgaW4gR1RUTUFERFIgc3BhY2UuCj4gCj4gRWFjaCBNb2R1bGFyIEZJQSBpbnN0YW5jZSBo YXMgaXRzIG93biBJT1NGIFNpZGViYW5kIFBvcnQgSUQKPiBhbmQgaXQgaG91c2VzIG9ubHkgMiBU eXBlLUMgUG9ydC4gSW4gU09DIHRoYXQgaGFzIG1vcmUgdGhhbgo+IHR3byBUeXBlLUMgUG9ydHMs IHRoZXJlIGFyZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgTW9kdWxhciBGSUEuCj4gR3VuaXQgd2ls bCBuZWVkIHRvIHVzZSBkaWZmZXJlbnQgZGVzdGluYXRpb24gSUQgd2hlbiBpdCBhY2Nlc3MKPiBk aWZmZXJlbnQgcGFpciBvZiBUeXBlLUMgUG9ydC4KPiAKPiBUaGUgREZMRVhEUFNQIHJlZ2lzdGVy IGhhcyBNb2R1bGFyIEZJQSBiaXQuIElmIE1vZHVsYXIgRklBIGlzCj4gdXNlZCBpbiB0aGUgU09D LCB0aGlzIHJlZ2lzdGVyIGJpdCBleGlzdHMgaW4gYWxsIHRoZSBpbnN0YW5jZXMgb2YKPiBNb2R1 bGFyIEZJQS4gSU9NIEZXIGlzIHJlcXVpcmVkIHRvIHByb2dyYW0gb25seSB0aGUgTUYgYml0IGlu Cj4gZmlyc3QgRklBIGluc3RhbmNlIHRoYXQgaG91c2VzIHRoZSBUeXBlLUMgUG9ydCAwIGFuZCBQ b3J0IDEsIGZvcgo+IERpc3BsYXkgRHJpdmVyIHRvIHJlYWQgZnJvbS4KPiAKPiBDYzogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3Jp dmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTHVjYXMg RGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgIHwgIDkgKysrKy0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyB8IDI3ICsrKysrKysrKysrKysr KysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oIHwg IDYgKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAg fCAyNSArKysrKysrKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAgICAgICAgICAgICAgfCAxMyArKysrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RldmljZV9pbmZvLmggICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgICAgICAgICB8ICAyICsrCj4gIDcgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RkaS5jCj4gaW5kZXggNzkyNWExNzZmOTAwLi5iNzE3NTYyZmNjZTUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBAQCAtMjk5Nyw2ICsyOTk3 LDcgQEAgc3RhdGljIHZvaWQgaWNsX3Byb2dyYW1fbWdfZHBfbW9kZShzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGln X3BvcnQtPmJhc2UucG9ydDsKPiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90 b190YyhkZXZfcHJpdiwgcG9ydCk7Cj4gIAl1MzIgbG4wLCBsbjEsIGxhbmVfaW5mbzsKPiArCWVu dW0gZGlzcGxheV9maWEgZmlhOwoKQ2FuIHdlIHN0aWNrIHRoaXMgaW50byB0aGUgbmV3IGVudW0g cGh5IG5hbWVzcGFjZSB3ZSdyZSBnb2luZyB0byBuZWVkCmFueXdheSBmb3IgZWhsPwoKPiAgCj4g IAlpZiAodGNfcG9ydCA9PSBQT1JUX1RDX05PTkUgfHwgaW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUg PT0gVENfUE9SVF9UQlQpCj4gIAkJcmV0dXJuOwo+IEBAIC0zMDA5LDcgKzMwMTAsOCBAQCBzdGF0 aWMgdm9pZCBpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0KQo+ICAJCWxuMCAmPSB+KE1HX0RQX01PREVfQ0ZHX0RQX1gxX01PREUg fCBNR19EUF9NT0RFX0NGR19EUF9YMl9NT0RFKTsKPiAgCQlsbjEgJj0gfihNR19EUF9NT0RFX0NG R19EUF9YMV9NT0RFIHwgTUdfRFBfTU9ERV9DRkdfRFBfWDJfTU9ERSk7Cj4gIAo+IC0JCWxhbmVf aW5mbyA9IChJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1ApICYKPiArCQlmaWEgPSBpbnRlbF90 Y19wb3J0X3RvX2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4gKwkJbGFuZV9pbmZvID0gKEk5MTVf UkVBRChQT1JUX1RYX0RGTEVYRFBTUChmaWEpKSAmCj4gIAkJCSAgICAgRFBfTEFORV9BU1NJR05N RU5UX01BU0sodGNfcG9ydCkpID4+Cj4gIAkJCSAgICBEUF9MQU5FX0FTU0lHTk1FTlRfU0hJRlQo dGNfcG9ydCk7Cj4gIAo+IEBAIC0zNTk4LDcgKzM2MDAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k ZGlfc2V0X2ZpYV9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19k aWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVs X3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOwo+IC0JdTMyIHZhbCA9IEk5MTVfUkVBRChQT1JU X1RYX0RGTEVYRFBNTEUxKTsKPiArCWVudW0gZGlzcGxheV9maWEgZmlhID0gaW50ZWxfdGNfcG9y dF90b19maWEoZGV2X3ByaXYsIHRjX3BvcnQpOwo+ICsJdTMyIHZhbCA9IEk5MTVfUkVBRChQT1JU X1RYX0RGTEVYRFBNTEUxKGZpYSkpOwo+ICAJYm9vbCBsYW5lX3JldmVyc2FsID0gZGlnX3BvcnQt PnNhdmVkX3BvcnRfYml0cyAmIERESV9CVUZfUE9SVF9SRVZFUlNBTDsKPiAgCj4gIAl2YWwgJj0g fkRGTEVYRFBNTEUxX0RQTUxFVENfTUFTSyh0Y19wb3J0KTsKPiBAQCAtMzYxNyw3ICszNjIwLDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3NldF9maWFfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCWRlZmF1bHQ6Cj4gIAkJTUlTU0lOR19DQVNFKHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50KTsKPiAgCX0KPiAtCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQTUxF MSwgdmFsKTsKPiArCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQTUxFMShmaWEpLCB2YWwpOwo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggODU5MmE3ZDQyMmRlLi42MjE3YjViY2VhMmEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC02 NTkwLDYgKzY1OTAsMzMgQEAgZW51bSB0Y19wb3J0IGludGVsX3BvcnRfdG9fdGMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAgCXJldHVybiBwb3J0 IC0gUE9SVF9DOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBpbnRlbF9oYXNfbW9kdWxhcl9maWEo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpZiAoIUlOVEVMX0lO Rk8oZGV2X3ByaXYpLT5kaXNwbGF5Lmhhc19tb2R1bGFyX2ZpYSkKPiArCQlyZXR1cm4gZmFsc2U7 Cj4gKwo+ICsJcmV0dXJuIEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUChGSUFfMSkpICYgTU9E VUxBUl9GSUFfTUFTSzsKPiArfQo+ICsKPiArZW51bSBkaXNwbGF5X2ZpYSBpbnRlbF90Y19wb3J0 X3RvX2ZpYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgICAgICBl bnVtIHRjX3BvcnQgdGNfcG9ydCkKPiArewo+ICsJaWYgKCFpbnRlbF9oYXNfbW9kdWxhcl9maWEo ZGV2X3ByaXYpKQo+ICsJCXJldHVybiBGSUFfMTsKPiArCj4gKwlzd2l0Y2ggKHRjX3BvcnQpIHsK PiArCWNhc2UgUE9SVF9UQzE6Cj4gKwljYXNlIFBPUlRfVEMyOgo+ICsJCXJldHVybiBGSUFfMTsK PiArCWNhc2UgUE9SVF9UQzM6Cj4gKwljYXNlIFBPUlRfVEM0Ogo+ICsJCXJldHVybiBGSUFfMjsK PiArCWRlZmF1bHQ6Cj4gKwkJV0FSTl9PTih0Y19wb3J0KTsKPiArCQlyZXR1cm4gRklBXzE7Cj4g Kwl9Cj4gK30KPiArCj4gIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gaW50ZWxfcG9y dF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCXN3aXRjaCAocG9ydCkg ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCj4gaW5k ZXggZWU2YjgxOTRhNDU5Li4xMmRlZDAxZWQ1ZDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAo+IEBAIC0xOTYsNiArMTk2LDEyIEBAIGVudW0g dGNfcG9ydF90eXBlIHsKPiAgCVRDX1BPUlRfTEVHQUNZLAo+ICB9Owo+ICAKPiArZW51bSBkaXNw bGF5X2ZpYSB7Cj4gKwlGSUFfMSA9IDAsCj4gKwlGSUFfMiwKPiArCUZJQV8zLAo+ICt9Owo+ICsK PiAgZW51bSBkcGlvX2NoYW5uZWwgewo+ICAJRFBJT19DSDAsCj4gIAlEUElPX0NIMQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiBpbmRleCA0MzM2ZGY0NmZlNzguLjVl ZDZlNDlmZWYzMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMK PiBAQCAtMjE4LDEzICsyMTgsMTUgQEAgc3RhdGljIGludCBpbnRlbF9kcF9nZXRfZmlhX3N1cHBv cnRlZF9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAllbnVtIHRjX3Bv cnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBv cnQpOwo+ICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gIAl1MzIgbGFuZV9pbmZvOwo+ICsJ ZW51bSBkaXNwbGF5X2ZpYSBmaWE7Cj4gIAo+ICAJaWYgKHRjX3BvcnQgPT0gUE9SVF9UQ19OT05F IHx8IGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfVFlQRUMpCj4gIAkJcmV0dXJuIDQ7Cj4g IAo+ICsJZmlhICA9IGludGVsX3RjX3BvcnRfdG9fZmlhKGRldl9wcml2LCB0Y19wb3J0KTsKPiAg CWxhbmVfaW5mbyA9IDA7Cj4gIAl3aXRoX2ludGVsX2Rpc3BsYXlfcG93ZXIoZGV2X3ByaXYsIFBP V0VSX0RPTUFJTl9ESVNQTEFZX0NPUkUsIHdha2VyZWYpCj4gLQkJbGFuZV9pbmZvID0gKEk5MTVf UkVBRChQT1JUX1RYX0RGTEVYRFBTUCkgJgo+ICsJCWxhbmVfaW5mbyA9IChJOTE1X1JFQUQoUE9S VF9UWF9ERkxFWERQU1AoZmlhKSkgJgo+ICAJCQkgICAgIERQX0xBTkVfQVNTSUdOTUVOVF9NQVNL KHRjX3BvcnQpKSA+Pgo+ICAJCQkJRFBfTEFORV9BU1NJR05NRU5UX1NISUZUKHRjX3BvcnQpOwo+ ICAKPiBAQCAtNTMwMCwxMiArNTMwMiwxNCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5l Y3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICB7Cj4gIAllbnVtIHRjX3Bv cnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBv cnQpOwo+ICAJdTMyIHZhbDsKPiArCWVudW0gZGlzcGxheV9maWEgZmlhOwo+ICAKPiAgCWlmIChk aWdfcG9ydC0+dGNfdHlwZSAhPSBUQ19QT1JUX0xFR0FDWSAmJgo+ICAJICAgIGRpZ19wb3J0LT50 Y190eXBlICE9IFRDX1BPUlRfVFlQRUMpCj4gIAkJcmV0dXJuIHRydWU7Cj4gIAo+IC0JdmFsID0g STkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Cj4gKwlmaWEgPSBpbnRlbF90Y19wb3J0X3Rv X2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4gKwl2YWwgPSBJOTE1X1JFQUQoUE9SVF9UWF9ERkxF WERQUE1TKGZpYSkpOwo+ICAJaWYgKCEodmFsICYgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRF RCh0Y19wb3J0KSkpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJEUCBQSFkgZm9yIFRDIHBvcnQgJWQg bm90IHJlYWR5XG4iLCB0Y19wb3J0KTsKPiAgCQlXQVJOX09OKGRpZ19wb3J0LT50Y19sZWdhY3lf cG9ydCk7Cj4gQEAgLTUzMTYsMTAgKzUzMjAsMTAgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9j b25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCSAqIFRoaXMgZnVu Y3Rpb24gbWF5IGJlIGNhbGxlZCBtYW55IHRpbWVzIGluIGEgcm93IHdpdGhvdXQgYW4gSFBEIGV2 ZW50Cj4gIAkgKiBpbiBiZXR3ZWVuLCBzbyB0cnkgdG8gYXZvaWQgdGhlIHdyaXRlIHdoZW4gd2Ug Y2FuLgo+ICAJICovCj4gLQl2YWwgPSBJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQQ1NTUyk7Cj4g Kwl2YWwgPSBJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQQ1NTUyhmaWEpKTsKPiAgCWlmICghKHZh bCAmIERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0KSkpIHsKPiAgCQl2YWwgfD0g RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpOwo+IC0JCUk5MTVfV1JJVEUoUE9S VF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKPiArCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENT U1MoZmlhKSwgdmFsKTsKPiAgCX0KPiAgCj4gIAkvKgo+IEBAIC01MzI3LDcgKzUzMzEsNyBAQCBz dGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAJICogYmVjYW1lIGRpc2Nvbm5lY3RlZC4gTm90IG5lY2Vzc2FyeSBmb3IgbGVn YWN5IG1vZGUuCj4gIAkgKi8KPiAgCWlmIChkaWdfcG9ydC0+dGNfdHlwZSA9PSBUQ19QT1JUX1RZ UEVDICYmCj4gLQkgICAgIShJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1ApICYgVENfTElWRV9T VEFURV9UQyh0Y19wb3J0KSkpIHsKPiArCSAgICAhKEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBT UChmaWEpKSAmIFRDX0xJVkVfU1RBVEVfVEModGNfcG9ydCkpKSB7Cj4gIAkJRFJNX0RFQlVHX0tN UygiVEMgUEhZICVkIHN1ZGRlbiBkaXNjb25uZWN0LlxuIiwgdGNfcG9ydCk7Cj4gIAkJaWNsX3Rj X3BoeV9kaXNjb25uZWN0KGRldl9wcml2LCBkaWdfcG9ydCk7Cj4gIAkJcmV0dXJuIGZhbHNlOwo+ IEBAIC01MzQ0LDEwICs1MzQ4LDEzIEBAIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAgc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQpCj4gIHsKPiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxf cG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2UucG9ydCk7Cj4gKwllbnVtIGRpc3Bs YXlfZmlhIGZpYTsKPiAgCj4gIAlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9SVF9VTktO T1dOKQo+ICAJCXJldHVybjsKPiAgCj4gKwlmaWEgPSBpbnRlbF90Y19wb3J0X3RvX2ZpYShkZXZf cHJpdiwgdGNfcG9ydCk7Cj4gKwo+ICAJLyoKPiAgCSAqIFRCVCBkaXNjb25uZWN0aW9uIGZsb3cg aXMgcmVhZCB0aGUgbGl2ZSBzdGF0dXMsIHdoYXQgd2FzIGRvbmUgaW4KPiAgCSAqIGNhbGxlci4K PiBAQCAtNTM1Niw5ICs1MzYzLDkgQEAgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJICAgIGRpZ19wb3J0LT50Y190eXBlID09 IFRDX1BPUlRfTEVHQUNZKSB7Cj4gIAkJdTMyIHZhbDsKPiAgCj4gLQkJdmFsID0gSTkxNV9SRUFE KFBPUlRfVFhfREZMRVhEUENTU1MpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVY RFBDU1NTKGZpYSkpOwo+ICAJCXZhbCAmPSB+RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRj X3BvcnQpOwo+IC0JCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKPiArCQlJ OTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MoZmlhKSwgdmFsKTsKPiAgCX0KPiAgCj4gIAlE Uk1fREVCVUdfS01TKCJQb3J0ICVjIFRDIHR5cGUgJXMgZGlzY29ubmVjdGVkXG4iLAo+IEBAIC01 MzgzLDYgKzUzOTAsNyBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICB7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVs X3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOwo+ICsJZW51bSBkaXNwbGF5X2ZpYSBmaWEgPSBp bnRlbF90Y19wb3J0X3RvX2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4gIAlib29sIGlzX2xlZ2Fj eSwgaXNfdHlwZWMsIGlzX3RidDsKPiAgCXUzMiBkcHNwOwo+ICAKPiBAQCAtNTQwMiw3ICs1NDEw LDggQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCSAqIFRoZSBzcGVjIHNheXMgd2Ugc2hvdWxkbid0IGJlIHVz aW5nIHRoZSBJU1IgYml0cyBmb3IgZGV0ZWN0aW5nCj4gIAkgKiBiZXR3ZWVuIFRDIGFuZCBUQlQu IFdlIHNob3VsZCB1c2UgREZMRVhEUFNQLgo+ICAJICovCj4gLQlkcHNwID0gSTkxNV9SRUFEKFBP UlRfVFhfREZMRVhEUFNQKTsKPiArCj4gKwlkcHNwID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhE UFNQKGZpYSkpOwo+ICAJaXNfdHlwZWMgPSBkcHNwICYgVENfTElWRV9TVEFURV9UQyh0Y19wb3J0 KTsKPiAgCWlzX3RidCA9IGRwc3AgJiBUQ19MSVZFX1NUQVRFX1RCVCh0Y19wb3J0KTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggN2U2MDA5Y2VmYjE4Li44MDQ3ZjFiZWQzMTQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMjIwMSw5ICsyMjAxLDEzIEBAIGVu dW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgI2RlZmluZSAgIERXNl9PTERPX0RZTl9QV1JfRE9X Tl9FTgkoMSA8PCAyOCkKPiAgCj4gICNkZWZpbmUgRklBMV9CQVNFCQkJMHgxNjMwMDAKPiArI2Rl ZmluZSBGSUEyX0JBU0UJCQkweDE2RTAwMAo+ICsjZGVmaW5lIEZJQTNfQkFTRQkJCTB4MTZGMDAw Cj4gKyNkZWZpbmUgX0ZJQShmaWEpCQkJX1BJQ0soKGZpYSksIEZJQTFfQkFTRSwgRklBMl9CQVNF LCBGSUEzX0JBU0UpCj4gKyNkZWZpbmUgX01NSU9fRklBKGZpYSwgb2ZmKQkJX01NSU8oX0ZJQShm aWEpICsgKG9mZikpCj4gIAo+ICAvKiBJQ0wgUEhZIERGTEVYIHJlZ2lzdGVycyAqLwo+IC0jZGVm aW5lIFBPUlRfVFhfREZMRVhEUE1MRTEJCV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4QzApCj4gKyNk ZWZpbmUgUE9SVF9UWF9ERkxFWERQTUxFMShmaWEpCV9NTUlPX0ZJQSgoZmlhKSwgIDB4MDA4QzAp Cj4gICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1MRVRDX01BU0sodGNfcG9ydCkJKDB4ZiA8PCAo NCAqICh0Y19wb3J0KSkpCj4gICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1MRVRDX01MMCh0Y19w b3J0KQkoMSA8PCAoNCAqICh0Y19wb3J0KSkpCj4gICNkZWZpbmUgICBERkxFWERQTUxFMV9EUE1M RVRDX01MMV8wKHRjX3BvcnQpCSgzIDw8ICg0ICogKHRjX3BvcnQpKSkKPiBAQCAtMTE0NjEsMTcg KzExNDY1LDE4IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+ICAJCQkJCQlfSUNMX0RTQzFfUkNf QlVGX1RIUkVTSF8xX1VEV19QQiwgXAo+ICAJCQkJCQlfSUNMX0RTQzFfUkNfQlVGX1RIUkVTSF8x X1VEV19QQykKPiAgCj4gLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQU1AJCQlfTU1JTyhGSUExX0JB U0UgKyAweDAwOEEwKQo+ICsjZGVmaW5lIFBPUlRfVFhfREZMRVhEUFNQKGZpYSkJCQlfTU1JT19G SUEoKGZpYSksIDB4MDA4QTApCj4gKyNkZWZpbmUgICBNT0RVTEFSX0ZJQV9NQVNLCQkJKDEgPDwg NCkKPiAgI2RlZmluZSAgIFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpCQkoMSA8PCAoKHRjX3Bv cnQpICogOCArIDYpKQo+ICAjZGVmaW5lICAgVENfTElWRV9TVEFURV9UQyh0Y19wb3J0KQkJKDEg PDwgKCh0Y19wb3J0KSAqIDggKyA1KSkKPiAgI2RlZmluZSAgIERQX0xBTkVfQVNTSUdOTUVOVF9T SElGVCh0Y19wb3J0KQkoKHRjX3BvcnQpICogOCkKPiAgI2RlZmluZSAgIERQX0xBTkVfQVNTSUdO TUVOVF9NQVNLKHRjX3BvcnQpCSgweGYgPDwgKCh0Y19wb3J0KSAqIDgpKQo+ICAjZGVmaW5lICAg RFBfTEFORV9BU1NJR05NRU5UKHRjX3BvcnQsIHgpCSgoeCkgPDwgKCh0Y19wb3J0KSAqIDgpKQo+ ICAKPiAtI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBQTVMJCQkJX01NSU8oRklBMV9CQVNFICsgMHgw MDg5MCkKPiArI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBQTVMoZmlhKQkJCV9NTUlPX0ZJQSgoZmlh KSwgMHgwMDg5MCkKPiAgI2RlZmluZSAgIERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQodGNf cG9ydCkJCSgxIDw8ICh0Y19wb3J0KSkKPiAgCj4gLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQQ1NT UwkJCV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4OTQpCj4gKyNkZWZpbmUgUE9SVF9UWF9ERkxFWERQ Q1NTUyhmaWEpCQlfTU1JT19GSUEoKGZpYSksIDB4MDA4OTQpCj4gICNkZWZpbmUgICBEUF9QSFlf TU9ERV9TVEFUVVNfTk9UX1NBRkUodGNfcG9ydCkJCSgxIDw8ICh0Y19wb3J0KSkKPiAgCj4gICNl bmRpZiAvKiBfSTkxNV9SRUdfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rldmlj ZV9pbmZvLmgKPiBpbmRleCBkZGFmYzgxOWJmMzAuLmU5ZGM4NmVkNTE3YiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+IEBAIC0xMzYsNiArMTM2LDcgQEAg ZW51bSBpbnRlbF9wcGd0dF90eXBlIHsKPiAgCWZ1bmMoaGFzX2dtY2gpOyBcCj4gIAlmdW5jKGhh c19ob3RwbHVnKTsgXAo+ICAJZnVuYyhoYXNfaXBjKTsgXAo+ICsJZnVuYyhoYXNfbW9kdWxhcl9m aWEpOyBcCj4gIAlmdW5jKGhhc19vdmVybGF5KTsgXAo+ICAJZnVuYyhoYXNfcHNyKTsgXAo+ICAJ ZnVuYyhvdmVybGF5X25lZWRzX3BoeXNpY2FsKTsgXAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gaW5kZXggMWQ1OGY3ZWM1ZDg0Li5lMzBjYjRiZTQ5OTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+IEBAIC0xNDc3LDYgKzE0NzcsOCBAQCBib29sIGludGVsX3BvcnRfaXNfY29t Ym9waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7 Cj4gIGJvb2wgaW50ZWxfcG9ydF9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gcG9ydCBwb3J0KTsKPiAgZW51bSB0Y19wb3J0IGludGVsX3BvcnRfdG9fdGMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgICBlbnVtIHBvcnQgcG9y dCk7Cj4gK2VudW0gZGlzcGxheV9maWEgaW50ZWxfdGNfcG9ydF90b19maWEoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJICAgICAgZW51bSB0Y19wb3J0IHRjX3BvcnQp Owo+ICBpbnQgaW50ZWxfZ2V0X3BpcGVfZnJvbV9jcnRjX2lkX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdik7Cj4gIGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtLSAKPiAyLjIxLjAKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4