From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v10 08/23] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 27 Nov 2018 09:29:42 -0800 Message-ID: <20181127172942.GH32069@intel.com> References: <20181120183736.28054-1-manasi.d.navare@intel.com> <20181120183736.28054-9-manasi.d.navare@intel.com> <20181127135723.GW9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181127135723.GW9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Anusha Srivatsa , Gaurav K Singh , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMjcsIDIwMTggYXQgMDM6NTc6MjNQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgTm92IDIwLCAyMDE4IGF0IDEwOjM3OjIxQU0gLTA4MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3Nl ZCBicHAsIHNsaWNlIGNvdW50IGFuZAo+ID4gZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50 ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFyYW1ldGVycwo+ID4gYXJlIHNldCBiYXNlZCBvbiB0aGUg cmVxdWVzdGVkIG1vZGUgYW5kIGF2YWlsYWJsZSBsaW5rIHBhcmFtZXRlcnMKPiA+IGR1cmluZyB0 aGUgcGlwZSBjb25maWd1cmF0aW9uIGluIGF0b21pYyBjaGVjayBwaGFzZS4KPiA+IFRoZXNlIHZh bHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRlIHRoZSByZW1haW5pbmcgRFNDCj4g PiBhbmQgUkMgcGFyYW1ldGVycyBiZWZvcmUgZW5iYWxpbmcgRFNDIGluIGF0b21pYyBjb21taXQu Cj4gPiAKPiA+IHYxNDoKPiA+IFJlbW92ZSBsZWZ0b3ZlcnMsIHVzZSBkc2NfYnBjLCByZWZpbmUg ZHNjX2NvbXB1dGVfY29uZmlnIChWaWxsZSkKPiA+IHYxMzoKPiA+ICogQ29tcHV0ZSBEU0MgYnBj IG9ubHkgd2hlbiBEU0MgaXMgcmVxIHRvIGJlIGVuYWJsZWQgKFZpbGxlKQo+ID4gdjEyOgo+ID4g KiBPdmVycmlkZSBicHAgd2l0aCBkc2MgZHBjZCBjb2xvciBkZXB0aCAoTWFuYXNpKQo+ID4gdjEx Ogo+ID4gKiBDb25zdCBjcnRjX3N0YXRlLCByZWplY3QgRFNDIG9uIERQIHdpdGhvdXQgRkVDIChW aWxsZSkKPiA+ICogRG9udCBzZXQgZHNjX3NwbGl0IHRvIGZhbHNlIChWaWxsZSkKPiA+IHYxMDoK PiA+ICogQWRkIGEgaGVscGVyIGZvciBkcF9kc2Mgc3VwcG9ydCAoVmlsbGUpCj4gPiAqIFNldCBw aXBlX2NvbmZpZyB0byBtYXggYnBwLCBsaW5rIHBhcmFtcyBmb3IgRFNDIGZvciBub3cgKFZpbGxl KQo+ID4gKiBDb21wdXRlIGJwcCAtIHVzZSBkcCBkc2Mgc3VwcG9ydCBoZWxwZXIgKFZpbGxlKQo+ ID4gdjk6Cj4gPiAqIFJlYmFzZSBvbiB0b3Agb2YgZHJtLXRpcCB0aGF0IG5vdyB1c2VzIGZhc3Rf bmFycm93IGNvbmZpZwo+ID4gZm9yIGVkcCAoTWFuYXNpKQo+ID4gdjg6Cj4gPiAqIENoZWNrIGZv ciBEU0MgYnBjIG5vdCAwIChtYW5hc2kpCj4gPiAKPiA+IHY3Ogo+ID4gKiBGaXggaW5kZW50YXRp b24gaW4gY29tcHV0ZV9tX24gKE1hbmFzaSkKPiA+IAo+ID4gdjYgKEZyb20gR2F1cmF2KToKPiA+ ICogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwgb2YgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkg YW5kCj4gPiBpbnZva2UgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgaW4gdGhlIHBhdGNo IHdoZXJlCj4gPiBpdCBpcyBkZWZpbmVkIHRvIGZpeCBjb21waWxhdGlvbiB3YXJuaW5nIChHYXVy YXYpCj4gPiAKPiA+IHY1Ogo+ID4gQWRkIGRybV9kc2NfY2ZnIGluIGludGVsX2NydGNfc3RhdGUg KE1hbmFzaSkKPiA+IAo+ID4gdjQ6Cj4gPiAqIFJlYmFzZSBvbiByZWZhY3RvcmluZyBvZiBpbnRl bF9kcF9jb21wdXRlX2NvbmZpZyBvbiB0aXAgKE1hbmFzaSkKPiA+ICogQWRkIGEgY29tbWVudCB3 aHkgd2UgbmVlZCB0byBjaGVjayBQU1Igd2hpbGUgZW5hYmxpbmcgRFNDIChHYXVyYXYpCj4gPiAK PiA+IHYzOgo+ID4gKiBDaGVjayBQUFIgPiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGluc3Rh bmNlcyAoVmlsbGUpCj4gPiAKPiA+IHYyOgo+ID4gKiBBZGQgaWYtZWxzZSBmb3IgZURQL0RQIChH YXVyYXYpCj4gPiAKPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwu Y29tPgo+ID4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ IENjOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgo+ID4gU2lnbmVk LW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+IFJl dmlld2VkLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4g PiBBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgMiArLQo+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCB8ICAgMiArLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE5MSArKysrKysrKysrKysrKysr KysrKysrKystLS0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCAyNCBk ZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4g aW5kZXggMTMyZTk3ODIyN2ZiLi5mMmU2NDI1ZDA5ZWYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTY3MjMsNyArNjcyMyw3IEBAIHN0YXRpYyB2b2lk IGNvbXB1dGVfbV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKPiA+ICB9Cj4gPiAg Cj4gPiAgdm9pZAo+ID4gLWludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVs LCBpbnQgbmxhbmVzLAo+ID4gK2ludGVsX2xpbmtfY29tcHV0ZV9tX24odTE2IGJpdHNfcGVyX3Bp eGVsLCBpbnQgbmxhbmVzLAo+ID4gIAkJICAgICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtf Y2xvY2ssCj4gPiAgCQkgICAgICAgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCj4gPiAgCQkg ICAgICAgYm9vbCBjb25zdGFudF9uKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku aAo+ID4gaW5kZXggNWQ1MGRlY2JjYmI1Li5hZmI2NDM1ODg3ZGYgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gQEAgLTQwNyw3ICs0MDcsNyBAQCBzdHJ1Y3Qg aW50ZWxfbGlua19tX24gewo+ID4gIAkgICAgIChfX2kpKyspIFwKPiA+ICAJCWZvcl9lYWNoX2lm KHBsYW5lKQo+ID4gIAo+ID4gLXZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCBp bnQgbmxhbmVzLAo+ID4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbih1MTYgYnBwLCBpbnQg bmxhbmVzLAo+ID4gIAkJCSAgICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ID4g IAkJCSAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKPiA+ICAJCQkgICAgYm9vbCBjb25z dGFudF9uKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggMmIwOTA2MDliZWUy Li43OGVjNzc1YWE5MGEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAt NDcsNiArNDcsOCBAQAo+ID4gIAo+ID4gIC8qIERQIERTQyBzbWFsbCBqb2luZXIgaGFzIDIgRklG T3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICovCj4gPiAgI2RlZmluZSBEUF9EU0NfTUFYX1NNQUxM X0pPSU5FUl9SQU1fQlVGRkVSCTYxNDQwCj4gPiArI2RlZmluZSBEUF9EU0NfTUlOX1NVUFBPUlRF RF9CUEMJCTgKPiA+ICsjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQwkJMTAKPiA+ICAK PiA+ICAvKiBEUCBEU0MgdGhyb3VnaHB1dCB2YWx1ZXMgdXNlZCBmb3Igc2xpY2UgY291bnQgY2Fs Y3VsYXRpb25zIEtQaXhlbHMvcyAqLwo+ID4gICNkZWZpbmUgRFBfRFNDX1BFQUtfUElYRUxfUkFU RQkJCTI3MjAwMDAKPiA+IEBAIC0xNzA4LDYgKzE3MTAsMjYgQEAgc3RydWN0IGxpbmtfY29uZmln X2xpbWl0cyB7Cj4gPiAgCWludCBtaW5fYnBwLCBtYXhfYnBwOwo+ID4gIH07Cj4gPiAgCj4gPiAr c3RhdGljIGJvb2wgaW50ZWxfZHBfc291cmNlX3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAo+ID4gKwkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gKwo+ID4gKwkvKiBGSVhNRTogRkVDIG5lZWRlZCBm b3IgZXh0ZXJuYWwgRFAgdW50aWwgdGhlbiByZWplY3QgRFNDIG9uIERQICovCj4gPiArCWlmICgh aW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ ICsJcmV0dXJuIElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgJiYKPiA+ICsJCXBpcGVfY29uZmln LT5jcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVSX0E7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRp YyBib29sIGludGVsX2RwX3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ ID4gKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiA+ ICt7Cj4gPiArCXJldHVybiBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBw aXBlX2NvbmZpZykgJiYKPiA+ICsJCWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ ZHNjX2RwY2QpOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVf YnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKPiA+ICB7Cj4gPiBAQCAtMTg0MiwxNCArMTg2NCwxMTQgQEAg aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiAgCXJldHVybiBmYWxzZTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGludCBpbnRl bF9kcF9kc2NfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdTggZHNjX21h eF9icGMpCj4gPiArewo+ID4gKwlpbnQgaSwgbnVtX2JwYzsKPiA+ICsJdTggZHNjX2JwY1szXSA9 IHswfTsKPiA+ICsKPiA+ICsJbnVtX2JwYyA9IGRybV9kcF9kc2Nfc2lua19zdXBwb3J0ZWRfaW5w dXRfYnBjcyhpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gPiArCQkJCQkJICAgICAgIGRzY19icGMpOwo+ ID4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2JwYzsgaSsrKSB7Cj4gPiArCQlpZiAoZHNjX21heF9i cGMgPj0gZHNjX2JwY1tpXSkKPiA+ICsJCQlyZXR1cm4gZHNjX2JwY1tpXSAqIDM7Cj4gPiArCX0K PiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBib29sIGludGVs X2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gKwkJ CQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gKwkJCQkJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCj4gPiArCQkJCQlzdHJ1Y3QgbGlua19j b25maWdfbGltaXRzICpsaW1pdHMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRl dik7Cj4gPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPiArCXU4IGRzY19tYXhfYnBjOwo+ID4gKwl1 MTYgZHNjX21heF9vdXRwdXRfYnBwID0gMDsKPiA+ICsJdTggZHNjX2RwX3NsaWNlX2NvdW50ID0g MDsKPiAKPiBQb2ludGxlc3MgaW5pdGlhbGl6YXRpb24sIGFuZCB0aGVzZSBjYW4gYmUgbW92ZWQg dG8gbmFycm93ZXIgc2NvcGUuCgpZZXMgd2lsbCByZW1vdmUgdGhlIGluaXRpYWxpemF0aW9uLCBi dXQgaXQgaXMgYWxyZWFkeSBpbiB0aGUgbmFycm93ZXN0IHNjb3BlIHNpbmNlIGl0cwpkZWZpbmVk IGluIHRoaXMgZHNjX2NvbXB1dGVfY29uZmlnIGZ1bmN0aW9uIHRoYXQgdXNlcyBpdC4gRG8geW91 IG1lYW4gbW92aW5nIHRoZXNlCmRlZmluaXRpb25zIHRvIHRoZSBlbHNlIHBhcnQgc28gb25seSBp biBjYXNlIG9mIGV4dGVybmFsIERQPwoKPiAKPiA+ICsJaW50IHBpcGVfYnBwOwo+ID4gKwo+ID4g KwlpZiAoIWludGVsX2RwX3N1cHBvcnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpKQo+ID4g KwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlkc2NfbWF4X2JwYyA9IG1pbl90KHU4LCBEUF9E U0NfTUFYX1NVUFBPUlRFRF9CUEMsCj4gPiArCQkJICAgIGNvbm5fc3RhdGUtPm1heF9yZXF1ZXN0 ZWRfYnBjKTsKPiA+ICsKPiA+ICsJcGlwZV9icHAgPSBpbnRlbF9kcF9kc2NfY29tcHV0ZV9icHAo aW50ZWxfZHAsIGRzY19tYXhfYnBjKTsKPiA+ICsJaWYgKHBpcGVfYnBwIDwgRFBfRFNDX01JTl9T VVBQT1JURURfQlBDICogMykgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiTm8gRFNDIHN1cHBvcnQg Zm9yIGxlc3MgdGhhbiA4YnBjXG4iKTsKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsJfQo+ID4g Kwo+ID4gKwkvKgo+ID4gKwkgKiBGb3Igbm93IGVuYWJsZSBEU0MgZm9yIG1heCBicHAsIG1heCBs aW5rIHJhdGUsIG1heCBsYW5lIGNvdW50Lgo+ID4gKwkgKiBPcHRpbWl6ZSB0aGlzIGxhdGVyIGZv ciB0aGUgbWluaW11bSBwb3NzaWJsZSBsaW5rIHJhdGUvbGFuZSBjb3VudAo+ID4gKwkgKiB3aXRo IERTQyBlbmFibGVkIGZvciB0aGUgcmVxdWVzdGVkIG1vZGUuCj4gPiArCSAqLwo+ID4gKwlwaXBl X2NvbmZpZy0+cGlwZV9icHAgPSBwaXBlX2JwcDsKPiA+ICsJcGlwZV9jb25maWctPnBvcnRfY2xv Y2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy0+bWF4X2Nsb2NrXTsKPiA+ICsJcGlw ZV9jb25maWctPmxhbmVfY291bnQgPSBsaW1pdHMtPm1heF9sYW5lX2NvdW50Owo+ID4gKwo+ID4g KwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ID4gKwkJcGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3NlZF9icHAgPQo+ID4gKwkJCW1pbl90KHUxNiwgZHJtX2VkcF9kc2Nf c2lua19vdXRwdXRfYnBwKGludGVsX2RwLT5kc2NfZHBjZCkgPj4gNCwKPiA+ICsJCQkgICAgICBw aXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xp Y2VfY291bnQgPQo+ID4gKwkJCWRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoaW50ZWxf ZHAtPmRzY19kcGNkLAo+ID4gKwkJCQkJCQl0cnVlKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCWRz Y19tYXhfb3V0cHV0X2JwcCA9Cj4gPiArCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJCSAgICBwaXBlX2NvbmZpZy0+bGFuZV9j b3VudCwKPiA+ICsJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+ICsJCQkJ CQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gPiArCQkJZHNjX2RwX3NsaWNl X2NvdW50ID0KPiA+ICsJCQkJaW50ZWxfZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwK PiA+ICsJCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gKwkJCQkJCQkg ICAgIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkpOwo+IAo+IFRoZXJlJ3Mgc29tZSBraW5k IG9mIGluZGVudCBmYWlsIGhlcmUuCgpXaWxsIGNvcnJlY3QgdGhhdAoKPiAKPiA+ICsJCWlmICgh KGRzY19tYXhfb3V0cHV0X2JwcCAmJiBkc2NfZHBfc2xpY2VfY291bnQpKSB7Cj4gCj4gJyFhIHx8 ICFiJyBtaWdodCBiZSBhIGJpdCBtb3JlIGxlZ2libGUuCgpZZXMgSSBndWVzcyB0aGF0IG1ha2Vz IGl0IG1vcmUgaW50dWl0aXZlLCB3aWxsIGNoYW5nZSBpdC4KCj4gCj4gVGhlIGxvZ2ljIHNlZW1z IGdvb2Qgbm93IHNvCj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+CgpUaGFua3MgZm9yIHRoZSByZXZpZXcuCgpNYW5hc2kKCj4gCj4g PiArCQkJRFJNX0RFQlVHX0tNUygiQ29tcHJlc3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBv cnRlZFxuIik7Cj4gPiArCQkJcmV0dXJuIGZhbHNlOwo+ID4gKwkJfQo+ID4gKwkJcGlwZV9jb25m aWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAgPSBtaW5fdCh1MTYsCj4gPiArCQkJCQkJCSAg ICAgICBkc2NfbWF4X291dHB1dF9icHAgPj4gNCwKPiA+ICsJCQkJCQkJICAgICAgIHBpcGVfY29u ZmlnLT5waXBlX2JwcCk7Cj4gPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3Vu dCA9IGRzY19kcF9zbGljZV9jb3VudDsKPiA+ICsJfQo+ID4gKwkvKgo+ID4gKwkgKiBWRFNDIGVu Z2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9jaywgc28gaWYgcGVhayBwaXhlbCByYXRl Cj4gPiArCSAqIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSBDZGNsb2NrIGFuZCBpZiBzbGlj ZSBjb3VudCBpcyBldmVuCj4gPiArCSAqIHRoZW4gd2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3Rh bmNlcy4KPiA+ICsJICovCj4gPiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID4gZGV2 X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gPiArCQlpZiAocGlwZV9jb25maWctPmRzY19wYXJh bXMuc2xpY2VfY291bnQgPiAxKSB7Cj4gPiArCQkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNj X3NwbGl0ID0gdHJ1ZTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tNUygiQ2Fu bm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMiBWRFNDIGluc3RhbmNlc1xuIik7Cj4gPiArCQkJcmV0 dXJuIGZhbHNlOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1z LmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7Cj4gPiArCURSTV9ERUJVR19LTVMoIkRQIERTQyBj b21wdXRlZCB3aXRoIElucHV0IEJwcCA9ICVkICIKPiA+ICsJCSAgICAgICJDb21wcmVzc2VkIEJw cCA9ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsCj4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+cGlw ZV9icHAsCj4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2Jw cCwKPiA+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50KTsKPiA+ ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBib29sCj4gPiAg aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiA+IC0JCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiA+ ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICsJCQkg ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ID4gIHsKPiA+ICAJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKPiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190 b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gPiAgCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1p dHMgbGltaXRzOwo+ID4gIAlpbnQgY29tbW9uX2xlbjsKPiA+ICsJYm9vbCByZXQ7Cj4gPiAgCj4g PiAgCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQoaW50ZWxfZHAs Cj4gPiAgCQkJCQkJICAgIGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKPiA+IEBAIC0xODg4LDcg KzIwMTAsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gIAkJICAgICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tsaW1pdHMu bWF4X2Nsb2NrXSwKPiA+ICAJCSAgICAgIGxpbWl0cy5tYXhfYnBwLCBhZGp1c3RlZF9tb2RlLT5j cnRjX2Nsb2NrKTsKPiA+ICAKPiA+IC0JaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsK PiA+ICsJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gPiAgCQkvKgo+ID4gIAkJICog T3B0aW1pemUgZm9yIGZhc3QgYW5kIG5hcnJvdy4gZURQIDEuMyBzZWN0aW9uIDMuMyBhbmQgZURQ IDEuNAo+ID4gIAkJICogc2VjdGlvbiBBLjE6ICJJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBt aW5pbXVtIG51bWJlciBvZgo+ID4gQEAgLTE4OTgsMjYgKzIwMjAsNDIgQEAgaW50ZWxfZHBfY29t cHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCSAq IE5vdGUgdGhhdCB3ZSB1c2UgdGhlIG1heCBjbG9jayBhbmQgbGFuZSBjb3VudCBmb3IgZURQIDEu MyBhbmQKPiA+ICAJCSAqIGVhcmxpZXIsIGFuZCBmYXN0IHZzLiB3aWRlIGlzIGlycmVsZXZhbnQu Cj4gPiAgCQkgKi8KPiA+IC0JCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0 KGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gPiAt CQkJcmV0dXJuIGZhbHNlOwo+ID4gLQl9IGVsc2Ugewo+ID4gKwkJcmV0ID0gaW50ZWxfZHBfY29t cHV0ZV9saW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+ICsJCQkJCQkJ JmxpbWl0cyk7Cj4gPiArCSBlbHNlCj4gPiAgCQkvKiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQgd2lk ZS4gKi8KPiA+IC0JCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVs X2RwLCBwaXBlX2NvbmZpZywKPiA+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gPiArCQlyZXQg PSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmln LAo+ID4gKwkJCQkJCQkmbGltaXRzKTsKPiA+ICsKPiA+ICsJLyogZW5hYmxlIGNvbXByZXNzaW9u IGlmIHRoZSBtb2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLwo+ID4gKwlpZiAoIXJldCkg ewo+ID4gKwkJaWYgKCFpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVf Y29uZmlnLAo+ID4gKwkJCQkJCSBjb25uX3N0YXRlLCAmbGltaXRzKSkKPiA+ICAJCQlyZXR1cm4g ZmFsc2U7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAl ZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3Vu dCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+cGlw ZV9icHApOwo+ID4gKwlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5h YmxlKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIElu cHV0IGJwcCAlZCBDb21wcmVzc2VkIGJwcCAlZFxuIiwKPiA+ICsJCQkgICAgICBwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiArCQkJICAgICAgcGlw ZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1z LmNvbXByZXNzZWRfYnBwKTsKPiA+ICAKPiA+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRl IHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiA+IC0JCSAgICAgIGludGVsX2RwX2xpbmtf cmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+IC0JCQkJCSAgICAgcGlwZV9j b25maWctPnBpcGVfYnBwKSwKPiA+IC0JCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlw ZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiAtCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2Nv dW50KSk7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZh aWxhYmxlICVpXG4iLAo+ID4gKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLmNvbXByZXNzZWRfYnBwKSwKPiA+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRl KHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQpKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUg Y291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAo+ID4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5s YW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ICsJCQkgICAgICBwaXBlX2Nv bmZpZy0+cGlwZV9icHApOwo+ID4gIAo+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRl IHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiA+ICsJCQkgICAgICBpbnRlbF9kcF9saW5r X3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gPiArCQkJCQkJICAgICBwaXBl X2NvbmZpZy0+cGlwZV9icHApLAo+ID4gKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUo cGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCkpOwo+ID4gKwl9Cj4gPiAgCXJldHVybiB0cnVlOwo+ID4gIH0KPiA+ICAKPiA+IEBA IC0xOTgzLDcgKzIxMjEsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01P REVfRkxBR19EQkxDTEspCj4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCj4gPiAtCWlmICghaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZykpCj4gPiArCWlm ICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywgY29u bl9zdGF0ZSkpCj4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCj4gPiAgCWlmIChpbnRlbF9jb25u X3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTykgewo+ID4g QEAgLTIwMDEsMTEgKzIxMzksMjAgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0 X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4gPiAgCX0KPiA+ICAKPiA+IC0J aW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmln LT5sYW5lX2NvdW50LAo+ID4gLQkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ ID4gLQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+IC0JCQkgICAgICAgJnBp cGVfY29uZmlnLT5kcF9tX24sCj4gPiAtCQkJICAgICAgIGNvbnN0YW50X24pOwo+ID4gKwlpZiAo IXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSkKPiA+ICsJCWludGVs X2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCQkgICAgICAg cGlwZV9jb25maWctPmxhbmVfY291bnQsCj4gPiArCQkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5j cnRjX2Nsb2NrLAo+ID4gKwkJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiAr CQkJCSAgICAgICAmcGlwZV9jb25maWctPmRwX21fbiwKPiA+ICsJCQkJICAgICAgIGNvbnN0YW50 X24pOwo+ID4gKwllbHNlCj4gPiArCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmln LT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSwKPiA+ICsJCQkJICAgICAgIHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50LAo+ID4gKwkJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j aywKPiA+ICsJCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkgICAg ICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiArCQkJCSAgICAgICBjb25zdGFudF9uKTsKPiA+ ICAKPiA+ICAJaWYgKGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVM TCAmJgo+ID4gIAkJZGV2X3ByaXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQp IHsKPiA+IC0tIAo+ID4gMi4xOS4xCj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==