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 20:56:49 +0300 Message-ID: <20190626175649.GV5942@intel.com> References: <20190625175437.14840-1-lucas.demarchi@intel.com> <20190625175437.14840-2-lucas.demarchi@intel.com> <20190626155014.GT5942@intel.com> <20190626174801.pbm3ltestrd6l7tv@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 C14466E4B5 for ; Wed, 26 Jun 2019 17:56:53 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190626174801.pbm3ltestrd6l7tv@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 T24gV2VkLCBKdW4gMjYsIDIwMTkgYXQgMTA6NDg6MDFBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIFdlZCwgSnVuIDI2LCAyMDE5IGF0IDA2OjUwOjE0UE0gKzAzMDAsIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+T24gVHVlLCBKdW4gMjUsIDIwMTkgYXQgMTA6NTQ6MTBBTSAt MDcwMCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ID4+IEZyb206IEFudXNoYSBTcml2YXRzYSA8 YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+Pgo+ID4+IFNvbWUgcGxhdGZvcm1zIG1heSBo YXZlIE1vZHVsYXIgRklBLiBJZiBNb2R1bGFyIEZJQSBpcyB1c2VkIGluIHRoZSBTT0MsCj4gPj4g dGhlbiBEaXNwbGF5IERyaXZlciB3aWxsIGFjY2VzcyB0aGUgYWRkaXRpb25hbCBpbnN0YW5jZXMg b2YKPiA+PiBGSUEgYmFzZWQgb24gcHJlLWFzc2lnbmVkIG9mZnNldCBpbiBHVFRNQUREUiBzcGFj ZS4KPiA+Pgo+ID4+IEVhY2ggTW9kdWxhciBGSUEgaW5zdGFuY2UgaGFzIGl0cyBvd24gSU9TRiBT aWRlYmFuZCBQb3J0IElECj4gPj4gYW5kIGl0IGhvdXNlcyBvbmx5IDIgVHlwZS1DIFBvcnQuIElu IFNPQyB0aGF0IGhhcyBtb3JlIHRoYW4KPiA+PiB0d28gVHlwZS1DIFBvcnRzLCB0aGVyZSBhcmUg bXVsdGlwbGUgaW5zdGFuY2VzIG9mIE1vZHVsYXIgRklBLgo+ID4+IEd1bml0IHdpbGwgbmVlZCB0 byB1c2UgZGlmZmVyZW50IGRlc3RpbmF0aW9uIElEIHdoZW4gaXQgYWNjZXNzCj4gPj4gZGlmZmVy ZW50IHBhaXIgb2YgVHlwZS1DIFBvcnQuCj4gPj4KPiA+PiBUaGUgREZMRVhEUFNQIHJlZ2lzdGVy IGhhcyBNb2R1bGFyIEZJQSBiaXQuIElmIE1vZHVsYXIgRklBIGlzCj4gPj4gdXNlZCBpbiB0aGUg U09DLCB0aGlzIHJlZ2lzdGVyIGJpdCBleGlzdHMgaW4gYWxsIHRoZSBpbnN0YW5jZXMgb2YKPiA+ PiBNb2R1bGFyIEZJQS4gSU9NIEZXIGlzIHJlcXVpcmVkIHRvIHByb2dyYW0gb25seSB0aGUgTUYg Yml0IGluCj4gPj4gZmlyc3QgRklBIGluc3RhbmNlIHRoYXQgaG91c2VzIHRoZSBUeXBlLUMgUG9y dCAwIGFuZCBQb3J0IDEsIGZvcgo+ID4+IERpc3BsYXkgRHJpdmVyIHRvIHJlYWQgZnJvbS4KPiA+ Pgo+ID4+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ID4+IFNpZ25l ZC1vZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ PiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNv bT4KPiA+PiAtLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGku YyAgICAgfCAgOSArKysrLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5jIHwgMjcgKysrKysrKysrKysrKysrKysrKysKPiA+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmggfCAgNiArKysrKwo+ID4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICB8IDI1ICsrKysrKysrKysrKy0t LS0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICB8 IDEzICsrKysrKystLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2lu Zm8uaCAgICAgfCAgMSArCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg ICAgICAgICAgIHwgIDIgKysKPiA+PiAgNyBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCsp LCAxNSBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kZGkuYwo+ID4+IGluZGV4IDc5MjVhMTc2ZjkwMC4uYjcxNzU2MmZjY2U1IDEwMDY0NAo+ ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gPj4gQEAgLTI5 OTcsNiArMjk5Nyw3IEBAIHN0YXRpYyB2b2lkIGljbF9wcm9ncmFtX21nX2RwX21vZGUoc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gPj4gIAllbnVtIHBvcnQgcG9y dCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gPj4gIAllbnVtIHRjX3BvcnQgdGNfcG9y dCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOwo+ID4+ICAJdTMyIGxuMCwgbG4x LCBsYW5lX2luZm87Cj4gPj4gKwllbnVtIGRpc3BsYXlfZmlhIGZpYTsKPiA+Cj4gPkNhbiB3ZSBz dGljayB0aGlzIGludG8gdGhlIG5ldyBlbnVtIHBoeSBuYW1lc3BhY2Ugd2UncmUgZ29pbmcgdG8g bmVlZAo+ID5hbnl3YXkgZm9yIGVobD8KPiAKPiBlYWNoIG1vZHVsYXIgRklBIG1hcHMgdXAgdG8g MiBwaHlzIChhcyBvcHBvc2VkIHRvIElDTCdzIEZJQSB0aGF0IGhhcyA0Cj4gcGh5cykuIEkgZG9u J3QgdGhpbmsgaXQgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGVudW0gbmFtZXNwYWNlLgoKSG1tLiBJ J20gdGhpbmtpbmcgSSdsbCBwcm9iYWJseSBkbyB0aGF0IGZvciB2bHYvY2h2IHdoZXJlIGVhY2gg UEhZCmhhcyB0d28gY2hhbm5lbHMuIFNvIGtpbmRhIHRoZSBzYW1lIHRoaW5nIHRoZXJlLiBCdXQg aGFyZCB0byByZWFsbHkKanVkZ2UgYmVmb3JlIHRyeWluZyBJIGd1ZXNzLgoKPiAKPiBZZXMsIHdp dGggcGF0Y2gKPiAiZHJtL2k5MTUvZ2VuMTE6IFN0YXJ0IGRpc3Rpbmd1aXNoaW5nICdwaHknIGZy b20gJ3BvcnQnIiBtZXJnZWQgd2UKPiBzaG91bGQgcmF0aGVyIGRvIHRoZSBwaHkgLT4gZmlhIG1h cHBpbmcgaGVyZSBhbmQgaXQgY291bGQgYmUgYXMgc2ltcGxlCj4gYXMgYHBoeSAvIDJgLgo+IAo+ IEkgd291bGQgcmF0aGVyIG1lcmdlIHRoaXMgYXMgaXMgYW5kIGNvbnZlcnQgaXQgd2hlbiB0aGF0 IHBhdGNoIGlzCj4gYXBwbGllZC4gQWxzbywgdGhhdCBzZXJpZXMgaXMgc3RpbGwgbWlzc2luZyB0 aGUgY29udmVyc2lvbiBmb3IgVEMgc2luY2UKPiBFSEwgaGFzIG9ubHkgY29tYm8gcGh5cy4gVGhp cyBvbmUgaXMgYWJvdXQgVEMuCj4gCj4gT25jZSB0aGF0IHNlcmllcyBpcyBtZXJnZWQgYW5kIGFs c28gdGhlIHBlbmRpbmcgb25lIGZyb20gSW1yZSB0bwo+IHNlcGFyYXRlIHRoZSBUQyBoYW5kbGlu ZywgSSBjYW4gcmV3b3JrIHRoaXMuCj4gCj4gCj4gTHVjYXMgRGUgTWFyY2hpCj4gCj4gPgo+ID4+ Cj4gPj4gIAlpZiAodGNfcG9ydCA9PSBQT1JUX1RDX05PTkUgfHwgaW50ZWxfZGlnX3BvcnQtPnRj X3R5cGUgPT0gVENfUE9SVF9UQlQpCj4gPj4gIAkJcmV0dXJuOwo+ID4+IEBAIC0zMDA5LDcgKzMw MTAsOCBAQCBzdGF0aWMgdm9pZCBpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+ID4+ICAJCWxuMCAmPSB+KE1HX0RQX01PREVf Q0ZHX0RQX1gxX01PREUgfCBNR19EUF9NT0RFX0NGR19EUF9YMl9NT0RFKTsKPiA+PiAgCQlsbjEg Jj0gfihNR19EUF9NT0RFX0NGR19EUF9YMV9NT0RFIHwgTUdfRFBfTU9ERV9DRkdfRFBfWDJfTU9E RSk7Cj4gPj4KPiA+PiAtCQlsYW5lX2luZm8gPSAoSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQ KSAmCj4gPj4gKwkJZmlhID0gaW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYsIHRjX3BvcnQp Owo+ID4+ICsJCWxhbmVfaW5mbyA9IChJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1AoZmlhKSkg Jgo+ID4+ICAJCQkgICAgIERQX0xBTkVfQVNTSUdOTUVOVF9NQVNLKHRjX3BvcnQpKSA+Pgo+ID4+ ICAJCQkgICAgRFBfTEFORV9BU1NJR05NRU5UX1NISUZUKHRjX3BvcnQpOwo+ID4+Cj4gPj4gQEAg LTM1OTgsNyArMzYwMCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9zZXRfZmlhX2xhbmVfY291 bnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+PiAgCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNv ZGVyLT5iYXNlKTsKPiA+PiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190 YyhkZXZfcHJpdiwgcG9ydCk7Cj4gPj4gLQl1MzIgdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZM RVhEUE1MRTEpOwo+ID4+ICsJZW51bSBkaXNwbGF5X2ZpYSBmaWEgPSBpbnRlbF90Y19wb3J0X3Rv X2ZpYShkZXZfcHJpdiwgdGNfcG9ydCk7Cj4gPj4gKwl1MzIgdmFsID0gSTkxNV9SRUFEKFBPUlRf VFhfREZMRVhEUE1MRTEoZmlhKSk7Cj4gPj4gIAlib29sIGxhbmVfcmV2ZXJzYWwgPSBkaWdfcG9y dC0+c2F2ZWRfcG9ydF9iaXRzICYgRERJX0JVRl9QT1JUX1JFVkVSU0FMOwo+ID4+Cj4gPj4gIAl2 YWwgJj0gfkRGTEVYRFBNTEUxX0RQTUxFVENfTUFTSyh0Y19wb3J0KTsKPiA+PiBAQCAtMzYxNyw3 ICszNjIwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3NldF9maWFfbGFuZV9jb3VudChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+PiAgCWRlZmF1bHQ6Cj4gPj4gIAkJTUlTU0lO R19DQVNFKHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KTsKPiA+PiAgCX0KPiA+PiAtCUk5MTVfV1JJ VEUoUE9SVF9UWF9ERkxFWERQTUxFMSwgdmFsKTsKPiA+PiArCUk5MTVfV1JJVEUoUE9SVF9UWF9E RkxFWERQTUxFMShmaWEpLCB2YWwpOwo+ID4+ICB9Cj4gPj4KPiA+PiAgc3RhdGljIHZvaWQKPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4+IGlu ZGV4IDg1OTJhN2Q0MjJkZS4uNjIxN2I1YmNlYTJhIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBAQCAtNjU5MCw2ICs2NTkw LDMzIEBAIGVudW0gdGNfcG9ydCBpbnRlbF9wb3J0X3RvX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gPj4gIAlyZXR1cm4gcG9ydCAtIFBPUlRf QzsKPiA+PiAgfQo+ID4+Cj4gPj4gK3N0YXRpYyBib29sIGludGVsX2hhc19tb2R1bGFyX2ZpYShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gK3sKPiA+PiArCWlmICghSU5U RUxfSU5GTyhkZXZfcHJpdiktPmRpc3BsYXkuaGFzX21vZHVsYXJfZmlhKQo+ID4+ICsJCXJldHVy biBmYWxzZTsKPiA+PiArCj4gPj4gKwlyZXR1cm4gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQ KEZJQV8xKSkgJiBNT0RVTEFSX0ZJQV9NQVNLOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtlbnVtIGRp c3BsYXlfZmlhIGludGVsX3RjX3BvcnRfdG9fZmlhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+PiArCQkJCSAgICAgIGVudW0gdGNfcG9ydCB0Y19wb3J0KQo+ID4+ICt7Cj4g Pj4gKwlpZiAoIWludGVsX2hhc19tb2R1bGFyX2ZpYShkZXZfcHJpdikpCj4gPj4gKwkJcmV0dXJu IEZJQV8xOwo+ID4+ICsKPiA+PiArCXN3aXRjaCAodGNfcG9ydCkgewo+ID4+ICsJY2FzZSBQT1JU X1RDMToKPiA+PiArCWNhc2UgUE9SVF9UQzI6Cj4gPj4gKwkJcmV0dXJuIEZJQV8xOwo+ID4+ICsJ Y2FzZSBQT1JUX1RDMzoKPiA+PiArCWNhc2UgUE9SVF9UQzQ6Cj4gPj4gKwkJcmV0dXJuIEZJQV8y Owo+ID4+ICsJZGVmYXVsdDoKPiA+PiArCQlXQVJOX09OKHRjX3BvcnQpOwo+ID4+ICsJCXJldHVy biBGSUFfMTsKPiA+PiArCX0KPiA+PiArfQo+ID4+ICsKPiA+PiAgZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbiBpbnRlbF9wb3J0X3RvX3Bvd2VyX2RvbWFpbihlbnVtIHBvcnQgcG9ydCkK PiA+PiAgewo+ID4+ICAJc3dpdGNoIChwb3J0KSB7Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgKPiA+PiBpbmRleCBlZTZiODE5NGE0NTkuLjEyZGVk MDFlZDVkMyAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuaAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5oCj4gPj4gQEAgLTE5Niw2ICsxOTYsMTIgQEAgZW51bSB0Y19wb3J0X3R5cGUg ewo+ID4+ICAJVENfUE9SVF9MRUdBQ1ksCj4gPj4gIH07Cj4gPj4KPiA+PiArZW51bSBkaXNwbGF5 X2ZpYSB7Cj4gPj4gKwlGSUFfMSA9IDAsCj4gPj4gKwlGSUFfMiwKPiA+PiArCUZJQV8zLAo+ID4+ ICt9Owo+ID4+ICsKPiA+PiAgZW51bSBkcGlvX2NoYW5uZWwgewo+ID4+ICAJRFBJT19DSDAsCj4g Pj4gIAlEUElPX0NIMQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMK PiA+PiBpbmRleCA0MzM2ZGY0NmZlNzguLjVlZDZlNDlmZWYzMyAxMDA2NDQKPiA+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+PiBAQCAtMjE4LDEzICsyMTgsMTUg QEAgc3RhdGljIGludCBpbnRlbF9kcF9nZXRfZmlhX3N1cHBvcnRlZF9sYW5lX2NvdW50KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVs X3BvcnRfdG9fdGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOwo+ID4+ICAJaW50ZWxf d2FrZXJlZl90IHdha2VyZWY7Cj4gPj4gIAl1MzIgbGFuZV9pbmZvOwo+ID4+ICsJZW51bSBkaXNw bGF5X2ZpYSBmaWE7Cj4gPj4KPiA+PiAgCWlmICh0Y19wb3J0ID09IFBPUlRfVENfTk9ORSB8fCBk aWdfcG9ydC0+dGNfdHlwZSAhPSBUQ19QT1JUX1RZUEVDKQo+ID4+ICAJCXJldHVybiA0Owo+ID4+ Cj4gPj4gKwlmaWEgID0gaW50ZWxfdGNfcG9ydF90b19maWEoZGV2X3ByaXYsIHRjX3BvcnQpOwo+ ID4+ICAJbGFuZV9pbmZvID0gMDsKPiA+PiAgCXdpdGhfaW50ZWxfZGlzcGxheV9wb3dlcihkZXZf cHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwgd2FrZXJlZikKPiA+PiAtCQlsYW5lX2lu Zm8gPSAoSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKSAmCj4gPj4gKwkJbGFuZV9pbmZvID0g KEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBTUChmaWEpKSAmCj4gPj4gIAkJCSAgICAgRFBfTEFO RV9BU1NJR05NRU5UX01BU0sodGNfcG9ydCkpID4+Cj4gPj4gIAkJCQlEUF9MQU5FX0FTU0lHTk1F TlRfU0hJRlQodGNfcG9ydCk7Cj4gPj4KPiA+PiBAQCAtNTMwMCwxMiArNTMwMiwxNCBAQCBzdGF0 aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ID4+ICB7Cj4gPj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9f dGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOwo+ID4+ICAJdTMyIHZhbDsKPiA+PiAr CWVudW0gZGlzcGxheV9maWEgZmlhOwo+ID4+Cj4gPj4gIAlpZiAoZGlnX3BvcnQtPnRjX3R5cGUg IT0gVENfUE9SVF9MRUdBQ1kgJiYKPiA+PiAgCSAgICBkaWdfcG9ydC0+dGNfdHlwZSAhPSBUQ19Q T1JUX1RZUEVDKQo+ID4+ICAJCXJldHVybiB0cnVlOwo+ID4+Cj4gPj4gLQl2YWwgPSBJOTE1X1JF QUQoUE9SVF9UWF9ERkxFWERQUE1TKTsKPiA+PiArCWZpYSA9IGludGVsX3RjX3BvcnRfdG9fZmlh KGRldl9wcml2LCB0Y19wb3J0KTsKPiA+PiArCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVY RFBQTVMoZmlhKSk7Cj4gPj4gIAlpZiAoISh2YWwgJiBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExF VEVEKHRjX3BvcnQpKSkgewo+ID4+ICAJCURSTV9ERUJVR19LTVMoIkRQIFBIWSBmb3IgVEMgcG9y dCAlZCBub3QgcmVhZHlcbiIsIHRjX3BvcnQpOwo+ID4+ICAJCVdBUk5fT04oZGlnX3BvcnQtPnRj X2xlZ2FjeV9wb3J0KTsKPiA+PiBAQCAtNTMxNiwxMCArNTMyMCwxMCBAQCBzdGF0aWMgYm9vbCBp Y2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ ICAJICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG1hbnkgdGltZXMgaW4gYSByb3cgd2l0 aG91dCBhbiBIUEQgZXZlbnQKPiA+PiAgCSAqIGluIGJldHdlZW4sIHNvIHRyeSB0byBhdm9pZCB0 aGUgd3JpdGUgd2hlbiB3ZSBjYW4uCj4gPj4gIAkgKi8KPiA+PiAtCXZhbCA9IEk5MTVfUkVBRChQ T1JUX1RYX0RGTEVYRFBDU1NTKTsKPiA+PiArCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVY RFBDU1NTKGZpYSkpOwo+ID4+ICAJaWYgKCEodmFsICYgRFBfUEhZX01PREVfU1RBVFVTX05PVF9T QUZFKHRjX3BvcnQpKSkgewo+ID4+ICAJCXZhbCB8PSBEUF9QSFlfTU9ERV9TVEFUVVNfTk9UX1NB RkUodGNfcG9ydCk7Cj4gPj4gLQkJSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBDU1NTLCB2YWwp Owo+ID4+ICsJCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQQ1NTUyhmaWEpLCB2YWwpOwo+ID4+ ICAJfQo+ID4+Cj4gPj4gIAkvKgo+ID4+IEBAIC01MzI3LDcgKzUzMzEsNyBAQCBzdGF0aWMgYm9v bCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4+ICAJICogYmVjYW1lIGRpc2Nvbm5lY3RlZC4gTm90IG5lY2Vzc2FyeSBmb3IgbGVnYWN5IG1v ZGUuCj4gPj4gIAkgKi8KPiA+PiAgCWlmIChkaWdfcG9ydC0+dGNfdHlwZSA9PSBUQ19QT1JUX1RZ UEVDICYmCj4gPj4gLQkgICAgIShJOTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQU1ApICYgVENfTElW RV9TVEFURV9UQyh0Y19wb3J0KSkpIHsKPiA+PiArCSAgICAhKEk5MTVfUkVBRChQT1JUX1RYX0RG TEVYRFBTUChmaWEpKSAmIFRDX0xJVkVfU1RBVEVfVEModGNfcG9ydCkpKSB7Cj4gPj4gIAkJRFJN X0RFQlVHX0tNUygiVEMgUEhZICVkIHN1ZGRlbiBkaXNjb25uZWN0LlxuIiwgdGNfcG9ydCk7Cj4g Pj4gIAkJaWNsX3RjX3BoeV9kaXNjb25uZWN0KGRldl9wcml2LCBkaWdfcG9ydCk7Cj4gPj4gIAkJ cmV0dXJuIGZhbHNlOwo+ID4+IEBAIC01MzQ0LDEwICs1MzQ4LDEzIEBAIHZvaWQgaWNsX3RjX3Bo eV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCQkJ ICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gPj4gIHsKPiA+PiAgCWVu dW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQt PmJhc2UucG9ydCk7Cj4gPj4gKwllbnVtIGRpc3BsYXlfZmlhIGZpYTsKPiA+Pgo+ID4+ICAJaWYg KGRpZ19wb3J0LT50Y190eXBlID09IFRDX1BPUlRfVU5LTk9XTikKPiA+PiAgCQlyZXR1cm47Cj4g Pj4KPiA+PiArCWZpYSA9IGludGVsX3RjX3BvcnRfdG9fZmlhKGRldl9wcml2LCB0Y19wb3J0KTsK PiA+PiArCj4gPj4gIAkvKgo+ID4+ICAJICogVEJUIGRpc2Nvbm5lY3Rpb24gZmxvdyBpcyByZWFk IHRoZSBsaXZlIHN0YXR1cywgd2hhdCB3YXMgZG9uZSBpbgo+ID4+ICAJICogY2FsbGVyLgo+ID4+ IEBAIC01MzU2LDkgKzUzNjMsOSBAQCB2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4gIAkgICAgZGlnX3BvcnQtPnRjX3R5cGUg PT0gVENfUE9SVF9MRUdBQ1kpIHsKPiA+PiAgCQl1MzIgdmFsOwo+ID4+Cj4gPj4gLQkJdmFsID0g STkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUENTU1MpOwo+ID4+ICsJCXZhbCA9IEk5MTVfUkVBRChQ T1JUX1RYX0RGTEVYRFBDU1NTKGZpYSkpOwo+ID4+ICAJCXZhbCAmPSB+RFBfUEhZX01PREVfU1RB VFVTX05PVF9TQUZFKHRjX3BvcnQpOwo+ID4+IC0JCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQ Q1NTUywgdmFsKTsKPiA+PiArCQlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUENTU1MoZmlhKSwg dmFsKTsKPiA+PiAgCX0KPiA+Pgo+ID4+ICAJRFJNX0RFQlVHX0tNUygiUG9ydCAlYyBUQyB0eXBl ICVzIGRpc2Nvbm5lY3RlZFxuIiwKPiA+PiBAQCAtNTM4Myw2ICs1MzkwLDcgQEAgc3RhdGljIGJv b2wgaWNsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiA+PiAgewo+ID4+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5w b3J0Owo+ID4+ICAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9w cml2LCBwb3J0KTsKPiA+PiArCWVudW0gZGlzcGxheV9maWEgZmlhID0gaW50ZWxfdGNfcG9ydF90 b19maWEoZGV2X3ByaXYsIHRjX3BvcnQpOwo+ID4+ICAJYm9vbCBpc19sZWdhY3ksIGlzX3R5cGVj LCBpc190YnQ7Cj4gPj4gIAl1MzIgZHBzcDsKPiA+Pgo+ID4+IEBAIC01NDAyLDcgKzU0MTAsOCBA QCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4+ICAJICogVGhlIHNwZWMgc2F5cyB3ZSBzaG91bGRuJ3QgYmUgdXNp bmcgdGhlIElTUiBiaXRzIGZvciBkZXRlY3RpbmcKPiA+PiAgCSAqIGJldHdlZW4gVEMgYW5kIFRC VC4gV2Ugc2hvdWxkIHVzZSBERkxFWERQU1AuCj4gPj4gIAkgKi8KPiA+PiAtCWRwc3AgPSBJOTE1 X1JFQUQoUE9SVF9UWF9ERkxFWERQU1ApOwo+ID4+ICsKPiA+PiArCWRwc3AgPSBJOTE1X1JFQUQo UE9SVF9UWF9ERkxFWERQU1AoZmlhKSk7Cj4gPj4gIAlpc190eXBlYyA9IGRwc3AgJiBUQ19MSVZF X1NUQVRFX1RDKHRjX3BvcnQpOwo+ID4+ICAJaXNfdGJ0ID0gZHBzcCAmIFRDX0xJVkVfU1RBVEVf VEJUKHRjX3BvcnQpOwo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4gaW5kZXgg N2U2MDA5Y2VmYjE4Li44MDQ3ZjFiZWQzMTQgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+PiBAQCAtMjIwMSw5ICsyMjAxLDEzIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lk IHsKPiA+PiAgI2RlZmluZSAgIERXNl9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyOCkKPiA+ Pgo+ID4+ICAjZGVmaW5lIEZJQTFfQkFTRQkJCTB4MTYzMDAwCj4gPj4gKyNkZWZpbmUgRklBMl9C QVNFCQkJMHgxNkUwMDAKPiA+PiArI2RlZmluZSBGSUEzX0JBU0UJCQkweDE2RjAwMAo+ID4+ICsj ZGVmaW5lIF9GSUEoZmlhKQkJCV9QSUNLKChmaWEpLCBGSUExX0JBU0UsIEZJQTJfQkFTRSwgRklB M19CQVNFKQo+ID4+ICsjZGVmaW5lIF9NTUlPX0ZJQShmaWEsIG9mZikJCV9NTUlPKF9GSUEoZmlh KSArIChvZmYpKQo+ID4+Cj4gPj4gIC8qIElDTCBQSFkgREZMRVggcmVnaXN0ZXJzICovCj4gPj4g LSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQTUxFMQkJX01NSU8oRklBMV9CQVNFICsgMHgwMDhDMCkK PiA+PiArI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBNTEUxKGZpYSkJX01NSU9fRklBKChmaWEpLCAg MHgwMDhDMCkKPiA+PiAgI2RlZmluZSAgIERGTEVYRFBNTEUxX0RQTUxFVENfTUFTSyh0Y19wb3J0 KQkoMHhmIDw8ICg0ICogKHRjX3BvcnQpKSkKPiA+PiAgI2RlZmluZSAgIERGTEVYRFBNTEUxX0RQ TUxFVENfTUwwKHRjX3BvcnQpCSgxIDw8ICg0ICogKHRjX3BvcnQpKSkKPiA+PiAgI2RlZmluZSAg IERGTEVYRFBNTEUxX0RQTUxFVENfTUwxXzAodGNfcG9ydCkJKDMgPDwgKDQgKiAodGNfcG9ydCkp KQo+ID4+IEBAIC0xMTQ2MSwxNyArMTE0NjUsMTggQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4g Pj4gIAkJCQkJCV9JQ0xfRFNDMV9SQ19CVUZfVEhSRVNIXzFfVURXX1BCLCBcCj4gPj4gIAkJCQkJ CV9JQ0xfRFNDMV9SQ19CVUZfVEhSRVNIXzFfVURXX1BDKQo+ID4+Cj4gPj4gLSNkZWZpbmUgUE9S VF9UWF9ERkxFWERQU1AJCQlfTU1JTyhGSUExX0JBU0UgKyAweDAwOEEwKQo+ID4+ICsjZGVmaW5l IFBPUlRfVFhfREZMRVhEUFNQKGZpYSkJCQlfTU1JT19GSUEoKGZpYSksIDB4MDA4QTApCj4gPj4g KyNkZWZpbmUgICBNT0RVTEFSX0ZJQV9NQVNLCQkJKDEgPDwgNCkKPiA+PiAgI2RlZmluZSAgIFRD X0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpCQkoMSA8PCAoKHRjX3BvcnQpICogOCArIDYpKQo+ID4+ ICAjZGVmaW5lICAgVENfTElWRV9TVEFURV9UQyh0Y19wb3J0KQkJKDEgPDwgKCh0Y19wb3J0KSAq IDggKyA1KSkKPiA+PiAgI2RlZmluZSAgIERQX0xBTkVfQVNTSUdOTUVOVF9TSElGVCh0Y19wb3J0 KQkoKHRjX3BvcnQpICogOCkKPiA+PiAgI2RlZmluZSAgIERQX0xBTkVfQVNTSUdOTUVOVF9NQVNL KHRjX3BvcnQpCSgweGYgPDwgKCh0Y19wb3J0KSAqIDgpKQo+ID4+ICAjZGVmaW5lICAgRFBfTEFO RV9BU1NJR05NRU5UKHRjX3BvcnQsIHgpCSgoeCkgPDwgKCh0Y19wb3J0KSAqIDgpKQo+ID4+Cj4g Pj4gLSNkZWZpbmUgUE9SVF9UWF9ERkxFWERQUE1TCQkJCV9NTUlPKEZJQTFfQkFTRSArIDB4MDA4 OTApCj4gPj4gKyNkZWZpbmUgUE9SVF9UWF9ERkxFWERQUE1TKGZpYSkJCQlfTU1JT19GSUEoKGZp YSksIDB4MDA4OTApCj4gPj4gICNkZWZpbmUgICBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVE KHRjX3BvcnQpCQkoMSA8PCAodGNfcG9ydCkpCj4gPj4KPiA+PiAtI2RlZmluZSBQT1JUX1RYX0RG TEVYRFBDU1NTCQkJX01NSU8oRklBMV9CQVNFICsgMHgwMDg5NCkKPiA+PiArI2RlZmluZSBQT1JU X1RYX0RGTEVYRFBDU1NTKGZpYSkJCV9NTUlPX0ZJQSgoZmlhKSwgMHgwMDg5NCkKPiA+PiAgI2Rl ZmluZSAgIERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0KQkJKDEgPDwgKHRjX3Bv cnQpKQo+ID4+Cj4gPj4gICNlbmRpZiAvKiBfSTkxNV9SRUdfSF8gKi8KPiA+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+PiBpbmRleCBkZGFmYzgxOWJmMzAuLmU5 ZGM4NmVkNTE3YiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNl X2luZm8uaAo+ID4+IEBAIC0xMzYsNiArMTM2LDcgQEAgZW51bSBpbnRlbF9wcGd0dF90eXBlIHsK PiA+PiAgCWZ1bmMoaGFzX2dtY2gpOyBcCj4gPj4gIAlmdW5jKGhhc19ob3RwbHVnKTsgXAo+ID4+ ICAJZnVuYyhoYXNfaXBjKTsgXAo+ID4+ICsJZnVuYyhoYXNfbW9kdWxhcl9maWEpOyBcCj4gPj4g IAlmdW5jKGhhc19vdmVybGF5KTsgXAo+ID4+ICAJZnVuYyhoYXNfcHNyKTsgXAo+ID4+ICAJZnVu YyhvdmVybGF5X25lZWRzX3BoeXNpY2FsKTsgXAo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPj4gaW5kZXggMWQ1OGY3ZWM1ZDg0Li5lMzBjYjRiZTQ5OTcgMTAwNjQ0Cj4gPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+IEBAIC0xNDc3LDYgKzE0NzcsOCBAQCBib29sIGludGVs X3BvcnRfaXNfY29tYm9waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVt IHBvcnQgcG9ydCk7Cj4gPj4gIGJvb2wgaW50ZWxfcG9ydF9pc190YyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKPiA+PiAgZW51bSB0Y19wb3J0IGlu dGVsX3BvcnRfdG9fdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ICAJ CQkgICAgICBlbnVtIHBvcnQgcG9ydCk7Cj4gPj4gK2VudW0gZGlzcGxheV9maWEgaW50ZWxfdGNf cG9ydF90b19maWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ICsJCQkJ ICAgICAgZW51bSB0Y19wb3J0IHRjX3BvcnQpOwo+ID4+ICBpbnQgaW50ZWxfZ2V0X3BpcGVfZnJv bV9jcnRjX2lkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4g IAkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gPj4gIGVudW0gdHJhbnNj b2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+PiAtLQo+ID4+IDIuMjEuMAo+ID4+Cj4gPj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4gPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPgo+ID4tLSAK PiA+VmlsbGUgU3lyasOkbMOkCj4gPkludGVsCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==