From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v5 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Mon, 15 Oct 2018 18:29:30 -0700 Message-ID: <20181016012930.GH2371@intel.com> References: <20181005232306.31133-1-manasi.d.navare@intel.com> <20181005232306.31133-14-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: <20181005232306.31133-14-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 SGkgSmFuaSwKClRoaXMgcGF0Y2ggaGFzIGEgdmVyYmFsIEFDSyBmcm9tIHlvdSB3aGVuIHdlIHdl bnQgb3ZlciB0aGUgcGF0Y2ggdG9nZXRoZXIsClRoaXMgaXMgcmViYXNlZCBvbiB0b3Agb2YgZWRw IGZhc3QvbmFycm93IG9wdGltaXplZCBjb25maWcgbGlrZSB3ZSBkaXNjdXNzZWQuCmNvdWxkIHlv dSBwbGVhc2UgcmV2aWV3IHRoaXM/CgpSZWdhcmRzCk1hbmFzaQoKT24gRnJpLCBPY3QgMDUsIDIw MTggYXQgMDQ6MjI6NTFQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3cm90ZToKPiBEU0MgcGFyYW1z IGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3NlZCBicHAsIHNsaWNlIG9jdW50IGFuZAo+IGRzY19z cGxpdCBhcmUgYWRkZWQgdG8gdGhlIGludGVsX2NydGNfc3RhdGUuIFRoZXNlIHBhcmFtZXRlcnMK PiBhcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxlIGxpbmsg cGFyYW1ldGVycwo+IGR1cmluZyB0aGUgcGlwZSBjb25maWd1cmF0aW9uIGluIGF0b21pYyBjaGVj ayBwaGFzZS4KPiBUaGVzZSB2YWx1ZXMgYXJlIHRoZW4gbGF0ZXIgdXNlZCB0byBwb3B1bGF0ZSB0 aGUgcmVtYWluaW5nIERTQwo+IGFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KPiAKPiB2OToKPiAqIFJlYmFzZSBvbiB0b3Agb2YgZHJtLXRpcCB0 aGF0IG5vdyB1c2VzIGZhc3RfbmFycm93IGNvbmZpZwo+IGZvciBlZHAgKE1hbmFzaSkKPiB2ODoK PiAqIENoZWNrIGZvciBEU0MgYnBjIG5vdCAwIChtYW5hc2kpCj4gCj4gdjc6Cj4gKiBGaXggaW5k ZW50YXRpb24gaW4gY29tcHV0ZV9tX24gKE1hbmFzaSkKPiAKPiB2NiAoRnJvbSBHYXVyYXYpOgo+ ICogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwgb2YgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkg YW5kCj4gaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGluIHRoZSBwYXRjaCB3 aGVyZQo+IGl0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgKEdhdXJhdikK PiAKPiB2NToKPiBBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0Y19zdGF0ZSAoTWFuYXNpKQo+ IAo+IHY0Ogo+ICogUmViYXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVsX2RwX2NvbXB1dGVfY29u ZmlnIG9uIHRpcCAoTWFuYXNpKQo+ICogQWRkIGEgY29tbWVudCB3aHkgd2UgbmVlZCB0byBjaGVj ayBQU1Igd2hpbGUgZW5hYmxpbmcgRFNDIChHYXVyYXYpCj4gCj4gdjM6Cj4gKiBDaGVjayBQUFIg PiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGluc3RhbmNlcyAoVmlsbGUpCj4gCj4gdjI6Cj4g KiBBZGQgaWYtZWxzZSBmb3IgZURQL0RQIChHYXVyYXYpCj4gCj4gQ2M6IEphbmkgTmlrdWxhIDxq YW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2 YXRzYUBpbnRlbC5jb20+Cj4gQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGlu dGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg IDIwICsrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAzICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE3MCArKysrKysrKysr KysrKysrKysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMg IHwgICAyICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDQwIGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAzNjQz NGM1MzU5YjEuLjRlYmY3YzgzMDg1YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBAQCAtNjUzMiw3ICs2NTMyLDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAo+ICAJcGlwZV9j b25maWctPmZkaV9sYW5lcyA9IGxhbmU7Cj4gIAo+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihw aXBlX2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiArCWludGVsX2xpbmtf Y29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLCBsYW5lLCBmZGlfZG90Y2xvY2ss Cj4gIAkJCSAgICAgICBsaW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9tX24sIGZhbHNlKTsKPiAg Cj4gIAlyZXQgPSBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoZGV2LCBpbnRlbF9jcnRjLT5waXBl LCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTY3NjcsMTcgKzY3NjcsMjUgQEAgc3RhdGljIHZvaWQgY29t cHV0ZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAo+ICB9Cj4gIAo+ICB2b2lk Cj4gLWludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVz LAo+ICtpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgdWludDE2X3Qg Y29tcHJlc3NlZF9icHAsCj4gKwkJICAgICAgIGludCBubGFuZXMsCj4gIAkJICAgICAgIGludCBw aXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gIAkJICAgICAgIHN0cnVjdCBpbnRlbF9saW5r X21fbiAqbV9uLAo+ICAJCSAgICAgICBib29sIGNvbnN0YW50X24pCj4gIHsKPiAgCW1fbi0+dHUg PSA2NDsKPiAgCj4gLQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAo+ IC0JCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiAtCQkgICAgJm1fbi0+Z21jaF9tLCAm bV9uLT5nbWNoX24sCj4gLQkJICAgIGNvbnN0YW50X24pOwo+ICsJLyogRm9yIERTQywgRGF0YSBN L04gY2FsY3VsYXRpb24gdXNlcyBjb21wcmVzc2VkIEJQUCAqLwo+ICsJaWYgKGNvbXByZXNzZWRf YnBwKQo+ICsJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRfYnBwICogcGl4ZWxfY2xvY2ssCj4gKwkJ CSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiArCQkJICAgICZtX24tPmdtY2hfbSwgJm1f bi0+Z21jaF9uLAo+ICsJCQkgICAgY29uc3RhbnRfbik7Cj4gKwllbHNlCj4gKwkJY29tcHV0ZV9t X24oYml0c19wZXJfcGl4ZWwgKiBwaXhlbF9jbG9jaywKPiArCQkJICAgIGxpbmtfY2xvY2sgKiBu bGFuZXMgKiA4LAo+ICsJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gKwkJCSAg ICBjb25zdGFudF9uKTsKPiAgCj4gIAljb21wdXRlX21fbihwaXhlbF9jbG9jaywgbGlua19jbG9j aywKPiAgCQkgICAgJm1fbi0+bGlua19tLCAmbV9uLT5saW5rX24sCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuaAo+IGluZGV4IDlmYWM2N2UzMTIwNS4uOWVhYmExYmNjYWU4IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+IEBAIC00MDIsNyArNDAyLDggQEAg c3RydWN0IGludGVsX2xpbmtfbV9uIHsKPiAgCSAgICAgKF9faSkrKykgXAo+ICAJCWZvcl9lYWNo X2lmKHBsYW5lKQo+ICAKPiAtdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIGlu dCBubGFuZXMsCj4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCB1aW50MTZf dCBjb21wcmVzc2VkX2JwcCwKPiArCQkJICAgIGludCBubGFuZXMsCj4gIAkJCSAgICBpbnQgcGl4 ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ICAJCQkgICAgc3RydWN0IGludGVsX2xpbmtfbV9u ICptX24sCj4gIAkJCSAgICBib29sIGNvbnN0YW50X24pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+IGluZGV4IDhlNjg5MTM1NmQ1Yi4uMDUzMDBkODJiMjAyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gQEAgLTQ3LDYgKzQ3LDggQEAKPiAgCj4gIC8qIERQIERTQyBzbWFsbCBqb2lu ZXIgaGFzIDIgRklGT3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICovCj4gICNkZWZpbmUgRFBfRFND X01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAo+ICsjZGVmaW5lIERQX0RTQ19NSU5f U1VQUE9SVEVEX0JQQwkJOAo+ICsjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQwkJMTAK PiAgCj4gIC8qIERQIERTQyB0aHJvdWdocHV0IHZhbHVlcyB1c2VkIGZvciBzbGljZSBjb3VudCBj YWxjdWxhdGlvbnMgS1BpeGVscy9zICovCj4gICNkZWZpbmUgRFBfRFNDX1BFQUtfUElYRUxfUkFU RQkJCTI3MjAwMDAKPiBAQCAtMTg5NCw2ICsxODk2LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBf Y29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQl9Cj4gIAl9Cj4gIAo+ ICsJLyogSWYgRFNDIGlzIHN1cHBvcnRlZCwgdXNlIHRoZSBtYXggdmFsdWUgcmVwb3J0ZWQgYnkg cGFuZWwgKi8KPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwICYmCj4gKwkgICAgZHJt X2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpIHsKPiArCQlicGMgPSBt aW5fdCh1OCwKPiArCQkJICAgIGRybV9kcF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoaW50ZWxf ZHAtPmRzY19kcGNkKSwKPiArCQkJICAgIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4gKwkJ aWYgKGJwYykKPiArCQkJYnBwID0gMyAqIGJwYzsKPiArCX0KPiArCj4gIAlyZXR1cm4gYnBwOwo+ ICB9Cj4gIAo+IEBAIC0xOTU0LDE0ICsxOTY2LDExIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19j b25maWdfd2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJbGlua19jbG9jayA9 IGludGVsX2RwLT5jb21tb25fcmF0ZXNbY2xvY2tdOwo+ICAJCQkJbGlua19hdmFpbCA9IGludGVs X2RwX21heF9kYXRhX3JhdGUobGlua19jbG9jaywKPiAgCQkJCQkJCQkgICAgbGFuZV9jb3VudCk7 Cj4gLQo+IC0JCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gLQkJCQkJcGlwZV9j b25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+IC0JCQkJCXBpcGVfY29uZmlnLT5waXBl X2JwcCA9IGJwcDsKPiAtCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7 Cj4gLQo+ICsJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ICsJCQkJ cGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ICsJCQkJcGlwZV9jb25maWctPnBvcnRfY2xv Y2sgPSBsaW5rX2Nsb2NrOwo+ICsJCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKQo+ICAJ CQkJCXJldHVybiB0cnVlOwo+IC0JCQkJfQo+ICAJCQl9Cj4gIAkJfQo+ICAJfQo+IEBAIC0xOTkw LDE0ICsxOTk5LDExIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJbGlua19jbG9jayA9IGludGVsX2RwLT5jb21tb25f cmF0ZXNbY2xvY2tdOwo+ICAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUo bGlua19jbG9jaywKPiAgCQkJCQkJCQkgICAgbGFuZV9jb3VudCk7Cj4gLQo+IC0JCQkJaWYgKG1v ZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gLQkJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQg PSBsYW5lX2NvdW50Owo+IC0JCQkJCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsKPiAtCQkJ CQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4gLQo+ICsJCQkJcGlwZV9j b25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ICsJCQkJcGlwZV9jb25maWctPnBpcGVf YnBwID0gYnBwOwo+ICsJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ ICsJCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKQo+ICAJCQkJCXJldHVybiB0cnVlOwo+ IC0JCQkJfQo+ICAJCQl9Cj4gIAkJfQo+ICAJfQo+IEBAIC0yMDA1LDE0ICsyMDExLDg4IEBAIGlu dGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAo+ICAJcmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2Nf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCQlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCQkJc3RydWN0IGxpbmtfY29uZmln X2xpbWl0cyAqbGltaXRzKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICsJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKPiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+YmFzZS5jcnRjKS0+cGlwZTsKPiArCXUxNiBkc2NfbWF4X291dHB1dF9icHAgPSAwOwo+ ICsJdTggZHNjX2RwX3NsaWNlX2NvdW50ID0gMDsKPiArCj4gKwlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA8IDEwIHx8Cj4gKwkgICAgIWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ ZHNjX2RwY2QpKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwkvKiBEUCBEU0Mgb25seSBzdXBw b3J0ZWQgb24gUGlwZSBCIGFuZCBDICovCj4gKwlpZiAocGlwZSA9PSBQSVBFX0EgJiYgIWludGVs X2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCS8qIERTQyBu b3Qgc3VwcG9ydGVkIGZvciBEU0Mgc2luayBCUEMgPCA4ICovCj4gKwlpZiAobGltaXRzLT5tYXhf YnBwIDwgMyAqIERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQykgewo+ICsJCURSTV9ERUJVR19LTVMo Ik5vIERTQyBzdXBwb3J0IGZvciBsZXNzIHRoYW4gOGJwY1xuIik7Cj4gKwkJcmV0dXJuIGZhbHNl Owo+ICsJfQo+ICsKPiArCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4gKwkJcGlw ZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAgPQo+ICsJCQlkcm1fZWRwX2RzY19z aW5rX291dHB1dF9icHAoaW50ZWxfZHAtPmRzY19kcGNkKSA+PiA0Owo+ICsJCXBpcGVfY29uZmln LT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID0KPiArCQkJZHJtX2RwX2RzY19zaW5rX21heF9zbGlj ZV9jb3VudChpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gKwkJCQkJCQl0cnVlKTsKPiArCX0gZWxzZSB7 Cj4gKwkJZHNjX21heF9vdXRwdXRfYnBwID0KPiArCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRf YnBwKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICsJCQkJCQkgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQsCj4gKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJ CQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gKwkJZHNjX2RwX3NsaWNlX2Nv dW50ID0KPiArCQkJaW50ZWxfZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwKPiArCQkJ CQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkgICAgIGFkanVzdGVk X21vZGUtPmNydGNfaGRpc3BsYXkpOwo+ICsJCWlmICghKGRzY19tYXhfb3V0cHV0X2JwcCAmJiBk c2NfZHBfc2xpY2VfY291bnQpKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkNvbXByZXNzZWQgQlBQ L1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRcbiIpOwo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJ fQo+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwID0gZHNjX21heF9v dXRwdXRfYnBwID4+IDQ7Cj4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQg PSBkc2NfZHBfc2xpY2VfY291bnQ7Cj4gKwl9Cj4gKwkvKgo+ICsJICogVkRTQyBlbmdpbmUgb3Bl cmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4ZWwgcmF0ZQo+ICsJICog aXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIENkY2xvY2sgYW5kIGlmIHNsaWNlIGNvdW50IGlz IGV2ZW4KPiArCSAqIHRoZW4gd2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3RhbmNlcy4KPiArCSAq Lwo+ICsJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gZmFsc2U7Cj4gKwlpZiAo YWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ ICsJCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA+IDEpIHsKPiArCQkJ cGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsKPiArCQl9IGVsc2Ugewo+ ICsJCQlEUk1fREVCVUdfS01TKCJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5z dGFuY2VzXG4iKTsKPiArCQkJcmV0dXJuIGZhbHNlOwo+ICsJCX0KPiArCX0KPiArCXBpcGVfY29u ZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7Cj4gKwlEUk1fREVCVUdf S01TKCJEUCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCj4gKwkJICAgICAgIkNv bXByZXNzZWQgQnBwID0gJWQgU2xpY2UgQ291bnQgPSAlZFxuIiwKPiArCQkgICAgICBwaXBlX2Nv bmZpZy0+cGlwZV9icHAsCj4gKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJl c3NlZF9icHAsCj4gKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQp Owo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbAo+ICBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ CQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgbGlua19jb25maWdf bGltaXRzIGxpbWl0czsKPiAgCWludCBjb21tb25fbGVuOwo+ICsJYm9vbCByZXQgPSBmYWxzZTsK PiAgCj4gIAljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVs X2RwLAo+ICAJCQkJCQkgICAgaW50ZWxfZHAtPm1heF9saW5rX3JhdGUpOwo+IEBAIC0yMDI2LDcg KzIxMDYsOSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAJbGltaXRzLm1pbl9sYW5lX2NvdW50ID0gMTsKPiAgCWxpbWl0cy5t YXhfbGFuZV9jb3VudCA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiAgCj4g LQlsaW1pdHMubWluX2JwcCA9IDYgKiAzOwo+ICsJbGltaXRzLm1pbl9icHAgPSAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMCAmJgo+ICsJCQkgIGRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRl bF9kcC0+ZHNjX2RwY2QpKSA/Cj4gKwkJRFBfRFNDX01JTl9TVVBQT1JURURfQlBDICogMyA6IDYg KiAzOwo+ICAJbGltaXRzLm1heF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRlbF9kcCwg cGlwZV9jb25maWcpOwo+ICAKPiAgCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApICYmIGlu dGVsX2RwLT5lZHBfZHBjZFswXSA8IERQX0VEUF8xNCkgewo+IEBAIC0yMDUxLDcgKzIxMzMsNyBA QCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCSAgICAgIGludGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLm1heF9jbG9ja10s Cj4gIAkJICAgICAgbGltaXRzLm1heF9icHAsIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOwo+ ICAKPiAtCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4gKwlpZiAoaW50ZWxfZHBf aXNfZWRwKGludGVsX2RwKSkKPiAgCQkvKgo+ICAJCSAqIE9wdGltaXplIGZvciBmYXN0IGFuZCBu YXJyb3cuIGVEUCAxLjMgc2VjdGlvbiAzLjMgYW5kIGVEUCAxLjQKPiAgCQkgKiBzZWN0aW9uIEEu MTogIkl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mCj4gQEAgLTIw NjEsMjYgKzIxNDMsNDggQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgKiBOb3RlIHRoYXQgd2UgdXNlIHRoZSBtYXggY2xv Y2sgYW5kIGxhbmUgY291bnQgZm9yIGVEUCAxLjMgYW5kCj4gIAkJICogZWFybGllciwgYW5kIGZh c3QgdnMuIHdpZGUgaXMgaXJyZWxldmFudC4KPiAgCQkgKi8KPiAtCQlpZiAoIWludGVsX2RwX2Nv bXB1dGVfbGlua19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gLQkJCQkJCSAg ICAgICAmbGltaXRzKSkKPiAtCQkJcmV0dXJuIGZhbHNlOwo+IC0JfSBlbHNlIHsKPiArCQlyZXQg PSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmln LAo+ICsJCQkJCQkJJmxpbWl0cyk7Cj4gKwllbHNlCj4gIAkJLyogT3B0aW1pemUgZm9yIHNsb3cg YW5kIHdpZGUuICovCj4gLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUo aW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gKwkJcmV0 ID0gaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZp ZywKPiArCQkJCQkJCSZsaW1pdHMpOwo+ICsKPiArCS8qIGVuYWJsZSBjb21wcmVzc2lvbiBpZiB0 aGUgbW9kZSBkb2Vzbid0IGZpdCBhdmFpbGFibGUgQlcgKi8KPiArCWlmICghcmV0KSB7Cj4gKwkJ RFJNX0RFQlVHX0tNUygiRFAgcmVxdWlyZWQgTGluayByYXRlICVpIGRvZXMgbm90IGZpdCBhdmFp bGFibGUgJWlcbiIsCj4gKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRf bW9kZS0+Y3J0Y19jbG9jaywKPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LAo+ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gKwo+ICsJCWlmICgh aW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiArCQkJ CQkJICZsaW1pdHMpKQo+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IC0JRFJNX0RFQlVH X0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gLQkJICAgICAgcGlw ZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+IC0JCSAgICAg IHBpcGVfY29uZmlnLT5waXBlX2JwcCk7Cj4gKwlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMu Y29tcHJlc3Npb25fZW5hYmxlKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAl ZCBjbG9jayAlZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCj4gKwkJCSAgICAg IHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJ ICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNj X3BhcmFtcy5jb21wcmVzc2VkX2JwcCk7Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGluayBy YXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiAtCQkgICAgICBpbnRlbF9kcF9saW5r X3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gLQkJCQkJICAgICBwaXBlX2Nv bmZpZy0+cGlwZV9icHApLAo+IC0JCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9j b25maWctPnBvcnRfY2xvY2ssCj4gLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkp Owo+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUg JWlcbiIsCj4gKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jaywKPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVz c2VkX2JwcCksCj4gKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWct PnBvcnRfY2xvY2ssCj4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiAr CX0gZWxzZSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBi cHAgJWRcbiIsCj4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jaywKPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiAgCj4g KwkJRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxu IiwKPiArCQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRj X2Nsb2NrLAo+ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCksCj4gKwkJCSAgICAg IGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJCQkJ CSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiArCX0KPiAgCXJldHVybiB0cnVlOwo+ ICB9Cj4gIAo+IEBAIC0yMTU5LDcgKzIyNjMsOSBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJv YWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4gIAl9Cj4gIAo+IC0J aW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmln LT5sYW5lX2NvdW50LAo+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlw ZV9icHAsCj4gKwkJCSAgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2Jw cCwKPiArCQkJICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ICAJCQkgICAgICAgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiAgCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAo+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gQEAgLTIxNjgsNyArMjI3 NCw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJaWYgKGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVM TCAmJgo+ICAJCWRldl9wcml2LT5kcnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7 Cj4gIAkJCXBpcGVfY29uZmlnLT5oYXNfZHJycyA9IHRydWU7Cj4gLQkJCWludGVsX2xpbmtfY29t cHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ICsJCQlpbnRlbF9saW5rX2NvbXB1dGVf bV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgMCwKPiAgCQkJCQkgICAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQsCj4gIAkJCQkJICAgICAgIGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNs b2NrX21vZGUtPmNsb2NrLAo+ICAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4IDQzZGIyZTlhYzU3NS4uNTJh MzIxN2YxM2M1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21z dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBAQCAtODMs NyArODMsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAt CWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBwLCBsYW5lX2NvdW50LAo+ICsJaW50ZWxfbGlua19j b21wdXRlX21fbihicHAsIDAsIGxhbmVfY291bnQsCj4gIAkJCSAgICAgICBhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLAo+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gIAkJ CSAgICAgICAmcGlwZV9jb25maWctPmRwX21fbiwKPiAtLSAKPiAyLjE4LjAKPiAKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==