From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 14/23] drm/i915/tgl: move DP_TP_* to transcoder Date: Fri, 23 Aug 2019 15:25:18 +0300 Message-ID: <20190823122518.GR5942@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> <20190823082055.5992-15-lucas.demarchi@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 C2BAF6EC7E for ; Fri, 23 Aug 2019 12:25:22 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190823082055.5992-15-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 T24gRnJpLCBBdWcgMjMsIDIwMTkgYXQgMDE6MjA6NDZBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IEdlbiAxMiBvbndhcmRzIG1vdmVzIHRoZSBEUF9UUF8qIHJlZ2lzdGVycyB0byBi ZSB0cmFuc2NvZGVyLWJhc2VkIHJhdGhlcgo+IHRoYW4gcG9ydC1iYXNlZC4gVGhpcyBhZGQgdGhl IG5ldyByZWdpc3RlciBhZGRyZXNzIGFuZCBjaGFuZ2VzIHRoZQo+IGZ1bmN0aW9ucyB0aGF0IGFy ZSB1c2VkIHdpdGggRERJIG9uIGdlbiAxMiB0byB1c2UgdGhlIG5ldyByZWdpc3RlcnMuIE9uCj4g TVNUIHRoZSBtYXN0ZXIgdHJhbnNjb2RlciBpcyB0aGUgb25lIHRvIGJlIHVzZWQuCj4gCj4gQ2M6 IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTHVjYXMgRGUg TWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgICB8IDQyICsrKysrKysrLS0tLQo+ICAuLi4v ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgMSArCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAgICAgICB8IDY2ICsrKysrKysrKysr KysrKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oICAgICAg IHwgIDkgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMg ICB8IDIwICsrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAg ICAgICAgfCAgNCArKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAyMyBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMK PiBpbmRleCBmNGNiNmJkNzQ0MjEuLjNlYjczZGJhZjlmZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+IEBAIC0zMTM2LDE3ICszMTM2LDIyIEBAIHN0YXRp YyB2b2lkIGludGVsX2RkaV9lbmFibGVfZmVjKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICAJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiArCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3Rh dGUtPmNwdV90cmFuc2NvZGVyOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ ICsJaTkxNV9yZWdfdCBjdGwsIHN0YXR1czsKPiAgCXUzMiB2YWw7Cj4gIAo+ICAJaWYgKCFjcnRj X3N0YXRlLT5mZWNfZW5hYmxlKQo+ICAJCXJldHVybjsKPiAgCj4gLQl2YWwgPSBJOTE1X1JFQUQo RFBfVFBfQ1RMKHBvcnQpKTsKPiArCWN0bCA9IGludGVsX2RwX3RwX2N0bF9yZWcoZGV2X3ByaXYs IGNwdV90cmFuc2NvZGVyLCBwb3J0KTsKPiArCXN0YXR1cyA9IGludGVsX2RwX3RwX3N0YXR1c19y ZWcoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KTsKPiArCj4gKwl2YWwgPSBJOTE1X1JF QUQoY3RsKTsKPiAgCXZhbCB8PSBEUF9UUF9DVExfRkVDX0VOQUJMRTsKPiAtCUk5MTVfV1JJVEUo RFBfVFBfQ1RMKHBvcnQpLCB2YWwpOwo+ICsJSTkxNV9XUklURShjdGwsIHZhbCk7Cj4gIAo+IC0J aWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRFBfVFBfU1RBVFVTKHBvcnQpLAo+ ICsJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgc3RhdHVzLAo+ICAJCQkJICBE UF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFLCAxKSkKPiAgCQlEUk1fRVJST1IoIlRpbWVkIG91 dCB3YWl0aW5nIGZvciBGRUMgRW5hYmxlIFN0YXR1c1xuIik7Cj4gIH0KPiBAQCAtMzE1NSwxNiAr MzE2MCwxOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9mZWNfc3RhdGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsJZW51bSB0cmFuc2NvZGVyIGNw dV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAllbnVtIHBvcnQg cG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gKwlpOTE1X3JlZ190IGN0bDsKPiAgCXUzMiB2YWw7Cj4g IAo+ICAJaWYgKCFjcnRjX3N0YXRlLT5mZWNfZW5hYmxlKQo+ICAJCXJldHVybjsKPiAgCj4gLQl2 YWwgPSBJOTE1X1JFQUQoRFBfVFBfQ1RMKHBvcnQpKTsKPiArCWN0bCA9IGludGVsX2RwX3RwX2N0 bF9yZWcoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KTsKPiArCXZhbCA9IEk5MTVfUkVB RChjdGwpOwo+ICAJdmFsICY9IH5EUF9UUF9DVExfRkVDX0VOQUJMRTsKPiAtCUk5MTVfV1JJVEUo RFBfVFBfQ1RMKHBvcnQpLCB2YWwpOwo+IC0JUE9TVElOR19SRUFEKERQX1RQX0NUTChwb3J0KSk7 Cj4gKwlJOTE1X1dSSVRFKGN0bCwgdmFsKTsKPiArCVBPU1RJTkdfUkVBRChjdGwpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiBAQCAtMzMyNiw3ICszMzM0LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZGlzYWJsZV9kZGlfYnVmKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJh bnNjb2RlcjsKPiAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiArCWk5MTVfcmVn X3QgY3RsOwo+ICAJYm9vbCB3YWl0ID0gZmFsc2U7Cj4gIAl1MzIgdmFsOwo+ICAKPiBAQCAtMzMz NywxMCArMzM0NywxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9idWYoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJd2FpdCA9IHRydWU7Cj4gIAl9Cj4gIAo+IC0J dmFsID0gSTkxNV9SRUFEKERQX1RQX0NUTChwb3J0KSk7Cj4gKwljdGwgPSBpbnRlbF9kcF90cF9j dGxfcmVnKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgcG9ydCk7Cj4gKwl2YWwgPSBJOTE1X1JF QUQoY3RsKTsKPiAgCXZhbCAmPSB+KERQX1RQX0NUTF9FTkFCTEUgfCBEUF9UUF9DVExfTElOS19U UkFJTl9NQVNLKTsKPiAgCXZhbCB8PSBEUF9UUF9DVExfTElOS19UUkFJTl9QQVQxOwo+IC0JSTkx NV9XUklURShEUF9UUF9DVEwocG9ydCksIHZhbCk7Cj4gKwlJOTE1X1dSSVRFKGN0bCwgdmFsKTsK PiAgCj4gIAkvKiBEaXNhYmxlIEZFQyBpbiBEUCBTaW5rICovCj4gIAlpbnRlbF9kZGlfZGlzYWJs ZV9mZWNfc3RhdGUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gQEAgLTM3NjUsMTAgKzM3NzYsMTMg QEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZXBhcmVfbGlua19yZXRyYWluKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ ICAJCXRvX2k5MTUoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICAJZW51bSBwb3J0 IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0Owo+ICsJaTkxNV9yZWdfdCBjdGw7Cj4g IAl1MzIgdmFsOwo+ICAJYm9vbCB3YWl0ID0gZmFsc2U7Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1 X3RyYW5zY29kZXIgPSBpbnRlbF9kcF9nZXRfdHJhbnNjb2RlcihpbnRlbF9kcCk7Cj4gIAo+IC0J aWYgKEk5MTVfUkVBRChEUF9UUF9DVEwocG9ydCkpICYgRFBfVFBfQ1RMX0VOQUJMRSkgewo+ICsJ Y3RsID0gaW50ZWxfZHBfdHBfY3RsX3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQp Owo+ICsJaWYgKEk5MTVfUkVBRChjdGwpICYgRFBfVFBfQ1RMX0VOQUJMRSkgewo+ICAJCXZhbCA9 IEk5MTVfUkVBRChERElfQlVGX0NUTChwb3J0KSk7Cj4gIAkJaWYgKHZhbCAmIERESV9CVUZfQ1RM X0VOQUJMRSkgewo+ICAJCQl2YWwgJj0gfkRESV9CVUZfQ1RMX0VOQUJMRTsKPiBAQCAtMzc3Niwx MSArMzc5MCwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlcGFyZV9saW5rX3JldHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQkJd2FpdCA9IHRydWU7Cj4gIAkJfQo+ICAK PiAtCQl2YWwgPSBJOTE1X1JFQUQoRFBfVFBfQ1RMKHBvcnQpKTsKPiArCQl2YWwgPSBJOTE1X1JF QUQoY3RsKTsKPiAgCQl2YWwgJj0gfihEUF9UUF9DVExfRU5BQkxFIHwgRFBfVFBfQ1RMX0xJTktf VFJBSU5fTUFTSyk7Cj4gIAkJdmFsIHw9IERQX1RQX0NUTF9MSU5LX1RSQUlOX1BBVDE7Cj4gLQkJ STkxNV9XUklURShEUF9UUF9DVEwocG9ydCksIHZhbCk7Cj4gLQkJUE9TVElOR19SRUFEKERQX1RQ X0NUTChwb3J0KSk7Cj4gKwkJSTkxNV9XUklURShjdGwsIHZhbCk7Cj4gKwkJUE9TVElOR19SRUFE KGN0bCk7Cj4gIAo+ICAJCWlmICh3YWl0KQo+ICAJCQlpbnRlbF93YWl0X2RkaV9idWZfaWRsZShk ZXZfcHJpdiwgcG9ydCk7Cj4gQEAgLTM3OTUsOCArMzgwOSw4IEBAIHN0YXRpYyB2b2lkIGludGVs X2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJ CWlmIChkcm1fZHBfZW5oYW5jZWRfZnJhbWVfY2FwKGludGVsX2RwLT5kcGNkKSkKPiAgCQkJdmFs IHw9IERQX1RQX0NUTF9FTkhBTkNFRF9GUkFNRV9FTkFCTEU7Cj4gIAl9Cj4gLQlJOTE1X1dSSVRF KERQX1RQX0NUTChwb3J0KSwgdmFsKTsKPiAtCVBPU1RJTkdfUkVBRChEUF9UUF9DVEwocG9ydCkp Owo+ICsJSTkxNV9XUklURShjdGwsIHZhbCk7Cj4gKwlQT1NUSU5HX1JFQUQoY3RsKTsKPiAgCj4g IAlpbnRlbF9kcC0+RFAgfD0gRERJX0JVRl9DVExfRU5BQkxFOwo+ICAJSTkxNV9XUklURShERElf QlVGX0NUTChwb3J0KSwgaW50ZWxfZHAtPkRQKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+IGluZGV4IGQ4NGE2NjQ1OWRhZi4u YTg3ZmEwNjk5NGFkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiBAQCAtMTIxNCw2ICsxMjE0LDcgQEAgc3RydWN0IGlu dGVsX2RwIHsKPiAgCWJvb2wgY2FuX21zdDsgLyogdGhpcyBwb3J0IHN1cHBvcnRzIG1zdCAqLwo+ ICAJYm9vbCBpc19tc3Q7Cj4gIAlpbnQgYWN0aXZlX21zdF9saW5rczsKPiArCWVudW0gdHJhbnNj b2RlciBtc3RfbWFzdGVyX3RyYW5zOyAvKiBPbmx5IHZhbGlkIG9uIFRHTCsgKi8KPiAgCS8qIGNv bm5lY3RvciBkaXJlY3RseSBhdHRhY2hlZCAtIHdvbid0IGJlIHVzZSBmb3IgbW9kZXNldCBpbiBt c3Qgd29ybGQgKi8KPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmF0dGFjaGVkX2Nvbm5lY3Rv cjsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+IGluZGV4IDIz OTA4ZGExY2Q1ZC4uOTQzMzkyZmFhZWEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHAuYwo+IEBAIC0zMjA5LDYgKzMyMDksNTEgQEAgc3RhdGljIHZvaWQgY2h2X3Bv c3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXZsdl9kcGlv X3B1dChkZXZfcHJpdik7Cj4gIH0KPiAgCj4gK2k5MTVfcmVnX3QgaW50ZWxfZHBfdHBfY3RsX3Jl Zyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICBl bnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsCj4gKwkJCSAgICAgICBlbnVtIHBvcnQgcG9y dCkKPiArewo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiArCQlXQVJOX09O KGNwdV90cmFuc2NvZGVyID09IFRSQU5TQ09ERVJfSU5WQUxJRCk7Cj4gKwkJcmV0dXJuIFRHTF9E UF9UUF9DVEwoY3B1X3RyYW5zY29kZXIpOwo+ICsJfSBlbHNlIHsKPiArCQlyZXR1cm4gRFBfVFBf Q1RMKHBvcnQpOwo+ICsJfQo+ICt9Cj4gKwo+ICtpOTE1X3JlZ190IGludGVsX2RwX3RwX3N0YXR1 c19yZWcoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJICBl bnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsCj4gKwkJCQkgIGVudW0gcG9ydCBwb3J0KQo+ ICt7Cj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewo+ICsJCVdBUk5fT04oY3B1 X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RFUl9JTlZBTElEKTsKPiArCQlyZXR1cm4gVEdMX0RQX1RQ X1NUQVRVUyhjcHVfdHJhbnNjb2Rlcik7Cj4gKwl9IGVsc2Ugewo+ICsJCXJldHVybiBEUF9UUF9T VEFUVVMocG9ydCk7Cj4gKwl9Cj4gK30KPiArCj4gKy8qCj4gKyAqIFJldHVybiB0aGUgdHJhbnNj b2RlciB0aGF0IHRoaXMgaW50ZWxfZHAgcG9ydCBpcyBkcml2ZW4uCj4gKyAqIFdoZW4gaW4gTVNU IG1vZGUgaXQgd2lsbCByZXR1cm4gdGhlIG1hc3RlciB0cmFuc2NvZGVyIG9mIHRoZSBNU1Qgc28g ZG8gbm90Cj4gKyAqIHVzZSBpdCB3aGVuIHJlYWRpbmcgb3Igd3JpdGluZyByZWdpc3RlcnMgaW4g dGhlIHNsYXZlIHRyYW5zY29kZXJzLgo+ICsgKi8KPiArZW51bSB0cmFuc2NvZGVyIGludGVsX2Rw X2dldF90cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3sKPiArCXN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7 Cj4gKwo+ICsJaWYgKGludGVsX2RwLT5pc19tc3QpCj4gKwkJcmV0dXJuIGludGVsX2RwLT5tc3Rf bWFzdGVyX3RyYW5zOwo+ICsKPiArCWNvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25u ZWN0b3I7Cj4gKwljb25uX3N0YXRlID0gY29ubmVjdG9yLT5iYXNlLnN0YXRlOwo+ICsJY3J0Y19z dGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUpOwoKVGhh dCdzIGlsbGVnYWwuIElkZWFsbHkgd2UnZCBwbHVtYiB0aGUgY3J0YyBzdGF0ZSBpbnRvIHRoZSBs aW5rIHRyYWluaW5nCnN0dWZmLCBidXQgSUlSQyBsYXN0IHRpbWUgSSB0cmllZCB0aGF0IHdlIHN0 aWxsIGhhZCBhdCBsZWFzdCBvbmUgY2FzZQp3aGVyZSB0aGF0IHdhc24ndCB0cml2aWFsLiBJIGNh bid0IHJlbWVtYmVyIHJpZ2h0IG5vdyB3aGVyZSB0aGF0IGNhc2UKd2FzIHRob3VnaC4KCkkgZ3Vl c3MgdGhlIGFsdGVybmF0aXZlIGlzIHRvIGNvbnRpbnVlIGR1cGxpY2F0aW5nIHRoaW5ncyBpbiBp bnRlbF9kcC4KCj4gKwo+ICsJcmV0dXJuIGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwo+ICt9 Cj4gKwo+ICBzdGF0aWMgdm9pZAo+ICBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKPiAgCQkJIHUzMiAqRFAsCj4gQEAgLTMyMjQsOCArMzI2OSwxMyBA QCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAg CQkJICAgICAgZHBfdHJhaW5fcGF0ICYgdHJhaW5fcGF0X21hc2spOwo+ICAKPiAgCWlmIChIQVNf RERJKGRldl9wcml2KSkgewo+IC0JCXUzMiB0ZW1wID0gSTkxNV9SRUFEKERQX1RQX0NUTChwb3J0 KSk7Cj4gKwkJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ICsJCWk5MTVfcmVnX3Qg Y3RsOwo+ICsJCXUzMiB0ZW1wOwo+ICAKPiArCQljcHVfdHJhbnNjb2RlciA9IGludGVsX2RwX2dl dF90cmFuc2NvZGVyKGludGVsX2RwKTsKPiArCQljdGwgPSBpbnRlbF9kcF90cF9jdGxfcmVnKGRl dl9wcml2LCBjcHVfdHJhbnNjb2RlciwgcG9ydCk7Cj4gKwkJdGVtcCA9IEk5MTVfUkVBRChjdGwp Owo+ICAJCWlmIChkcF90cmFpbl9wYXQgJiBEUF9MSU5LX1NDUkFNQkxJTkdfRElTQUJMRSkKPiAg CQkJdGVtcCB8PSBEUF9UUF9DVExfU0NSQU1CTEVfRElTQUJMRTsKPiAgCQllbHNlCj4gQEAgLTMy NTAsNyArMzMwMCw3IEBAIF9pbnRlbF9kcF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAo+ICAJCQl0ZW1wIHw9IERQX1RQX0NUTF9MSU5LX1RSQUlOX1BBVDQ7Cj4gIAkJ CWJyZWFrOwo+ICAJCX0KPiAtCQlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdGVtcCk7Cj4g KwkJSTkxNV9XUklURShjdGwsIHRlbXApOwo+ICAKPiAgCX0gZWxzZSBpZiAoKElTX0lWWUJSSURH RShkZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0EpIHx8Cj4gIAkJICAgKEhBU19QQ0hfQ1BUKGRl dl9wcml2KSAmJiBwb3J0ICE9IFBPUlRfQSkpIHsKPiBAQCAtMzk0MywxNSArMzk5MywyMSBAQCB2 b2lkIGludGVsX2RwX3NldF9pZGxlX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50 ZWxfZHApOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19w b3J0LT5iYXNlLnBvcnQ7Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7Cj4gKwlp OTE1X3JlZ190IGN0bCwgc3RhdHVzOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAlpZiAoIUhBU19EREko ZGV2X3ByaXYpKQo+ICAJCXJldHVybjsKPiAgCj4gLQl2YWwgPSBJOTE1X1JFQUQoRFBfVFBfQ1RM KHBvcnQpKTsKPiArCWNwdV90cmFuc2NvZGVyID0gaW50ZWxfZHBfZ2V0X3RyYW5zY29kZXIoaW50 ZWxfZHApOwo+ICsJY3RsID0gaW50ZWxfZHBfdHBfY3RsX3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5z Y29kZXIsIHBvcnQpOwo+ICsJc3RhdHVzID0gaW50ZWxfZHBfdHBfc3RhdHVzX3JlZyhkZXZfcHJp diwgY3B1X3RyYW5zY29kZXIsIHBvcnQpOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChjdGwpOwo+ ICAJdmFsICY9IH5EUF9UUF9DVExfTElOS19UUkFJTl9NQVNLOwo+ICAJdmFsIHw9IERQX1RQX0NU TF9MSU5LX1RSQUlOX0lETEU7Cj4gLQlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdmFsKTsK PiArCUk5MTVfV1JJVEUoY3RsLCB2YWwpOwo+ICAKPiAgCS8qCj4gIAkgKiBPbiBQT1JUX0Egd2Ug Y2FuIGhhdmUgb25seSBlRFAgaW4gU1NUIG1vZGUuIFRoZXJlIHRoZSBvbmx5IHJlYXNvbgo+IEBA IC0zOTYzLDcgKzQwMTksNyBAQCB2b2lkIGludGVsX2RwX3NldF9pZGxlX2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWlmIChwb3J0ID09IFBPUlRfQSkKPiAgCQlyZXR1 cm47Cj4gIAo+IC0JaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRFBfVFBfU1RB VFVTKHBvcnQpLAo+ICsJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgc3RhdHVz LAo+ICAJCQkJICBEUF9UUF9TVEFUVVNfSURMRV9ET05FLCAxKSkKPiAgCQlEUk1fRVJST1IoIlRp bWVkIG91dCB3YWl0aW5nIGZvciBEUCBpZGxlIHBhdHRlcm5zXG4iKTsKPiAgfQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmgKPiBpbmRleCA2NTdiYmIxZjVlZDAuLjEwNzEy OWI1ZDlhMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RwLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmgKPiBA QCAtMTEsNiArMTEsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gIAo+ICAjaW5j bHVkZSAiaTkxNV9yZWcuaCIKPiArI2luY2x1ZGUgImludGVsX2Rpc3BsYXkuaCIKPiAgCj4gIGVu dW0gcGlwZTsKPiAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGU7Cj4gQEAgLTExMyw2ICsxMTQs MTQgQEAgaW50IGludGVsX2RwX2xpbmtfcmVxdWlyZWQoaW50IHBpeGVsX2Nsb2NrLCBpbnQgYnBw KTsKPiAgaW50IGludGVsX2RwX21heF9kYXRhX3JhdGUoaW50IG1heF9saW5rX2Nsb2NrLCBpbnQg bWF4X2xhbmVzKTsKPiAgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiAgCj4gK2k5MTVfcmVnX3QgaW50ZWxfZHBfdHBfY3Rs X3JlZyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAg ICBlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsCj4gKwkJCSAgICAgICBlbnVtIHBvcnQg cG9ydCk7Cj4gK2k5MTVfcmVnX3QgaW50ZWxfZHBfdHBfc3RhdHVzX3JlZyhjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgIGVudW0gdHJhbnNjb2RlciBjcHVf dHJhbnNjb2RlciwKPiArCQkJCSAgZW51bSBwb3J0IHBvcnQpOwo+ICtlbnVtIHRyYW5zY29kZXIg aW50ZWxfZHBfZ2V0X3RyYW5zY29kZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gKwo+ ICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpbnRlbF9kcF91bnVzZWRfbGFuZV9tYXNrKGlu dCBsYW5lX2NvdW50KQo+ICB7Cj4gIAlyZXR1cm4gfigoMSA8PCBsYW5lX2NvdW50KSAtIDEpICYg MHhmOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw X21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+IGlu ZGV4IDgwMDJkY2E5YjczNC4uNjMwZGIyZmFkYWNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gQEAgLTM1NCw5ICszNTQsMTEgQEAgc3RhdGlj IHZvaWQgaW50ZWxfbXN0X3ByZV9wbGxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBp bnRlbF9tc3QtPnByaW1hcnk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVs X2RpZ19wb3J0LT5kcDsKPiAgCj4gLQlpZiAoaW50ZWxfZHAtPmFjdGl2ZV9tc3RfbGlua3MgPT0g MCkKPiArCWlmIChpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyA9PSAwKSB7Cj4gKwkJaW50ZWxf ZHAtPm1zdF9tYXN0ZXJfdHJhbnMgPSBwaXBlX2NvbmZpZy0+bXN0X21hc3Rlcl90cmFuczsKPiAg CQlpbnRlbF9kaWdfcG9ydC0+YmFzZS5wcmVfcGxsX2VuYWJsZSgmaW50ZWxfZGlnX3BvcnQtPmJh c2UsCj4gIAkJCQkJCSAgICBwaXBlX2NvbmZpZywgTlVMTCk7Cj4gKwl9Cj4gIH0KPiAgCj4gIHN0 YXRpYyB2b2lkIGludGVsX21zdF9wb3N0X3BsbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+IEBAIC0zODQsNiArMzg2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0 X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAllbnVtIHBv cnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gIAlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IgPQo+ICAJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpOwo+ICsJaTkxNV9yZWdfdCBzdGF0dXM7Cj4gIAlpbnQgcmV0Owo+ICAJdTMyIHRl bXA7Cj4gIAo+IEBAIC00MTIsOCArNDE1LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVf ZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCURSTV9FUlJPUigi ZmFpbGVkIHRvIGFsbG9jYXRlIHZjcGlcbiIpOwo+ICAKPiAgCWludGVsX2RwLT5hY3RpdmVfbXN0 X2xpbmtzKys7Cj4gLQl0ZW1wID0gSTkxNV9SRUFEKERQX1RQX1NUQVRVUyhwb3J0KSk7Cj4gLQlJ OTE1X1dSSVRFKERQX1RQX1NUQVRVUyhwb3J0KSwgdGVtcCk7Cj4gKwo+ICsJc3RhdHVzID0gaW50 ZWxfZHBfdHBfc3RhdHVzX3JlZyhkZXZfcHJpdiwKPiArCQkJCQlwaXBlX2NvbmZpZy0+bXN0X21h c3Rlcl90cmFucywKPiArCQkJCQlwb3J0KTsKPiArCXRlbXAgPSBJOTE1X1JFQUQoc3RhdHVzKTsK PiArCUk5MTVfV1JJVEUoc3RhdHVzLCB0ZW1wKTsKPiAgCj4gIAlyZXQgPSBkcm1fZHBfdXBkYXRl X3BheWxvYWRfcGFydDEoJmludGVsX2RwLT5tc3RfbWdyKTsKPiAgCj4gQEAgLTQyOSwxMCArNDM2 LDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19w b3J0LT5kcDsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+ YmFzZS5wb3J0Owo+ICsJaTkxNV9yZWdfdCBzdGF0dXM7Cj4gIAo+ICAJRFJNX0RFQlVHX0tNUygi YWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyk7Cj4gIAo+IC0J aWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRFBfVFBfU1RBVFVTKHBvcnQpLAo+ ICsJc3RhdHVzID0gaW50ZWxfZHBfdHBfc3RhdHVzX3JlZyhkZXZfcHJpdiwKPiArCQkJCQlwaXBl X2NvbmZpZy0+bXN0X21hc3Rlcl90cmFucywKPiArCQkJCQlwb3J0KTsKPiArCj4gKwlpZiAoaW50 ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBzdGF0dXMsCj4gIAkJCQkgIERQX1RQX1NUQVRV U19BQ1RfU0VOVCwgMSkpCj4gIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgQUNU IHNlbnRcbiIpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCBiZmY5ZWUxOTE4 MzIuLmZmZmFlZDBjYTNjZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC05NDU0 LDcgKzk0NTQsOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiAgLyogRGlzcGxheVBvcnQgVHJh bnNwb3J0IENvbnRyb2wgKi8KPiAgI2RlZmluZSBfRFBfVFBfQ1RMX0EJCQkweDY0MDQwCj4gICNk ZWZpbmUgX0RQX1RQX0NUTF9CCQkJMHg2NDE0MAo+ICsjZGVmaW5lIF9UR0xfRFBfVFBfQ1RMX0EJ CTB4NjA1NDAKPiAgI2RlZmluZSBEUF9UUF9DVEwocG9ydCkgX01NSU9fUE9SVChwb3J0LCBfRFBf VFBfQ1RMX0EsIF9EUF9UUF9DVExfQikKPiArI2RlZmluZSBUR0xfRFBfVFBfQ1RMKHRyYW4pIF9N TUlPX1RSQU5TMigodHJhbiksIF9UR0xfRFBfVFBfQ1RMX0EpCj4gICNkZWZpbmUgIERQX1RQX0NU TF9FTkFCTEUJCQkoMSA8PCAzMSkKPiAgI2RlZmluZSAgRFBfVFBfQ1RMX0ZFQ19FTkFCTEUJCQko MSA8PCAzMCkKPiAgI2RlZmluZSAgRFBfVFBfQ1RMX01PREVfU1NUCQkJKDAgPDwgMjcpCj4gQEAg LTk0NzQsNyArOTQ3Niw5IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+ICAvKiBEaXNwbGF5UG9y dCBUcmFuc3BvcnQgU3RhdHVzICovCj4gICNkZWZpbmUgX0RQX1RQX1NUQVRVU19BCQkJMHg2NDA0 NAo+ICAjZGVmaW5lIF9EUF9UUF9TVEFUVVNfQgkJCTB4NjQxNDQKPiArI2RlZmluZSBfVEdMX0RQ X1RQX1NUQVRVU19BCQkweDYwNTQ0Cj4gICNkZWZpbmUgRFBfVFBfU1RBVFVTKHBvcnQpIF9NTUlP X1BPUlQocG9ydCwgX0RQX1RQX1NUQVRVU19BLCBfRFBfVFBfU1RBVFVTX0IpCj4gKyNkZWZpbmUg VEdMX0RQX1RQX1NUQVRVUyh0cmFuKSBfTU1JT19UUkFOUzIoKHRyYW4pLCBfVEdMX0RQX1RQX1NU QVRVU19BKQo+ICAjZGVmaW5lICBEUF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFCQkoMSA8PCAy OCkKPiAgI2RlZmluZSAgRFBfVFBfU1RBVFVTX0lETEVfRE9ORQkJCSgxIDw8IDI1KQo+ICAjZGVm aW5lICBEUF9UUF9TVEFUVVNfQUNUX1NFTlQJCQkoMSA8PCAyNCkKPiAtLSAKPiAyLjIzLjAKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4