From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 12/23] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 28 Aug 2018 16:40:06 -0700 Message-ID: <20180828234006.GC4186@intel.com> References: <1533071239-28815-1-git-send-email-manasi.d.navare@intel.com> <1533071239-28815-13-git-send-email-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 549616E43F for ; Tue, 28 Aug 2018 23:38:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1533071239-28815-13-git-send-email-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SmFuaSwgVmlsbGUsCgpDb3VsZCB5b3UgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaCBzaW5jZSBp dCB0b3VjaGVzIHRoZSBEUCBjb21wdXRlCmNvbmZpZyBxdWl0ZSBhIGJpdCBhbmQgSSB3YW50IHRv IG1ha2Ugc3VyZSB0aGF0IGl0IGVuYWJsZXMgRFNDIGFzIHBlcgpvdXIgZGVzaWduIGFncmVlbWVu dCB0aGF0IHdlIGVuYWJsZSBpdCBvbmx5IGZvciByZXNvbHV0aW9ucyB0aGF0CmRvIG5vdCBmaXQg YXZhaWxhYmxlIGxpbmsgQlcuCgpJIGhhdmUgb25lIGNvbW1lbnQgYmVsb3cgdGhhdCBJIG5lZWQg dG8gZml4LiBCdXQgYXBhcnQgZnJvbSB0aGF0Cml0IHdpbGwgYmUgZ29vZCB0byBnZXQgc29tZSBm ZWVkYmFjayBvbiB0aGlzIGxvZ2ljLgoKCk9uIFR1ZSwgSnVsIDMxLCAyMDE4IGF0IDAyOjA3OjA4 UE0gLTA3MDAsIE1hbmFzaSBOYXZhcmUgd3JvdGU6Cj4gRFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFi bGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBvY3VudCBhbmQKPiBkc2Nfc3BsaXQgYXJlIGFkZGVk IHRvIHRoZSBpbnRlbF9jcnRjX3N0YXRlLiBUaGVzZSBwYXJhbWV0ZXJzCj4gYXJlIHNldCBiYXNl ZCBvbiB0aGUgcmVxdWVzdGVkIG1vZGUgYW5kIGF2YWlsYWJsZSBsaW5rIHBhcmFtZXRlcnMKPiBk dXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMgY2hlY2sgcGhhc2UuCj4gVGhl c2UgdmFsdWVzIGFyZSB0aGVuIGxhdGVyIHVzZWQgdG8gcG9wdWxhdGUgdGhlIHJlbWFpbmluZyBE U0MKPiBhbmQgUkMgcGFyYW1ldGVycyBiZWZvcmUgZW5iYWxpbmcgRFNDIGluIGF0b21pYyBjb21t aXQuCj4gCj4gdjc6Cj4gKiBGaXggaW5kZW50YXRpb24gaW4gY29tcHV0ZV9tX24gKE1hbmFzaSkK PiAKPiB2NiAoRnJvbSBHYXVyYXYpOgo+ICogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwgb2YgaW50ZWxf ZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgYW5kCj4gaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNj X3BhcmFtcygpIGluIHRoZSBwYXRjaCB3aGVyZQo+IGl0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBp bGF0aW9uIHdhcm5pbmcgKEdhdXJhdikKPiAKPiB2NToKPiBBZGQgZHJtX2RzY19jZmcgaW4gaW50 ZWxfY3J0Y19zdGF0ZSAoTWFuYXNpKQo+IAo+IHY0Ogo+ICogUmViYXNlIG9uIHJlZmFjdG9yaW5n IG9mIGludGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQo+ICogQWRkIGEgY29t bWVudCB3aHkgd2UgbmVlZCB0byBjaGVjayBQU1Igd2hpbGUgZW5hYmxpbmcgRFNDIChHYXVyYXYp Cj4gCj4gdjM6Cj4gKiBDaGVjayBQUFIgPiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGluc3Rh bmNlcyAoVmlsbGUpCj4gCj4gdjI6Cj4gKiBBZGQgaWYtZWxzZSBmb3IgZURQL0RQIChHYXVyYXYp Cj4gCj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6 IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBBbnVz aGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gQ2M6IEdhdXJhdiBLIFNp bmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5h dmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIwICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuaCB8ICAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jICAgICAgfCAxNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgIHwgICAyICstCj4gIDQgZmlsZXMgY2hh bmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA1NzdiMzBkLi5kZTg5NWFiIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC02NDYwLDcgKzY0NjAsNyBAQCBzdGF0 aWMgaW50IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKPiAgCj4gIAlwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID0gbGFuZTsKPiAgCj4gLQlp bnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgbGFuZSwgZmRpX2Rv dGNsb2NrLAo+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAs IDAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiAgCQkJICAgICAgIGxpbmtfYncsICZwaXBlX2NvbmZp Zy0+ZmRpX21fbiwgZmFsc2UpOwo+ICAKPiAgCXJldCA9IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5l cyhkZXYsIGludGVsX2NydGMtPnBpcGUsIHBpcGVfY29uZmlnKTsKPiBAQCAtNjY5NywxNyArNjY5 NywyNSBAQCBzdGF0aWMgdm9pZCBjb21wdXRlX21fbih1bnNpZ25lZCBpbnQgbSwgdW5zaWduZWQg aW50IG4sCj4gIH0KPiAgCj4gIHZvaWQKPiAtaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYml0 c19wZXJfcGl4ZWwsIGludCBubGFuZXMsCj4gK2ludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJp dHNfcGVyX3BpeGVsLCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKPiArCQkgICAgICAgaW50IG5s YW5lcywKPiAgCQkgICAgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKPiAgCQkg ICAgICAgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCj4gIAkJICAgICAgIGJvb2wgcmVkdWNl X21fbikKPiAgewo+ICAJbV9uLT50dSA9IDY0Owo+ICAKPiAtCWNvbXB1dGVfbV9uKGJpdHNfcGVy X3BpeGVsICogcGl4ZWxfY2xvY2ssCj4gLQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ IC0JCSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiAtCQkgICAgcmVkdWNlX21fbik7 Cj4gKwkvKiBGb3IgRFNDLCBEYXRhIE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNzZWQgQlBQ ICovCj4gKwlpZiAoY29tcHJlc3NlZF9icHApCj4gKwkJY29tcHV0ZV9tX24oY29tcHJlc3NlZF9i cHAgKiBwaXhlbF9jbG9jaywKPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ICsJ CQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gKwkJCSAgICByZWR1Y2VfbV9uKTsK PiArCWVsc2UKPiArCQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAo+ ICsJCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4gKwkJCSAgICAmbV9uLT5nbWNoX20s ICZtX24tPmdtY2hfbiwKPiArCQkJICAgIHJlZHVjZV9tX24pOwo+ICAKPiAgCWNvbXB1dGVfbV9u KHBpeGVsX2Nsb2NrLCBsaW5rX2Nsb2NrLAo+ICAJCSAgICAmbV9uLT5saW5rX20sICZtX24tPmxp bmtfbiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gaW5kZXggMGE3OWE0Ni4u YmEwMTNlNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiBAQCAtMzYw LDcgKzM2MCw4IEBAIHN0cnVjdCBpbnRlbF9saW5rX21fbiB7Cj4gIAkgICAgIChfX2kpKyspIFwK PiAgCQlmb3JfZWFjaF9pZihwbGFuZSkKPiAgCj4gLXZvaWQgaW50ZWxfbGlua19jb21wdXRlX21f bihpbnQgYnBwLCBpbnQgbmxhbmVzLAo+ICt2b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50 IGJwcCwgdWludDE2X3QgY29tcHJlc3NlZF9icHAsCj4gKwkJCSAgICBpbnQgbmxhbmVzLAo+ICAJ CQkgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKPiAgCQkJICAgIHN0cnVjdCBp bnRlbF9saW5rX21fbiAqbV9uLAo+ICAJCQkgICAgYm9vbCByZWR1Y2VfbV9uKTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBpbmRleCA4NDU5ZDc0Li43MTMyZjUyIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gQEAgLTQ3LDYgKzQ3LDggQEAKPiAgCj4gIC8qIERQIERTQyBzbWFsbCBq b2luZXIgaGFzIDIgRklGT3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICovCj4gICNkZWZpbmUgRFBf RFNDX01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAo+ICsjZGVmaW5lIERQX0RTQ19N SU5fU1VQUE9SVEVEX0JQQwkJOAo+ICsjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQwkJ MTAKPiAgCj4gIC8qIERQIERTQyB0aHJvdWdocHV0IHZhbHVlcyB1c2VkIGZvciBzbGljZSBjb3Vu dCBjYWxjdWxhdGlvbnMgS1BpeGVscy9zICovCj4gICNkZWZpbmUgRFBfRFNDX1BFQUtfUElYRUxf UkFURQkJCTI3MjAwMDAKPiBAQCAtMTg5Nyw2ICsxODk5LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxf ZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQl9Cj4gIAl9Cj4g IAo+ICsJLyogSWYgRFNDIGlzIHN1cHBvcnRlZCwgdXNlIHRoZSBtYXggdmFsdWUgcmVwb3J0ZWQg YnkgcGFuZWwgKi8KPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwICYmCj4gKwkgICAg ZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpIHsKPiArCQlicGMg PSBtaW5fdCh1OCwKPiArCQkJICAgIGRybV9kcF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoaW50 ZWxfZHAtPmRzY19kcGNkKSwKPiArCQkJICAgIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4g KwkJaWYgKCFicGMpCgpUaGlzIGFjdHVhbGx5IHNob3VsZCBiZSBjaGVja2luZyBmb3IgaWYgKGJw Yykgc2luY2UgZm9yIGFuIGludmFsaWQgdmFsdWUsIHRoZSBkcm1fZHBfZHNjX3NpbmtfbWF4X2Nv bG9yX2RlcHRoCndpbGwgcmV0dXJuIDAuIEkgd2lsbCBtYWtlIHRoaXMgY2hhbmdlIGluIHRoZSBm aW5hbCByZXYuCgpNYW5hc2kKCj4gKwkJCWJwcCA9IDMgKiBicGM7Cj4gKwl9Cj4gKwo+ICAJcmV0 dXJuIGJwcDsKPiAgfQo+ICAKPiBAQCAtMTk1NywxNCArMTk2OSwxMSBAQCBpbnRlbF9kcF9jb21w dXRlX2xpbmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJCWxp bmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKPiAgCQkJCWxpbmtfYXZh aWwgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKGxpbmtfY2xvY2ssCj4gIAkJCQkJCQkJICAgIGxh bmVfY291bnQpOwo+IC0KPiAtCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlua19hdmFpbCkgewo+IC0J CQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiAtCQkJCQlwaXBlX2Nv bmZpZy0+cGlwZV9icHAgPSBicHA7Cj4gLQkJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBs aW5rX2Nsb2NrOwo+IC0KPiArCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3Vu dDsKPiArCQkJCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsKPiArCQkJCXBpcGVfY29uZmln LT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiArCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlua19h dmFpbCkKPiAgCQkJCQlyZXR1cm4gdHJ1ZTsKPiAtCQkJCX0KPiAgCQkJfQo+ICAJCX0KPiAgCX0K PiBAQCAtMTk3MiwxMCArMTk4MSw4MiBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dp ZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+ICAK PiArc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4gKwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAo+ICsJCQkJCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgKmxpbWl0cykKPiArewo+ICsJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9k cCk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19w b3J0LT5iYXNlLmJhc2UuZGV2KTsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gKwllbnVtIHBpcGUg cGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0YyktPnBpcGU7Cj4gKwl1 MTYgZHNjX21heF9vdXRwdXRfYnBwID0gMDsKPiArCXU4IGRzY19kcF9zbGljZV9jb3VudCA9IDA7 Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMCB8fAo+ICsJICAgICFkcm1fZHBf c2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKSkKPiArCQlyZXR1cm4gZmFsc2U7 Cj4gKwo+ICsJLyogRFAgRFNDIG9ubHkgc3VwcG9ydGVkIG9uIFBpcGUgQiBhbmQgQyAqLwo+ICsJ aWYgKHBpcGUgPT0gUElQRV9BICYmICFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQo+ICsJCXJl dHVybiBmYWxzZTsKPiArCj4gKwkvKiBEU0Mgbm90IHN1cHBvcnRlZCBmb3IgRFNDIHNpbmsgQlBD IDwgOCAqLwo+ICsJaWYgKGxpbWl0cy0+bWF4X2JwcCA8IDMgKiBEUF9EU0NfTUlOX1NVUFBPUlRF RF9CUEMpIHsKPiArCQlEUk1fREVCVUdfS01TKCJObyBEU0Mgc3VwcG9ydCBmb3IgbGVzcyB0aGFu IDhicGNcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlpZiAoaW50ZWxfZHBf aXNfZWRwKGludGVsX2RwKSkgewo+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNz ZWRfYnBwID0KPiArCQkJZHJtX2VkcF9kc2Nfc2lua19vdXRwdXRfYnBwKGludGVsX2RwLT5kc2Nf ZHBjZCkgPj4gNDsKPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9Cj4g KwkJCWRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoaW50ZWxfZHAtPmRzY19kcGNkLAo+ ICsJCQkJCQkJdHJ1ZSk7Cj4gKwl9IGVsc2Ugewo+ICsKPiArCQlkc2NfbWF4X291dHB1dF9icHAg PSBpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4g KwkJCQkJCQkJIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ICsJCQkJCQkJCSBhZGp1c3RlZF9t b2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkJCSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5 KTsKPiArCQlkc2NfZHBfc2xpY2VfY291bnQgPSBpbnRlbF9kcF9kc2NfZ2V0X3NsaWNlX2NvdW50 KGludGVsX2RwLAo+ICsJCQkJCQkJCSAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiArCQkJ CQkJCQkgIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkpOwo+ICsJCWlmICghKGRzY19tYXhf b3V0cHV0X2JwcCAmJiBkc2NfZHBfc2xpY2VfY291bnQpKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMo IkNvbXByZXNzZWQgQlBQL1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRcbiIpOwo+ICsJCQlyZXR1 cm4gZmFsc2U7Cj4gKwkJfQo+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRf YnBwID0gZHNjX21heF9vdXRwdXRfYnBwID4+IDQ7Cj4gKwkJcGlwZV9jb25maWctPmRzY19wYXJh bXMuc2xpY2VfY291bnQgPSBkc2NfZHBfc2xpY2VfY291bnQ7Cj4gKwl9Cj4gKwkvKgo+ICsJICog VkRTQyBlbmdpbmUgb3BlcmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4 ZWwgcmF0ZQo+ICsJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIENkY2xvY2sgYW5kIGlm IHNsaWNlIGNvdW50IGlzIGV2ZW4KPiArCSAqIHRoZW4gd2UgbmVlZCB0byB1c2UgMiBWRFNDIGlu c3RhbmNlcy4KPiArCSAqLwo+ICsJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0g ZmFsc2U7Cj4gKwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhf Y2RjbGtfZnJlcSkgewo+ICsJCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3Vu dCA+IDEpIHsKPiArCQkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsK PiArCQl9IGVsc2Ugewo+ICsJCQlEUk1fREVCVUdfS01TKCJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRv IHVzZSAyIFZEU0MgaW5zdGFuY2VzXG4iKTsKPiArCQkJcmV0dXJuIGZhbHNlOwo+ICsJCX0KPiAr CX0KPiArCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7 Cj4gKwlEUk1fREVCVUdfS01TKCJEUCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAi Cj4gKwkJICAgICAgIkNvbXByZXNzZWQgQnBwID0gJWQgU2xpY2UgQ291bnQgPSAlZFxuIiwKPiAr CQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gKwkJICAgICAgcGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3NlZF9icHAsCj4gKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJh bXMuc2xpY2VfY291bnQpOwo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICBzdGF0aWMg Ym9vbAo+ICBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKPiAgewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1 Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKPiBAQCAtMTk5Myw3ICsyMDc0LDkgQEAgaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCWxpbWl0cy5taW5fbGFuZV9jb3VudCA9IDE7Cj4gIAlsaW1pdHMubWF4X2xhbmVfY291bnQg PSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gIAo+IC0JbGltaXRzLm1pbl9i cHAgPSA2ICogMzsKPiArCWxpbWl0cy5taW5fYnBwID0gKElOVEVMX0dFTihkZXZfcHJpdikgPj0g MTAgJiYKPiArCQkJICBkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNk KSkgPwo+ICsJCURQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAqIDMgOiA2ICogMzsKPiAgCWxpbWl0 cy5tYXhfYnBwID0gaW50ZWxfZHBfY29tcHV0ZV9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsK PiAgCj4gIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewo+IEBAIC0yMDIwLDE5ICsy MTAzLDQzIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAkgKiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQgd2lkZS4gVGhpcyBpcyB0 aGUgcGxhY2UgdG8gYWRkIGFsdGVybmF0aXZlCj4gIAkgKiBvcHRpbWl6YXRpb24gcG9saWN5Lgo+ ICAJICovCj4gLQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShpbnRlbF9k cCwgcGlwZV9jb25maWcsICZsaW1pdHMpKQo+IC0JCXJldHVybiBmYWxzZTsKPiArCWlmICghaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiAr CQkJCQkgICAgICAgJmxpbWl0cykpIHsKPiAgCj4gLQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNv dW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9j b3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gLQkJICAgICAgcGlwZV9jb25maWctPnBp cGVfYnBwKTsKPiArCQlEUk1fREVCVUdfS01TKCJEUCByZXF1aXJlZCBMaW5rIHJhdGUgJWkgZG9l cyBub3QgZml0IGF2YWlsYWJsZSAlaVxuIiwKPiArCQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1 aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkgICAgIHBpcGVfY29uZmln LT5waXBlX2JwcCksCj4gKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25m aWctPnBvcnRfY2xvY2ssCj4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsK PiArCj4gKwkJLyogZW5hYmxlIGNvbXByZXNzaW9uIGlmIHRoZSBtb2RlIGRvZXNuJ3QgZml0IGF2 YWlsYWJsZSBCVyAqLwo+ICsJCWlmICghaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKGludGVs X2RwLCBwaXBlX2NvbmZpZywKPiArCQkJCQkJICZsaW1pdHMpKQo+ICsJCQlyZXR1cm4gZmFsc2U7 Cj4gKwl9Cj4gKwo+ICsJaWYgKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2Vu YWJsZSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgSW5w dXQgYnBwICVkIENvbXByZXNzZWQgYnBwICVkXG4iLAo+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+ bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJCSAgICAgIHBpcGVfY29u ZmlnLT5waXBlX2JwcCwKPiArCQkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJl c3NlZF9icHApOwo+ICAKPiAgCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAl aSBhdmFpbGFibGUgJWlcbiIsCj4gIAkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+IC0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBw KSwKPiArCQkJCQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwK PiAgCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LAo+ICAJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiArCX0gZWxzZSB7Cj4g KwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4g KwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9j aywKPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiAgCj4gKwlEUk1fREVCVUdf S01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ICsJCSAgICAg IGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiArCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCksCj4gKwkJICAgICAgaW50ZWxfZHBfbWF4X2Rh dGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJCQkgICAgIHBpcGVfY29uZmln LT5sYW5lX2NvdW50KSk7Cj4gKwl9Cj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiBAQCAtMjEx MSw3ICsyMjE4LDkgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAkJCWludGVsX2Nvbm5fc3RhdGUtPmJyb2FkY2FzdF9yZ2IgPT0gSU5U RUxfQlJPQURDQVNUX1JHQl9MSU1JVEVEOwo+ICAJfQo+ICAKPiAtCWludGVsX2xpbmtfY29tcHV0 ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiAr CWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ICsJCQkgICAg ICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCj4gKwkJCSAgICAgICBw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNf Y2xvY2ssCj4gIAkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiAgCQkJICAgICAg ICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAo+IEBAIC0yMTIwLDcgKzIyMjksNyBAQCBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWlmIChpbnRl bF9jb25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlICE9IE5VTEwgJiYKPiAgCQlkZXZfcHJp di0+ZHJycy50eXBlID09IFNFQU1MRVNTX0RSUlNfU1VQUE9SVCkgewo+ICAJCQlwaXBlX2NvbmZp Zy0+aGFzX2RycnMgPSB0cnVlOwo+IC0JCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29u ZmlnLT5waXBlX2JwcCwKPiArCQkJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+ cGlwZV9icHAsIDAsCj4gIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ICAJ CQkJCSAgICAgICBpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlLT5jbG9jaywK PiAgCQkJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbXN0LmMKPiBpbmRleCAzNTJlNTIxLi40Zjk0MWI4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgYm9vbCBpbnRl bF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g IAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAtCWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBw LCBsYW5lX2NvdW50LAo+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihicHAsIDAsIGxhbmVfY291 bnQsCj4gIAkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICAJCQkgICAgICAg cGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gIAkJCSAgICAgICAmcGlwZV9jb25maWctPmRwX21f biwKPiAtLSAKPiAyLjcuNAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK