From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 2/6] drm/i915: Stop frobbing with DDI encoder->type Date: Mon, 30 Oct 2017 18:07:26 +0200 Message-ID: <20171030160726.GT10981@intel.com> References: <20171027193128.14483-1-ville.syrjala@linux.intel.com> <20171027193128.14483-3-ville.syrjala@linux.intel.com> <3bb07b82-5e54-fa40-a687-3a50281f6c47@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FC1F89CA8 for ; Mon, 30 Oct 2017 16:07:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <3bb07b82-5e54-fa40-a687-3a50281f6c47@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMzAsIDIwMTcgYXQgMDk6NTk6MjlBTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjctMTAtMTcgb20gMjE6MzEgc2NocmVlZiBWaWxsZSBTeXJqYWxhOgo+ ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+Cj4gPiBDdXJyZW50bHkgdGhlIERESSBlbmNvZGVyLT50eXBlIHdpbGwgY2hhbmdlIGF0IHJ1 bnRpbWUgZGVwZW5kaW5nIG9uCj4gPiB3aGF0IGtpbmQgb2YgaG90cGx1Z3Mgd2UndmUgcHJvY2Vz c2VkLiBUaGF0J3MgcXVpdGUgYmFkIHNpbmNlIHdlIGNhbid0Cj4gPiByZWFsbHkgdHJ1c3QgdGhh dCB0aGF0IGN1cnJlbnQgdmFsdWUgb2YgZW5jb2Rlci0+dHlwZSBhY3R1YWxseSBtYXRjaGVzCj4g PiB0aGUgdHlwZSBvZiBzaWduYWwgd2UncmUgdHJ5aW5nIHRvIGRyaXZlIHRocm91Z2ggaXQuCj4g Pgo+ID4gTGV0J3MgZWxpbWluYXRlIHRoYXQgcHJvYmxlbSBieSBkZWNsYXJpbmcgdGhhdCBub24t ZURQIERESSBwb3J0IHdpbGwKPiA+IGFsd2F5cyBoYXZlIHRoZSBlbmNvZGVyIHR5cGUgYXMgSU5U RUxfT1VUUFVUX0RESS4gVGhpcyBtZWFucyB0aGUgY29kZQo+ID4gY2FuIG5vIGxvbmdlciB0cnkg dG8gZGlzdGluZ3Vpc2ggRFAgdnMuIEhETUkgYmFzZWQgb24gZW5jb2Rlci0+dHlwZS4KPiA+IFdl J2xsIGxlYXZlIGVEUCBhcyBJTlRFTF9PVVRQVVRfRURQLCBzaW5jZSBpdCdsbCBuZXZlciBjaGFu Z2UgYW5kCj4gPiB0aGVyZSdzIGEgYnVuY2ggb2YgY29kZSB0aGF0IHJlbGllcyBvbiB0aGF0IHZh bHVlIHRvIGlkZW50aWZ5IGVEUAo+ID4gZW5jb2RlcnMuCj4gPgo+ID4gV2UnbGwgaW50cm9kdWNl IGEgbmV3IGVuY29kZXIgLmNvbXB1dGVfb3V0cHV0X3R5cGUoKSBob29rLiBUaGlzIGFsbG93cwo+ ID4gdXMgdG8gY29tcHV0ZSB0aGUgZnVsbCBvdXRwdXRfdHlwZXMgYmVmb3JlIGFueSBlbmNvZGVy IC5jb21wdXRlX2NvbmZpZygpCj4gPiBob29rcyBnZXQgY2FsbGVkLCB0aHVzIHRob3NlIGhvb2tz IGNhbiByZWx5IG9uIG91dHB1dF90eXBlcyBiZWluZwo+ID4gY29ycmVjdCwgd2hpY2ggaXMgdXNl ZnVsIGZvciBjbG9uaW5nIG9uIG9sZHIgcGxhdGZvcm1zLiBGb3Igbm93IHdlJ2xsCj4gPiBqdXN0 IGxvb2sgYXQgdGhlIGNvbm5lY3RvciB0eXBlIGFuZCBwaWNrIHRoZSBjb3JyZWN0IG1vZGUgYmFz ZWQgb24gdGhhdC4KPiA+IEluIHRoZSBmdXR1cmUgdGhlIG5ldyBob29rIGNvdWxkIGJlIHVzZWQg dG8gaW1wbGVtZW50IGR5bmFtaWMgc3dpdGNoaW5nCj4gPiBiZXR3ZWVuIExTIGFuZCBQQ09OIG1v ZGVzIGZvciBMU1BDT04uCj4gPgo+ID4gdjI6IEZpeCBCWFQvR0xLIFBQUyBleHBsb3Npb24gd2l0 aCBEU0kvTVNUIGVuY29kZXJzCj4gPiB2MzogQXZvaWQgdGhlIFBQUyB3YXJuIG9uIHB1cmUgSERN SS9EVkkgRERJIGVuY29kZXJzIGJ5IGNoZWNraW5nIGRwLm91dHB1dF9yZWcKPiA+IHY0OiBSZWJh c2UKPiA+IHY1OiBQb3B1bGF0ZSBvdXRwdXRfdHlwZXMgaW4gLmdldF9jb25maWcoKSByYXRoZXIg dGhhbiBpbiB0aGUgY2FsbGVyCj4gPiB2NTogU3BsaXQgb3V0IHBvcHVsYXRpbmcgb3V0cHV0X3R5 cGVzIGluIC5nZXRfY29uZmlnKCkgKE1hYXJ0ZW4pCj4gPgo+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hv cnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5 OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICB8ICAyICstCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICB8IDMyICsrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jICB8IDExICsrKysrKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyAgICAgICB8IDE5ICsrKysrKy0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgIHwgIDcgKysrKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYyAgICAgfCAxMCArKy0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfb3ByZWdpb24uYyB8ICAyICstCj4gPiAgNyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNl cnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+ID4gaW5kZXggYzFlNWJiYTkxYmZmLi4zOTg4M2NkOTE1ZGIgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IEBAIC0zMDUxLDcgKzMwNTEsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4gPiAg CQlicmVhazsKPiA+ICAJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUE6Cj4gPiAgCQlpZiAo aW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSB8fAo+ID4gLQkJICAgIGlu dGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX1VOS05PV04pCj4gPiArCQkgICAgaW50 ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRERJKQo+ID4gIAkJCWludGVsX2hkbWlf aW5mbyhtLCBpbnRlbF9jb25uZWN0b3IpOwo+ID4gIAkJYnJlYWs7Cj4gPiAgCWRlZmF1bHQ6Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gaW5kZXggN2UwYjFhMDI5MTJhLi5lNWRkMjgx NzgxZmUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC00OTcsMTAg KzQ5Nyw4IEBAIGVudW0gcG9ydCBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Cj4gPiAg CWNhc2UgSU5URUxfT1VUUFVUX0RQX01TVDoKPiA+ICAJCXJldHVybiBlbmNfdG9fbXN0KCZlbmNv ZGVyLT5iYXNlKS0+cHJpbWFyeS0+cG9ydDsKPiA+IC0JY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4g PiAgCWNhc2UgSU5URUxfT1VUUFVUX0VEUDoKPiA+IC0JY2FzZSBJTlRFTF9PVVRQVVRfSERNSToK PiA+IC0JY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoKPiA+ICsJY2FzZSBJTlRFTF9PVVRQVVRf RERJOgo+ID4gIAkJcmV0dXJuIGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSktPnBvcnQ7 Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0FOQUxPRzoKPiA+ICAJCXJldHVybiBQT1JUX0U7Cj4g PiBAQCAtMTUzNCw2ICsxNTMyLDcgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxs b2MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ ID4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJh bnNjb2RlcjsKPiA+ICAJdWludDMyX3QgdGVtcDsKPiA+ICsKPiA+ICAJdGVtcCA9IEk5MTVfUkVB RChUUkFOU19ERElfRlVOQ19DVEwoY3B1X3RyYW5zY29kZXIpKTsKPiA+ICAJaWYgKHN0YXRlID09 IHRydWUpCj4gPiAgCQl0ZW1wIHw9IFRSQU5TX0RESV9EUF9WQ19QQVlMT0FEX0FMTE9DOwo+ID4g QEAgLTI2NTIsMjEgKzI2NTEsMzYgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJaW50ZWxfZGRpX2NvbXB1dGVfbWluX3ZvbHRh Z2VfbGV2ZWwoZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGlj IGVudW0gaW50ZWxfb3V0cHV0X3R5cGUKPiA+ICtpbnRlbF9kZGlfY29tcHV0ZV9vdXRwdXRfdHlw ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiA+ICt7Cj4gPiArCXN3aXRjaCAoY29ubl9zdGF0ZS0+ Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSkgewo+ID4gKwljYXNlIERSTV9NT0RFX0NPTk5FQ1RP Ul9IRE1JQToKPiA+ICsJCXJldHVybiBJTlRFTF9PVVRQVVRfSERNSTsKPiA+ICsJY2FzZSBEUk1f TU9ERV9DT05ORUNUT1JfZURQOgo+ID4gKwkJcmV0dXJuIElOVEVMX09VVFBVVF9FRFA7Cj4gPiAr CWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0Ogo+ID4gKwkJcmV0dXJuIElOVEVM X09VVFBVVF9EUDsKPiA+ICsJZGVmYXVsdDoKPiA+ICsJCU1JU1NJTkdfQ0FTRShjb25uX3N0YXRl LT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKTsKPiA+ICsJCXJldHVybiBJTlRFTF9PVVRQVVRf VU5VU0VEOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBib29sIGludGVsX2RkaV9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkJICAg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiAgCQkJCSAgICAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK PiA+IC0JaW50IHR5cGUgPSBlbmNvZGVyLT50eXBlOwo+ID4gIAlpbnQgcG9ydCA9IGludGVsX2Rk aV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gLQlX QVJOKHR5cGUgPT0gSU5URUxfT1VUUFVUX1VOS05PV04sICJjb21wdXRlX2NvbmZpZygpIG9uIHVu a25vd24gb3V0cHV0IVxuIik7Cj4gPiAtCj4gPiAgCWlmIChwb3J0ID09IFBPUlRfQSkKPiA+ICAJ CXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRURQOwo+ID4gIAo+ID4g LQlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkKPiA+ICsJaWYgKGludGVsX2NydGNfaGFz X3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9IRE1JKSkKPiA+ICAJCXJldCA9IGludGVs X2hkbWlfY29tcHV0ZV9jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUpOwo+ ID4gIAllbHNlCj4gPiAgCQlyZXQgPSBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhlbmNvZGVyLCBw aXBlX2NvbmZpZywgY29ubl9zdGF0ZSk7Cj4gCj4gV291bGQgaXQgYmUgYW4gb3B0aW9uIHRvIHB1 dCBpdCBpbiBjb21wdXRlX2NvbmZpZyBmb3IgRERJIG9ubHk/IFRoZXJlIGlzIG5vIHJpc2sgb2Yg Y2xvbmluZyB0aGVyZSwgc2F2ZXMgYW5vdGhlciBob29rLiA6KQoKVGhhdCB3b3VsZCBtZWFuIHRo ZSBjYWxsZXIgd291bGQgc2V0ICdvdXRwdXRfdHlwZXN8PURESScgd2hpY2ggd2UnZCBoYXZlCnRv IHVuZG8gaGVyZSwgb3Igd2Ugd291bGQgbmVlZCB0byBzcGVjaWFsIGNhc2UgRERJIGluIHRoZSBj YWxsZXIgYW5kIG5vdApzZXQgb3V0cHV0X3R5cGVzIHRoZXJlIGF0IGFsbC4gTmVpdGhlciB3b3Vs ZCBsb29rIHZlcnkgcHJldHR5IEkgdGhpbmsuCgo+IAo+IEVpdGhlciB3YXkgaXMgZmluZSB0aG91 Z2guCj4gPiBAQCAtMjgxNSw2ICsyODI5LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ID4gIAlkcm1fZW5j b2Rlcl9pbml0KCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyLCAmaW50ZWxfZGRpX2Z1bmNzLAo+ID4g IAkJCSBEUk1fTU9ERV9FTkNPREVSX1RNRFMsICJEREkgJWMiLCBwb3J0X25hbWUocG9ydCkpOwo+ ID4gIAo+ID4gKwlpbnRlbF9lbmNvZGVyLT5jb21wdXRlX291dHB1dF90eXBlID0gaW50ZWxfZGRp X2NvbXB1dGVfb3V0cHV0X3R5cGU7Cj4gPiAgCWludGVsX2VuY29kZXItPmNvbXB1dGVfY29uZmln ID0gaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnOwo+ID4gIAlpbnRlbF9lbmNvZGVyLT5lbmFibGUg PSBpbnRlbF9lbmFibGVfZGRpOwo+ID4gIAlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gPiBA QCAtMjg2OCw5ICsyODgzLDEwIEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiA+ICAJCW1heF9sYW5lcyA9IDQ7 Cj4gPiAgCX0KPiA+ICAKPiA+ICsJaW50ZWxfZGlnX3BvcnQtPmRwLm91dHB1dF9yZWcgPSBJTlZB TElEX01NSU9fUkVHOwo+ID4gIAlpbnRlbF9kaWdfcG9ydC0+bWF4X2xhbmVzID0gbWF4X2xhbmVz Owo+ID4gIAo+ID4gLQlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX1VOS05PV047 Cj4gPiArCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRERJOwo+ID4gIAlpbnRl bF9lbmNvZGVyLT5wb3dlcl9kb21haW4gPSBpbnRlbF9wb3J0X3RvX3Bvd2VyX2RvbWFpbihwb3J0 KTsKPiA+ICAJaW50ZWxfZW5jb2Rlci0+cG9ydCA9IHBvcnQ7Cj4gPiAgCWludGVsX2VuY29kZXIt PmNydGNfbWFzayA9ICgxIDw8IDApIHwgKDEgPDwgMSkgfCAoMSA8PCAyKTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDhmNzY5ZTliOTM0Mi4uNzM3ZGUyNTFk MGY4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0x MDU3OSw3ICsxMDU3OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgb3V0cHV0X3R5cGVf c3RyW10gPSB7Cj4gPiAgCU9VVFBVVF9UWVBFKERQKSwKPiA+ICAJT1VUUFVUX1RZUEUoRURQKSwK PiA+ICAJT1VUUFVUX1RZUEUoRFNJKSwKPiA+IC0JT1VUUFVUX1RZUEUoVU5LTk9XTiksCj4gPiAr CU9VVFBVVF9UWVBFKERESSksCj4gPiAgCU9VVFBVVF9UWVBFKERQX01TVCksCj4gPiAgfTsKPiA+ ICAKPiA+IEBAIC0xMDc1MCw3ICsxMDc1MCw3IEBAIHN0YXRpYyBib29sIGNoZWNrX2RpZ2l0YWxf cG9ydF9jb25mbGljdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIAo+ID4g IAkJc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Cj4gPiAgCQkJdW5zaWduZWQgaW50IHBvcnRfbWFz azsKPiA+IC0JCWNhc2UgSU5URUxfT1VUUFVUX1VOS05PV046Cj4gPiArCQljYXNlIElOVEVMX09V VFBVVF9EREk6Cj4gPiAgCQkJaWYgKFdBUk5fT04oIUhBU19EREkodG9faTkxNShkZXYpKSkpCj4g PiAgCQkJCWJyZWFrOwo+ID4gIAkJY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gPiBAQCAtMTA4ODMs NyArMTA4ODMsMTIgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gPiAgCQkgKiBEZXRlcm1pbmUgb3V0cHV0X3R5cGVzIGJlZm9yZSBjYWxsaW5nIHRo ZSAuY29tcHV0ZV9jb25maWcoKQo+ID4gIAkJICogaG9va3Mgc28gdGhhdCB0aGUgaG9va3MgY2Fu IHVzZSB0aGlzIGluZm9ybWF0aW9uIHNhZmVseS4KPiA+ICAJCSAqLwo+ID4gLQkJcGlwZV9jb25m aWctPm91dHB1dF90eXBlcyB8PSAxIDw8IGVuY29kZXItPnR5cGU7Cj4gPiArCQlpZiAoZW5jb2Rl ci0+Y29tcHV0ZV9vdXRwdXRfdHlwZSkKPiA+ICsJCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVz IHw9Cj4gPiArCQkJCUJJVChlbmNvZGVyLT5jb21wdXRlX291dHB1dF90eXBlKGVuY29kZXIsIHBp cGVfY29uZmlnLAo+ID4gKwkJCQkJCQkJIGNvbm5lY3Rvcl9zdGF0ZSkpOwo+ID4gKwkJZWxzZQo+ ID4gKwkJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKGVuY29kZXItPnR5cGUpOwo+ ID4gIAl9Cj4gPiAgCj4gPiAgZW5jb2Rlcl9yZXRyeToKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+ID4gaW5kZXggMzA2ODhhNWQ2ODBkLi5mMGM0OTk2MmZmYmUgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtNzU4LDExICs3NTgsMTYgQEAgdm9pZCBpbnRlbF9wb3dl cl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4g IAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcDsKPiA+ICAKPiA+ICAJCWlmIChlbmNvZGVyLT50 eXBlICE9IElOVEVMX09VVFBVVF9EUCAmJgo+ID4gLQkJICAgIGVuY29kZXItPnR5cGUgIT0gSU5U RUxfT1VUUFVUX0VEUCkKPiA+ICsJCSAgICBlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9F RFAgJiYKPiA+ICsJCSAgICBlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EREkpCj4gPiAg CQkJY29udGludWU7Cj4gPiAgCj4gPiAgCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5j b2Rlci0+YmFzZSk7Cj4gPiAgCj4gPiArCQkvKiBTa2lwIHB1cmUgRFZJL0hETUkgRERJIGVuY29k ZXJzICovCj4gPiArCQlpZiAoIWk5MTVfbW1pb19yZWdfdmFsaWQoaW50ZWxfZHAtPm91dHB1dF9y ZWcpKQo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwo+ID4gIAkJV0FSTl9PTihpbnRlbF9kcC0+YWN0 aXZlX3BpcGUgIT0gSU5WQUxJRF9QSVBFKTsKPiA+ICAKPiA+ICAJCWlmIChlbmNvZGVyLT50eXBl ICE9IElOVEVMX09VVFBVVF9FRFApCj4gPiBAQCAtNDczMyw4ICs0NzM4LDYgQEAgaW50ZWxfZHBf bG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gPiAg ewo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rv ci0+YmFzZTsKPiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVk X2RwKGNvbm5lY3Rvcik7Cj4gPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsKPiA+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4gIAllbnVtIGRybV9jb25uZWN0 b3Jfc3RhdHVzIHN0YXR1czsKPiA+ICAJdTggc2lua19pcnFfdmVjdG9yID0gMDsKPiA+IEBAIC00 NzY3LDkgKzQ3NzAsNiBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+ICAJCWdvdG8gb3V0Owo+ID4gIAl9Cj4gPiAgCj4gPiAt CWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCj4gPiAtCQlpbnRl bF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RQOwo+ID4gLQo+ID4gIAlpZiAoaW50ZWxf ZHAtPnJlc2V0X2xpbmtfcGFyYW1zKSB7Cj4gPiAgCQkvKiBJbml0aWFsIG1heCBsaW5rIGxhbmUg Y291bnQgKi8KPiA+ICAJCWludGVsX2RwLT5tYXhfbGlua19sYW5lX2NvdW50ID0gaW50ZWxfZHBf bWF4X2NvbW1vbl9sYW5lX2NvdW50KGludGVsX2RwKTsKPiA+IEBAIC00ODg2LDkgKzQ4ODYsNiBA QCBpbnRlbF9kcF9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAlp bnRlbF9kcF9zZXRfZWRpZChpbnRlbF9kcCk7Cj4gPiAgCj4gPiAgCWludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4gPiAtCj4gPiAt CWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCj4gPiAtCQlpbnRl bF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RQOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0 aWMgaW50IGludGVsX2RwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ID4gQEAgLTUxMDcsMTAgKzUxMDQsNiBAQCBpbnRlbF9kcF9ocGRfcHVsc2Uoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsIGJvb2wgbG9uZ19ocGQpCj4gPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAJZW51 bSBpcnFyZXR1cm4gcmV0ID0gSVJRX05PTkU7Cj4gPiAgCj4gPiAtCWlmIChpbnRlbF9kaWdfcG9y dC0+YmFzZS50eXBlICE9IElOVEVMX09VVFBVVF9FRFAgJiYKPiA+IC0JICAgIGludGVsX2RpZ19w b3J0LT5iYXNlLnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkpCj4gPiAtCQlpbnRlbF9kaWdfcG9y dC0+YmFzZS50eXBlID0gSU5URUxfT1VUUFVUX0RQOwo+ID4gLQo+ID4gIAlpZiAobG9uZ19ocGQg JiYgaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gPiAg CQkvKgo+ID4gIAkJICogdmRkIG9mZiBjYW4gZ2VuZXJhdGUgYSBsb25nIHB1bHNlIG9uIGVEUCB3 aGljaAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGRmOTY2NDI3MjMyYy4u NjI5ZWJjNzNiYjA5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAt MTczLDcgKzE3Myw3IEBAIGVudW0gaW50ZWxfb3V0cHV0X3R5cGUgewo+ID4gIAlJTlRFTF9PVVRQ VVRfRFAgPSA3LAo+ID4gIAlJTlRFTF9PVVRQVVRfRURQID0gOCwKPiA+ICAJSU5URUxfT1VUUFVU X0RTSSA9IDksCj4gPiAtCUlOVEVMX09VVFBVVF9VTktOT1dOID0gMTAsCj4gPiArCUlOVEVMX09V VFBVVF9EREkgPSAxMCwKPiA+ICAJSU5URUxfT1VUUFVUX0RQX01TVCA9IDExLAo+ID4gIH07Cj4g PiAgCj4gPiBAQCAtMjE2LDYgKzIxNiw5IEBAIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKPiA+ICAJ ZW51bSBwb3J0IHBvcnQ7Cj4gPiAgCXVuc2lnbmVkIGludCBjbG9uZWFibGU7Cj4gPiAgCXZvaWQg KCpob3RfcGx1Zykoc3RydWN0IGludGVsX2VuY29kZXIgKik7Cj4gPiArCWVudW0gaW50ZWxfb3V0 cHV0X3R5cGUgKCpjb21wdXRlX291dHB1dF90eXBlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ ID4gKwkJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCj4gPiArCQkJCQkJICAg ICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Cj4gPiAgCWJvb2wgKCpjb21wdXRlX2Nv bmZpZykoc3RydWN0IGludGVsX2VuY29kZXIgKiwKPiA+ICAJCQkgICAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKiwKPiA+ICAJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg Kik7Cj4gPiBAQCAtMTE1Miw3ICsxMTU1LDcgQEAgZW5jX3RvX2RpZ19wb3J0KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIgPSB0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpOwo+ID4gIAo+ID4gIAlzd2l0Y2ggKGludGVs X2VuY29kZXItPnR5cGUpIHsKPiA+IC0JY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoKPiA+ICsJ Y2FzZSBJTlRFTF9PVVRQVVRfRERJOgo+ID4gIAkJV0FSTl9PTighSEFTX0RESSh0b19pOTE1KGVu Y29kZXItPmRldikpKTsKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gPiAgCWNhc2UgSU5U RUxfT1VUUFVUX0VEUDoKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGluZGV4IDk3 ZDA4Y2RhM2Y4ZS4uZGVkZTI4OThjYjhhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKPiA+IEBAIC0xNjE3LDEyICsxNjE3LDkgQEAgaW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+ICAKPiA+ICAJaW50ZWxf aGRtaV91bnNldF9lZGlkKGNvbm5lY3Rvcik7Cj4gPiAgCj4gPiAtCWlmIChpbnRlbF9oZG1pX3Nl dF9lZGlkKGNvbm5lY3RvcikpIHsKPiA+IC0JCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1p ID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+ID4gLQo+ID4gLQkJaGRtaV90b19k aWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZS50eXBlID0gSU5URUxfT1VUUFVUX0hETUk7Cj4gPiAr CWlmIChpbnRlbF9oZG1pX3NldF9lZGlkKGNvbm5lY3RvcikpCj4gPiAgCQlzdGF0dXMgPSBjb25u ZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiA+IC0JfSBlbHNlCj4gPiArCWVsc2UKPiA+ICAJCXN0 YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ID4gIAo+ID4gIAlpbnRlbF9k aXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0dNQlVTKTsKPiA+IEBAIC0x NjMzLDggKzE2MzAsNiBAQCBpbnRlbF9oZG1pX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gIHN0YXRpYyB2b2lkCj4gPiAgaW50ZWxfaGRtaV9m b3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIHsKPiA+IC0Jc3RydWN0 IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBpbnRlbF9hdHRhY2hlZF9oZG1pKGNvbm5lY3Rvcik7 Cj4gPiAtCj4gPiAgCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAo+ID4gIAkJ ICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwo+ID4gIAo+ID4gQEAg LTE2NDQsNyArMTYzOSw2IEBAIGludGVsX2hkbWlfZm9yY2Uoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiA+ICAJCXJldHVybjsKPiA+ICAKPiA+ICAJaW50ZWxfaGRtaV9zZXRfZWRp ZChjb25uZWN0b3IpOwo+ID4gLQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpLT5iYXNlLnR5 cGUgPSBJTlRFTF9PVVRQVVRfSERNSTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludCBpbnRl bF9oZG1pX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4gPiBpbmRleCAxZDk0NjI0MGU1NWYuLjM5 NzE0YmUzZWI2YiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29w cmVnaW9uLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMK PiA+IEBAIC0zODMsNyArMzgzLDcgQEAgaW50IGludGVsX29wcmVnaW9uX25vdGlmeV9lbmNvZGVy KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4gIAljYXNlIElOVEVMX09V VFBVVF9BTkFMT0c6Cj4gPiAgCQl0eXBlID0gRElTUExBWV9UWVBFX0NSVDsKPiA+ICAJCWJyZWFr Owo+ID4gLQljYXNlIElOVEVMX09VVFBVVF9VTktOT1dOOgo+ID4gKwljYXNlIElOVEVMX09VVFBV VF9EREk6Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0RQOgo+ID4gIAljYXNlIElOVEVMX09VVFBV VF9IRE1JOgo+ID4gIAljYXNlIElOVEVMX09VVFBVVF9EUF9NU1Q6Cj4gCgotLSAKVmlsbGUgU3ly asOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK