From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v8 07/19] drm/i915/dp: Compute DSC pipe config in atomic check Date: Fri, 2 Nov 2018 19:09:03 -0700 Message-ID: <20181103020902.GA11271@intel.com> References: <20181102213138.301-1-manasi.d.navare@intel.com> <20181102213138.301-8-manasi.d.navare@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: <20181102213138.301-8-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Anusha Srivatsa , Gaurav K Singh List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMDI6MzE6MjZQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3NlZCBicHAsIHNsaWNl IGNvdW50IGFuZAo+IGRzY19zcGxpdCBhcmUgYWRkZWQgdG8gdGhlIGludGVsX2NydGNfc3RhdGUu IFRoZXNlIHBhcmFtZXRlcnMKPiBhcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBh bmQgYXZhaWxhYmxlIGxpbmsgcGFyYW1ldGVycwo+IGR1cmluZyB0aGUgcGlwZSBjb25maWd1cmF0 aW9uIGluIGF0b21pYyBjaGVjayBwaGFzZS4KPiBUaGVzZSB2YWx1ZXMgYXJlIHRoZW4gbGF0ZXIg dXNlZCB0byBwb3B1bGF0ZSB0aGUgcmVtYWluaW5nIERTQwo+IGFuZCBSQyBwYXJhbWV0ZXJzIGJl Zm9yZSBlbmJhbGluZyBEU0MgaW4gYXRvbWljIGNvbW1pdC4KPiAKPiB2MTE6Cj4gKiBDb25zdCBj cnRjX3N0YXRlLCByZWplY3QgRFNDIG9uIERQIHdpdGhvdXQgRkVDIChWaWxsZSkKPiAqIERvbnQg c2V0IGRzY19zcGxpdCB0byBmYWxzZSAoVmlsbGUpCj4gdjEwOgo+ICogQWRkIGEgaGVscGVyIGZv ciBkcF9kc2Mgc3VwcG9ydCAoVmlsbGUpCj4gKiBTZXQgcGlwZV9jb25maWcgdG8gbWF4IGJwcCwg bGluayBwYXJhbXMgZm9yIERTQyBmb3Igbm93IChWaWxsZSkKPiAqIENvbXB1dGUgYnBwIC0gdXNl IGRwIGRzYyBzdXBwb3J0IGhlbHBlciAoVmlsbGUpCj4gdjk6Cj4gKiBSZWJhc2Ugb24gdG9wIG9m IGRybS10aXAgdGhhdCBub3cgdXNlcyBmYXN0X25hcnJvdyBjb25maWcKPiBmb3IgZWRwIChNYW5h c2kpCj4gdjg6Cj4gKiBDaGVjayBmb3IgRFNDIGJwYyBub3QgMCAobWFuYXNpKQo+IAo+IHY3Ogo+ ICogRml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5hc2kpCj4gCj4gdjYgKEZyb20g R2F1cmF2KToKPiAqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1dGVfZHNj X3BhcmFtcygpIGFuZAo+IGludm9rZSBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoKSBpbiB0 aGUgcGF0Y2ggd2hlcmUKPiBpdCBpcyBkZWZpbmVkIHRvIGZpeCBjb21waWxhdGlvbiB3YXJuaW5n IChHYXVyYXYpCj4gCj4gdjU6Cj4gQWRkIGRybV9kc2NfY2ZnIGluIGludGVsX2NydGNfc3RhdGUg KE1hbmFzaSkKPiAKPiB2NDoKPiAqIFJlYmFzZSBvbiByZWZhY3RvcmluZyBvZiBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyBvbiB0aXAgKE1hbmFzaSkKPiAqIEFkZCBhIGNvbW1lbnQgd2h5IHdlIG5l ZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2KQo+IAo+IHYzOgo+ICog Q2hlY2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQo+ IAo+IHYyOgo+ICogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQo+IAo+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+IENjOiBWaWxsZSBTeXJqYWxh IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogQW51c2hhIFNyaXZhdHNhIDxh bnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+IENjOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsu c2luZ2hAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5k Lm5hdmFyZUBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hh LnNyaXZhdHNhQGludGVsLmNvbT4KPiBBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgIDIwICsrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5o IHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE2NyAr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfbXN0LmMgIHwgICAyICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTY2IGluc2VydGlvbnMoKyks IDI2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBp bmRleCBiMjE5ZDU4NTgxNjAuLjQ3N2U1M2MzNzM1MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtNjQ0Miw3ICs2NDQyLDcgQEAgc3RhdGljIGludCBpcm9ubGFr ZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAo+ ICAJcGlwZV9jb25maWctPmZkaV9sYW5lcyA9IGxhbmU7Cj4gIAo+IC0JaW50ZWxfbGlua19jb21w dXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiArCWlu dGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLCBsYW5lLCBmZGlf ZG90Y2xvY2ssCj4gIAkJCSAgICAgICBsaW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9tX24sIGZh bHNlKTsKPiAgCj4gIAlyZXQgPSBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoZGV2LCBpbnRlbF9j cnRjLT5waXBlLCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTY2NzksMTcgKzY2NzksMjUgQEAgc3RhdGlj IHZvaWQgY29tcHV0ZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAo+ICB9Cj4g IAo+ICB2b2lkCj4gLWludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBp bnQgbmxhbmVzLAo+ICtpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwg dWludDE2X3QgY29tcHJlc3NlZF9icHAsCj4gKwkJICAgICAgIGludCBubGFuZXMsCj4gIAkJICAg ICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gIAkJICAgICAgIHN0cnVjdCBp bnRlbF9saW5rX21fbiAqbV9uLAo+ICAJCSAgICAgICBib29sIGNvbnN0YW50X24pCj4gIHsKPiAg CW1fbi0+dHUgPSA2NDsKPiAgCj4gLQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVs X2Nsb2NrLAo+IC0JCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiAtCQkgICAgJm1fbi0+ Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gLQkJICAgIGNvbnN0YW50X24pOwo+ICsJLyogRm9yIERT QywgRGF0YSBNL04gY2FsY3VsYXRpb24gdXNlcyBjb21wcmVzc2VkIEJQUCAqLwo+ICsJaWYgKGNv bXByZXNzZWRfYnBwKQo+ICsJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRfYnBwICogcGl4ZWxfY2xv Y2ssCj4gKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiArCQkJICAgICZtX24tPmdt Y2hfbSwgJm1fbi0+Z21jaF9uLAo+ICsJCQkgICAgY29uc3RhbnRfbik7Cj4gKwllbHNlCj4gKwkJ Y29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhlbF9jbG9jaywKPiArCQkJICAgIGxpbmtf Y2xvY2sgKiBubGFuZXMgKiA4LAo+ICsJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24s Cj4gKwkJCSAgICBjb25zdGFudF9uKTsKPiAgCj4gIAljb21wdXRlX21fbihwaXhlbF9jbG9jaywg bGlua19jbG9jaywKPiAgCQkgICAgJm1fbi0+bGlua19tLCAmbV9uLT5saW5rX24sCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+IGluZGV4IDVkNTBkZWNiY2JiNS4uYjBiMjNlMWU5 MzkyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+IEBAIC00MDcsNyAr NDA3LDggQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsKPiAgCSAgICAgKF9faSkrKykgXAo+ICAJ CWZvcl9lYWNoX2lmKHBsYW5lKQo+ICAKPiAtdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGlu dCBicHAsIGludCBubGFuZXMsCj4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBw LCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKPiArCQkJICAgIGludCBubGFuZXMsCj4gIAkJCSAg ICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ICAJCQkgICAgc3RydWN0IGludGVs X2xpbmtfbV9uICptX24sCj4gIAkJCSAgICBib29sIGNvbnN0YW50X24pOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+IGluZGV4IGIzOWI0YmRhOGU0MC4uNTgzMjZmYzlkOTM1IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTQ3LDYgKzQ3LDggQEAKPiAgCj4gIC8qIERQIERTQyBz bWFsbCBqb2luZXIgaGFzIDIgRklGT3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICovCj4gICNkZWZp bmUgRFBfRFNDX01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAo+ICsjZGVmaW5lIERQ X0RTQ19NSU5fU1VQUE9SVEVEX0JQQwkJOAo+ICsjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVE X0JQQwkJMTAKPiAgCj4gIC8qIERQIERTQyB0aHJvdWdocHV0IHZhbHVlcyB1c2VkIGZvciBzbGlj ZSBjb3VudCBjYWxjdWxhdGlvbnMgS1BpeGVscy9zICovCj4gICNkZWZpbmUgRFBfRFNDX1BFQUtf UElYRUxfUkFURQkJCTI3MjAwMDAKPiBAQCAtMTg0MCw2ICsxODQyLDI5IEBAIHN0cnVjdCBsaW5r X2NvbmZpZ19saW1pdHMgewo+ICAJaW50IG1pbl9icHAsIG1heF9icHA7Cj4gIH07Cj4gIAo+ICtz dGF0aWMgYm9vbCBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gKwkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9f aTkxNShpbnRlbF9kcCk7Cj4gKwo+ICsJLyogRklYTUU6IEZFQyBuZWVkZWQgZm9yIGV4dGVybmFs IERQIHVudGlsIHRoZW4gcmVqZWN0IERTQyBvbiBEUCAqLwo+ICsJaWYgKCFpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlyZXR1cm4gSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMCAmJgo+ICsJCXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciAhPSBU UkFOU0NPREVSX0E7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGludGVsX2RwX3N1cHBvcnRzX2Rz YyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gK3sKPiArCWlmICghaW50ZWxfZHBfc291cmNlX3N1 cHBvcnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpIHx8Cj4gKwkgICAgIWRybV9kcF9zaW5r X3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKQo+ICsJCXJldHVybiBmYWxzZTsKPiAr Cj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRl X2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gQEAgLTE4NjMsNiArMTg4OCwxNSBAQCBzdGF0aWMg aW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJ fQo+ICAJfQo+ICAKPiArCS8qIElmIERTQyBpcyBzdXBwb3J0ZWQsIHVzZSB0aGUgbWF4IHZhbHVl IHJlcG9ydGVkIGJ5IHBhbmVsICovCj4gKwlpZiAoaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVs X2RwLCBwaXBlX2NvbmZpZykpIHsKPiArCQlicGMgPSBtaW5fdCh1OCwKPiArCQkJICAgIGRybV9k cF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoaW50ZWxfZHAtPmRzY19kcGNkKSwKPiArCQkJICAg IERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4gKwkJaWYgKGJwYykKPiArCQkJYnBwID0gbWlu KGJwcCwgMypicGMpOwoKVmlsbGUsIHRoZSBwcm9ibGVtIHdpdGggY2hvc2luZyB0aGUgbWluIGJl dHdlZW4gZXhpc3RpbmcgYnBwIGFuZCAzICogYnBjIChjb21wdXRlZCBmcm9tIERTQyBkcGNkKSBp cyB0aGF0IEVESUQgYmFzZWQgYnBjCm1pZ2h0IGJlIGxvd2VyIGFuZCBpbiBjYXNlIERTQyBpcyBz dXBwb3J0ZWQsIHRoZSBicGMgdmFsdWUgc2hvdWxkIGJlIGJhc2VkIG9uIHRoZSBkc2MgY29sb3Ig ZGVwdGggYW5kIHRoYXQgc2hvdWxkCm92ZXJyaWRlIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tIEVE SUQuICBUaGlzIHdhcyBjb25maXJtZWQgZnJvbSB0aGUgVkRTQyBwcm9ncmFtbWluZyBkb2N1bWVu dHMgb2J0YWluZWQgZnJvbQpIVyBhcmNoaXRlY3R1cmUgZm9sa3MKClNvIGkgdGhpbmsgaXQgc2hv dWxkIHN0aWxsIGJlIGlmIERTQyBzdXBwb3J0ZWQgdXNlIHRoZSBicGMgZGlyZWN0bHkgZnJvbSBt aW5fdCh1OCwgZHJtX2RwX2RzY19zaW5rX21heF9jb2xvcl9kZXB0aChpbnRlbF9kcC0+ZHNjX2Rw Y2QpLERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7CgpNYW5hc2kKCj4gKwl9Cj4gKwo+ICAJcmV0 dXJuIGJwcDsKPiAgfQo+ICAKPiBAQCAtMTk3NCw2ICsyMDA4LDgwIEBAIGludGVsX2RwX2NvbXB1 dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJcmV0dXJu IGZhbHNlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCQkJY29uc3Qgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0 cyAqbGltaXRzKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9 IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICsJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKPiArCXUxNiBkc2NfbWF4X291dHB1dF9icHAgPSAwOwo+ICsJdTggZHNjX2RwX3Ns aWNlX2NvdW50ID0gMDsKPiArCj4gKwlpZiAoIWludGVsX2RwX3N1cHBvcnRzX2RzYyhpbnRlbF9k cCwgcGlwZV9jb25maWcpKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwkvKiBEU0Mgbm90IHN1 cHBvcnRlZCBmb3IgRFNDIHNpbmsgQlBDIDwgOCAqLwo+ICsJaWYgKGxpbWl0cy0+bWF4X2JwcCA8 IDMgKiBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMpIHsKPiArCQlEUk1fREVCVUdfS01TKCJObyBE U0Mgc3VwcG9ydCBmb3IgbGVzcyB0aGFuIDhicGNcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiAr CX0KPiArCj4gKwkvKgo+ICsJICogRm9yIG5vdyBlbmFibGUgRFNDIGZvciBtYXggYnBwLCBtYXgg bGluayByYXRlLCBtYXggbGFuZSBjb3VudC4KPiArCSAqIE9wdGltaXplIHRoaXMgbGF0ZXIgZm9y IHRoZSBtaW5pbXVtIHBvc3NpYmxlIGxpbmsgcmF0ZS9sYW5lIGNvdW50Cj4gKwkgKiB3aXRoIERT QyBlbmFibGVkIGZvciB0aGUgcmVxdWVzdGVkIG1vZGUuCj4gKwkgKi8KPiArCXBpcGVfY29uZmln LT5waXBlX2JwcCA9IGxpbWl0cy0+bWF4X2JwcDsKPiArCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr ID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tsaW1pdHMtPm1heF9jbG9ja107Cj4gKwlwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCA9IGxpbWl0cy0+bWF4X2xhbmVfY291bnQ7Cj4gKwo+ICsJaWYgKGlu dGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCA9Cj4gKwkJCWRybV9lZHBfZHNjX3Npbmtfb3V0cHV0X2JwcChpbnRlbF9k cC0+ZHNjX2RwY2QpID4+IDQ7Cj4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291 bnQgPQo+ICsJCQlkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50KGludGVsX2RwLT5kc2Nf ZHBjZCwKPiArCQkJCQkJCXRydWUpOwo+ICsJfSBlbHNlIHsKPiArCQlkc2NfbWF4X291dHB1dF9i cHAgPQo+ICsJCQlpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAocGlwZV9jb25maWctPnBvcnRf Y2xvY2ssCj4gKwkJCQkJCSAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiArCQkJCQkJICAg IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5j cnRjX2hkaXNwbGF5KTsKPiArCQlkc2NfZHBfc2xpY2VfY291bnQgPQo+ICsJCQlpbnRlbF9kcF9k c2NfZ2V0X3NsaWNlX2NvdW50KGludGVsX2RwLAo+ICsJCQkJCQkgICAgIGFkanVzdGVkX21vZGUt PmNydGNfY2xvY2ssCj4gKwkJCQkJCSAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7 Cj4gKwkJaWYgKCEoZHNjX21heF9vdXRwdXRfYnBwICYmIGRzY19kcF9zbGljZV9jb3VudCkpIHsK PiArCQkJRFJNX0RFQlVHX0tNUygiQ29tcHJlc3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBv cnRlZFxuIik7Cj4gKwkJCXJldHVybiBmYWxzZTsKPiArCQl9Cj4gKwkJcGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3NlZF9icHAgPSBkc2NfbWF4X291dHB1dF9icHAgPj4gNDsKPiArCQlw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3VudDsK PiArCX0KPiArCS8qCj4gKwkgKiBWRFNDIGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBj bG9jaywgc28gaWYgcGVhayBwaXhlbCByYXRlCj4gKwkgKiBpcyBncmVhdGVyIHRoYW4gdGhlIG1h eGltdW0gQ2RjbG9jayBhbmQgaWYgc2xpY2UgY291bnQgaXMgZXZlbgo+ICsJICogdGhlbiB3ZSBu ZWVkIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzLgo+ICsJICovCj4gKwlpZiAoYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ICsJCWlmIChwaXBl X2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA+IDEpIHsKPiArCQkJcGlwZV9jb25maWct PmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsKPiArCQl9IGVsc2Ugewo+ICsJCQlEUk1fREVC VUdfS01TKCJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzXG4iKTsK PiArCQkJcmV0dXJuIGZhbHNlOwo+ICsJCX0KPiArCX0KPiArCXBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7Cj4gKwlEUk1fREVCVUdfS01TKCJEUCBEU0Mg Y29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCj4gKwkJICAgICAgIkNvbXByZXNzZWQgQnBw ID0gJWQgU2xpY2UgQ291bnQgPSAlZFxuIiwKPiArCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9i cHAsCj4gKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCj4g KwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQpOwo+ICsKPiArCXJl dHVybiB0cnVlOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbAo+ICBpbnRlbF9kcF9jb21wdXRlX2xp bmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiBAQCAtMTk4Miw2ICsyMDkwLDcgQEAg aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29k ZXItPmJhc2UpOwo+ICAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7Cj4gIAlpbnQg Y29tbW9uX2xlbjsKPiArCWJvb2wgcmV0ID0gZmFsc2U7Cj4gIAo+ICAJY29tbW9uX2xlbiA9IGlu dGVsX2RwX2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwKPiAgCQkJCQkJICAgIGludGVs X2RwLT5tYXhfbGlua19yYXRlKTsKPiBAQCAtMTk5NSw4ICsyMTA0LDEyIEBAIGludGVsX2RwX2Nv bXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlsaW1p dHMubWluX2xhbmVfY291bnQgPSAxOwo+ICAJbGltaXRzLm1heF9sYW5lX2NvdW50ID0gaW50ZWxf ZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ICAKPiAtCWxpbWl0cy5taW5fYnBwID0gNiAq IDM7Cj4gIAlsaW1pdHMubWF4X2JwcCA9IGludGVsX2RwX2NvbXB1dGVfYnBwKGludGVsX2RwLCBw aXBlX2NvbmZpZyk7Cj4gKwlpZiAoaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBl X2NvbmZpZykgJiYKPiArCSAgICBsaW1pdHMubWF4X2JwcCA+PSBEUF9EU0NfTUlOX1NVUFBPUlRF RF9CUEMqMykKPiArCQlsaW1pdHMubWluX2JwcCA9IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAq IDM7Cj4gKwllbHNlCj4gKwkJbGltaXRzLm1pbl9icHAgPSA2ICogMzsKPiAgCj4gIAlpZiAoaW50 ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJiBpbnRlbF9kcC0+ZWRwX2RwY2RbMF0gPCBEUF9FRFBf MTQpIHsKPiAgCQkvKgo+IEBAIC0yMDIwLDcgKzIxMzMsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xp bmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCSAgICAgIGludGVs X2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLm1heF9jbG9ja10sCj4gIAkJICAgICAgbGltaXRzLm1h eF9icHAsIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOwo+ICAKPiAtCWlmIChpbnRlbF9kcF9p c19lZHAoaW50ZWxfZHApKSB7Cj4gKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKPiAg CQkvKgo+ICAJCSAqIE9wdGltaXplIGZvciBmYXN0IGFuZCBuYXJyb3cuIGVEUCAxLjMgc2VjdGlv biAzLjMgYW5kIGVEUCAxLjQKPiAgCQkgKiBzZWN0aW9uIEEuMTogIkl0IGlzIHJlY29tbWVuZGVk IHRoYXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mCj4gQEAgLTIwMzAsMjYgKzIxNDMsNDIgQEAgaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQkgKiBOb3RlIHRoYXQgd2UgdXNlIHRoZSBtYXggY2xvY2sgYW5kIGxhbmUgY291bnQgZm9y IGVEUCAxLjMgYW5kCj4gIAkJICogZWFybGllciwgYW5kIGZhc3QgdnMuIHdpZGUgaXMgaXJyZWxl dmFudC4KPiAgCQkgKi8KPiAtCQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFz dChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gLQkJCQkJCSAgICAgICAmbGltaXRzKSkKPiAtCQkJ cmV0dXJuIGZhbHNlOwo+IC0JfSBlbHNlIHsKPiArCQlyZXQgPSBpbnRlbF9kcF9jb21wdXRlX2xp bmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ICsJCQkJCQkJJmxpbWl0cyk7 Cj4gKwllbHNlCj4gIAkJLyogT3B0aW1pemUgZm9yIHNsb3cgYW5kIHdpZGUuICovCj4gLQkJaWYg KCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmln LAo+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gKwkJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9s aW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiArCQkJCQkJCSZsaW1pdHMp Owo+ICsKPiArCS8qIGVuYWJsZSBjb21wcmVzc2lvbiBpZiB0aGUgbW9kZSBkb2Vzbid0IGZpdCBh dmFpbGFibGUgQlcgKi8KPiArCWlmICghcmV0KSB7Cj4gKwkJaWYgKCFpbnRlbF9kcF9kc2NfY29t cHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ICsJCQkJCQkgJmxpbWl0cykpCj4g IAkJCXJldHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gLQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNv dW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9j b3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gLQkJICAgICAgcGlwZV9jb25maWctPnBp cGVfYnBwKTsKPiArCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFi bGUpIHsKPiArCQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIElucHV0 IGJwcCAlZCBDb21wcmVzc2VkIGJwcCAlZFxuIiwKPiArCQkJICAgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICsJCQkgICAgICBwaXBlX2NvbmZp Zy0+cGlwZV9icHAsCj4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNz ZWRfYnBwKTsKPiAgCj4gLQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkg YXZhaWxhYmxlICVpXG4iLAo+IC0JCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiAtCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCks Cj4gLQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9j aywKPiAtCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gKwkJRFJNX0RFQlVH X0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiArCQkJICAg ICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJ CQkJCQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwKPiArCQkJ ICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiAr CQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ICsJfSBlbHNlIHsKPiArCQlE Uk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiArCQkJ ICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ICAKPiArCQlEUk1fREVCVUdfS01T KCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ICsJCQkgICAgICBp bnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gKwkJCQkJ CSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiArCQkJICAgICAgaW50ZWxfZHBfbWF4X2Rh dGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJCQkJICAgICBwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCkpOwo+ICsJfQo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gQEAgLTIx MzMsNyArMjI2Miw5IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAJCQlpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElO VEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRDsKPiAgCX0KPiAgCj4gLQlpbnRlbF9saW5rX2NvbXB1 dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmxhbmVfY291bnQsCj4g KwlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwKPiArCQkJICAg ICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAo+ICsJCQkgICAgICAg cGlwZV9jb25maWctPmxhbmVfY291bnQsCj4gIAkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRj X2Nsb2NrLAo+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gIAkJCSAgICAg ICAmcGlwZV9jb25maWctPmRwX21fbiwKPiBAQCAtMjE0Miw3ICsyMjczLDcgQEAgaW50ZWxfZHBf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpZiAoaW50 ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZSAhPSBOVUxMICYmCj4gIAkJZGV2X3By aXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQpIHsKPiAgCQkJcGlwZV9jb25m aWctPmhhc19kcnJzID0gdHJ1ZTsKPiAtCQkJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2Nv bmZpZy0+cGlwZV9icHAsCj4gKwkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWct PnBpcGVfYnBwLCAwLAo+ICAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiAg CQkJCQkgICAgICAgaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZS0+Y2xvY2ss Cj4gIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5jCj4gaW5kZXggOGI3MWQ2NGViZDlkLi5lMDJjYWVkZDQ0M2MgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC05MCw3ICs5MCw3IEBAIHN0YXRp YyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihicHAs IGxhbmVfY291bnQsCj4gKwlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGJwcCwgMCwgbGFuZV9jb3Vu dCwKPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gIAkJCSAgICAgICBw aXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiAgCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9u LAo+IC0tIAo+IDIuMTguMAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK