From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v10 08/23] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 27 Nov 2018 15:57:23 +0200 Message-ID: <20181127135723.GW9144@intel.com> References: <20181120183736.28054-1-manasi.d.navare@intel.com> <20181120183736.28054-9-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: <20181120183736.28054-9-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: Manasi Navare Cc: intel-gfx@lists.freedesktop.org, Anusha Srivatsa , dri-devel@lists.freedesktop.org, Gaurav K Singh List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMjAsIDIwMTggYXQgMTA6Mzc6MjFBTSAtMDgwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3NlZCBicHAsIHNsaWNl IGNvdW50IGFuZAo+IGRzY19zcGxpdCBhcmUgYWRkZWQgdG8gdGhlIGludGVsX2NydGNfc3RhdGUu IFRoZXNlIHBhcmFtZXRlcnMKPiBhcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBh bmQgYXZhaWxhYmxlIGxpbmsgcGFyYW1ldGVycwo+IGR1cmluZyB0aGUgcGlwZSBjb25maWd1cmF0 aW9uIGluIGF0b21pYyBjaGVjayBwaGFzZS4KPiBUaGVzZSB2YWx1ZXMgYXJlIHRoZW4gbGF0ZXIg dXNlZCB0byBwb3B1bGF0ZSB0aGUgcmVtYWluaW5nIERTQwo+IGFuZCBSQyBwYXJhbWV0ZXJzIGJl Zm9yZSBlbmJhbGluZyBEU0MgaW4gYXRvbWljIGNvbW1pdC4KPiAKPiB2MTQ6Cj4gUmVtb3ZlIGxl ZnRvdmVycywgdXNlIGRzY19icGMsIHJlZmluZSBkc2NfY29tcHV0ZV9jb25maWcgKFZpbGxlKQo+ IHYxMzoKPiAqIENvbXB1dGUgRFNDIGJwYyBvbmx5IHdoZW4gRFNDIGlzIHJlcSB0byBiZSBlbmFi bGVkIChWaWxsZSkKPiB2MTI6Cj4gKiBPdmVycmlkZSBicHAgd2l0aCBkc2MgZHBjZCBjb2xvciBk ZXB0aCAoTWFuYXNpKQo+IHYxMToKPiAqIENvbnN0IGNydGNfc3RhdGUsIHJlamVjdCBEU0Mgb24g RFAgd2l0aG91dCBGRUMgKFZpbGxlKQo+ICogRG9udCBzZXQgZHNjX3NwbGl0IHRvIGZhbHNlIChW aWxsZSkKPiB2MTA6Cj4gKiBBZGQgYSBoZWxwZXIgZm9yIGRwX2RzYyBzdXBwb3J0IChWaWxsZSkK PiAqIFNldCBwaXBlX2NvbmZpZyB0byBtYXggYnBwLCBsaW5rIHBhcmFtcyBmb3IgRFNDIGZvciBu b3cgKFZpbGxlKQo+ICogQ29tcHV0ZSBicHAgLSB1c2UgZHAgZHNjIHN1cHBvcnQgaGVscGVyIChW aWxsZSkKPiB2OToKPiAqIFJlYmFzZSBvbiB0b3Agb2YgZHJtLXRpcCB0aGF0IG5vdyB1c2VzIGZh c3RfbmFycm93IGNvbmZpZwo+IGZvciBlZHAgKE1hbmFzaSkKPiB2ODoKPiAqIENoZWNrIGZvciBE U0MgYnBjIG5vdCAwIChtYW5hc2kpCj4gCj4gdjc6Cj4gKiBGaXggaW5kZW50YXRpb24gaW4gY29t cHV0ZV9tX24gKE1hbmFzaSkKPiAKPiB2NiAoRnJvbSBHYXVyYXYpOgo+ICogUmVtb3ZlIGZ1bmN0 aW9uIGNhbGwgb2YgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgYW5kCj4gaW52b2tlIGlu dGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGluIHRoZSBwYXRjaCB3aGVyZQo+IGl0IGlzIGRl ZmluZWQgdG8gZml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgKEdhdXJhdikKPiAKPiB2NToKPiBBZGQg ZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0Y19zdGF0ZSAoTWFuYXNpKQo+IAo+IHY0Ogo+ICogUmVi YXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFu YXNpKQo+ICogQWRkIGEgY29tbWVudCB3aHkgd2UgbmVlZCB0byBjaGVjayBQU1Igd2hpbGUgZW5h YmxpbmcgRFNDIChHYXVyYXYpCj4gCj4gdjM6Cj4gKiBDaGVjayBQUFIgPiBtYXhfY2RjbG9jayB0 byB1c2UgMiBWRFNDIGluc3RhbmNlcyAoVmlsbGUpCj4gCj4gdjI6Cj4gKiBBZGQgaWYtZWxzZSBm b3IgZURQL0RQIChHYXVyYXYpCj4gCj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51 eC5pbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ Cj4gQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gU2lnbmVk LW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBSZXZp ZXdlZC1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+IEFj a2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgIDIgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE5MSArKysrKysrKysrKysrKysrKysrKysrKystLS0K PiAgMyBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDEzMmU5NzgyMjdmYi4u ZjJlNjQyNWQwOWVmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBA IC02NzIzLDcgKzY3MjMsNyBAQCBzdGF0aWMgdm9pZCBjb21wdXRlX21fbih1bnNpZ25lZCBpbnQg bSwgdW5zaWduZWQgaW50IG4sCj4gIH0KPiAgCj4gIHZvaWQKPiAtaW50ZWxfbGlua19jb21wdXRl X21fbihpbnQgYml0c19wZXJfcGl4ZWwsIGludCBubGFuZXMsCj4gK2ludGVsX2xpbmtfY29tcHV0 ZV9tX24odTE2IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAo+ICAJCSAgICAgICBpbnQgcGl4 ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ICAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfbGlua19t X24gKm1fbiwKPiAgCQkgICAgICAgYm9vbCBjb25zdGFudF9uKQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmgKPiBpbmRleCA1ZDUwZGVjYmNiYjUuLmFmYjY0MzU4ODdkZiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiBAQCAtNDA3LDcgKzQwNyw3IEBAIHN0 cnVjdCBpbnRlbF9saW5rX21fbiB7Cj4gIAkgICAgIChfX2kpKyspIFwKPiAgCQlmb3JfZWFjaF9p ZihwbGFuZSkKPiAgCj4gLXZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCBpbnQg bmxhbmVzLAo+ICt2b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24odTE2IGJwcCwgaW50IG5sYW5l cywKPiAgCQkJICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gIAkJCSAgICBz dHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKPiAgCQkJICAgIGJvb2wgY29uc3RhbnRfbik7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggMmIwOTA2MDliZWUyLi43OGVjNzc1YWE5MGEg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNDcsNiArNDcsOCBAQAo+ICAKPiAg LyogRFAgRFNDIHNtYWxsIGpvaW5lciBoYXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMg Ki8KPiAgI2RlZmluZSBEUF9EU0NfTUFYX1NNQUxMX0pPSU5FUl9SQU1fQlVGRkVSCTYxNDQwCj4g KyNkZWZpbmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4Cj4gKyNkZWZpbmUgRFBfRFNDX01B WF9TVVBQT1JURURfQlBDCQkxMAo+ICAKPiAgLyogRFAgRFNDIHRocm91Z2hwdXQgdmFsdWVzIHVz ZWQgZm9yIHNsaWNlIGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxzL3MgKi8KPiAgI2RlZmluZSBE UF9EU0NfUEVBS19QSVhFTF9SQVRFCQkJMjcyMDAwMAo+IEBAIC0xNzA4LDYgKzE3MTAsMjYgQEAg c3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyB7Cj4gIAlpbnQgbWluX2JwcCwgbWF4X2JwcDsKPiAg fTsKPiAgCj4gK3N0YXRpYyBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2Moc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiArCj4gKwkvKiBGSVhNRTogRkVDIG5lZWRlZCBm b3IgZXh0ZXJuYWwgRFAgdW50aWwgdGhlbiByZWplY3QgRFNDIG9uIERQICovCj4gKwlpZiAoIWlu dGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCXJldHVy biBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwICYmCj4gKwkJcGlwZV9jb25maWctPmNwdV90cmFu c2NvZGVyICE9IFRSQU5TQ09ERVJfQTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgaW50ZWxfZHBf c3VwcG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiArewo+ICsJcmV0dXJuIGludGVs X2RwX3NvdXJjZV9zdXBwb3J0c19kc2MoaW50ZWxfZHAsIHBpcGVfY29uZmlnKSAmJgo+ICsJCWRy bV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpOwo+ICt9Cj4gKwo+ICBz dGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiBAQCAt MTg0MiwxNCArMTg2NCwxMTQgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4gK3N0 YXRpYyBpbnQgaW50ZWxfZHBfZHNjX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIHU4IGRzY19tYXhfYnBjKQo+ICt7Cj4gKwlpbnQgaSwgbnVtX2JwYzsKPiArCXU4IGRzY19i cGNbM10gPSB7MH07Cj4gKwo+ICsJbnVtX2JwYyA9IGRybV9kcF9kc2Nfc2lua19zdXBwb3J0ZWRf aW5wdXRfYnBjcyhpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gKwkJCQkJCSAgICAgICBkc2NfYnBjKTsK PiArCWZvciAoaSA9IDA7IGkgPCBudW1fYnBjOyBpKyspIHsKPiArCQlpZiAoZHNjX21heF9icGMg Pj0gZHNjX2JwY1tpXSkKPiArCQkJcmV0dXJuIGRzY19icGNbaV0gKiAzOwo+ICsJfQo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUsCj4gKwkJCQkJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyAqbGltaXRzKQo+ ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAr CXU4IGRzY19tYXhfYnBjOwo+ICsJdTE2IGRzY19tYXhfb3V0cHV0X2JwcCA9IDA7Cj4gKwl1OCBk c2NfZHBfc2xpY2VfY291bnQgPSAwOwoKUG9pbnRsZXNzIGluaXRpYWxpemF0aW9uLCBhbmQgdGhl c2UgY2FuIGJlIG1vdmVkIHRvIG5hcnJvd2VyIHNjb3BlLgoKPiArCWludCBwaXBlX2JwcDsKPiAr Cj4gKwlpZiAoIWludGVsX2RwX3N1cHBvcnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpKQo+ ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlkc2NfbWF4X2JwYyA9IG1pbl90KHU4LCBEUF9EU0Nf TUFYX1NVUFBPUlRFRF9CUEMsCj4gKwkJCSAgICBjb25uX3N0YXRlLT5tYXhfcmVxdWVzdGVkX2Jw Yyk7Cj4gKwo+ICsJcGlwZV9icHAgPSBpbnRlbF9kcF9kc2NfY29tcHV0ZV9icHAoaW50ZWxfZHAs IGRzY19tYXhfYnBjKTsKPiArCWlmIChwaXBlX2JwcCA8IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQ QyAqIDMpIHsKPiArCQlEUk1fREVCVUdfS01TKCJObyBEU0Mgc3VwcG9ydCBmb3IgbGVzcyB0aGFu IDhicGNcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogRm9y IG5vdyBlbmFibGUgRFNDIGZvciBtYXggYnBwLCBtYXggbGluayByYXRlLCBtYXggbGFuZSBjb3Vu dC4KPiArCSAqIE9wdGltaXplIHRoaXMgbGF0ZXIgZm9yIHRoZSBtaW5pbXVtIHBvc3NpYmxlIGxp bmsgcmF0ZS9sYW5lIGNvdW50Cj4gKwkgKiB3aXRoIERTQyBlbmFibGVkIGZvciB0aGUgcmVxdWVz dGVkIG1vZGUuCj4gKwkgKi8KPiArCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IHBpcGVfYnBwOwo+ ICsJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0 cy0+bWF4X2Nsb2NrXTsKPiArCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGltaXRzLT5tYXhf bGFuZV9jb3VudDsKPiArCj4gKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ICsJ CXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwID0KPiArCQkJbWluX3QodTE2 LCBkcm1fZWRwX2RzY19zaW5rX291dHB1dF9icHAoaW50ZWxfZHAtPmRzY19kcGNkKSA+PiA0LAo+ ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ICsJCXBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLnNsaWNlX2NvdW50ID0KPiArCQkJZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3Vu dChpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gKwkJCQkJCQl0cnVlKTsKPiArCX0gZWxzZSB7Cj4gKwkJ ZHNjX21heF9vdXRwdXRfYnBwID0KPiArCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICsJCQkJCQkgICAgcGlwZV9jb25maWctPmxhbmVfY291 bnQsCj4gKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkgICAg YWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gKwkJCWRzY19kcF9zbGljZV9jb3VudCA9 Cj4gKwkJCQlpbnRlbF9kcF9kc2NfZ2V0X3NsaWNlX2NvdW50KGludGVsX2RwLAo+ICsJCQkJCQkJ ICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkJICAgICBhZGp1c3RlZF9t b2RlLT5jcnRjX2hkaXNwbGF5KTsKClRoZXJlJ3Mgc29tZSBraW5kIG9mIGluZGVudCBmYWlsIGhl cmUuCgo+ICsJCWlmICghKGRzY19tYXhfb3V0cHV0X2JwcCAmJiBkc2NfZHBfc2xpY2VfY291bnQp KSB7CgonIWEgfHwgIWInIG1pZ2h0IGJlIGEgYml0IG1vcmUgbGVnaWJsZS4KClRoZSBsb2dpYyBz ZWVtcyBnb29kIG5vdyBzbwpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KCj4gKwkJCURSTV9ERUJVR19LTVMoIkNvbXByZXNzZWQgQlBQ L1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRcbiIpOwo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJ fQo+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwID0gbWluX3QodTE2 LAo+ICsJCQkJCQkJICAgICAgIGRzY19tYXhfb3V0cHV0X2JwcCA+PiA0LAo+ICsJCQkJCQkJICAg ICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7Cj4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMu c2xpY2VfY291bnQgPSBkc2NfZHBfc2xpY2VfY291bnQ7Cj4gKwl9Cj4gKwkvKgo+ICsJICogVkRT QyBlbmdpbmUgb3BlcmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4ZWwg cmF0ZQo+ICsJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIENkY2xvY2sgYW5kIGlmIHNs aWNlIGNvdW50IGlzIGV2ZW4KPiArCSAqIHRoZW4gd2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3Rh bmNlcy4KPiArCSAqLwo+ICsJaWYgKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXEpIHsKPiArCQlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xp Y2VfY291bnQgPiAxKSB7Cj4gKwkJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmRzY19zcGxpdCA9 IHRydWU7Cj4gKwkJfSBlbHNlIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0 cmVhbSB0byB1c2UgMiBWRFNDIGluc3RhbmNlc1xuIik7Cj4gKwkJCXJldHVybiBmYWxzZTsKPiAr CQl9Cj4gKwl9Cj4gKwlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUg PSB0cnVlOwo+ICsJRFJNX0RFQlVHX0tNUygiRFAgRFNDIGNvbXB1dGVkIHdpdGggSW5wdXQgQnBw ID0gJWQgIgo+ICsJCSAgICAgICJDb21wcmVzc2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0gJWRc biIsCj4gKwkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+ICsJCSAgICAgIHBpcGVfY29u ZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAo+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5k c2NfcGFyYW1zLnNsaWNlX2NvdW50KTsKPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiAg c3RhdGljIGJvb2wKPiAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAtCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAo+ICsJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgbGlua19jb25maWdfbGlt aXRzIGxpbWl0czsKPiAgCWludCBjb21tb25fbGVuOwo+ICsJYm9vbCByZXQ7Cj4gIAo+ICAJY29t bW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwKPiAgCQkJ CQkJICAgIGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKPiBAQCAtMTg4OCw3ICsyMDEwLDcgQEAg aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkgICAgICBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy5tYXhfY2xvY2tdLAo+ ICAJCSAgICAgIGxpbWl0cy5tYXhfYnBwLCBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsKPiAg Cj4gLQlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ICsJaWYgKGludGVsX2RwX2lz X2VkcChpbnRlbF9kcCkpCj4gIAkJLyoKPiAgCQkgKiBPcHRpbWl6ZSBmb3IgZmFzdCBhbmQgbmFy cm93LiBlRFAgMS4zIHNlY3Rpb24gMy4zIGFuZCBlRFAgMS40Cj4gIAkJICogc2VjdGlvbiBBLjE6 ICJJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBtaW5pbXVtIG51bWJlciBvZgo+IEBAIC0xODk4 LDI2ICsyMDIwLDQyIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJICogTm90ZSB0aGF0IHdlIHVzZSB0aGUgbWF4IGNsb2Nr IGFuZCBsYW5lIGNvdW50IGZvciBlRFAgMS4zIGFuZAo+ICAJCSAqIGVhcmxpZXIsIGFuZCBmYXN0 IHZzLiB3aWRlIGlzIGlycmVsZXZhbnQuCj4gIAkJICovCj4gLQkJaWYgKCFpbnRlbF9kcF9jb21w dXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+IC0JCQkJCQkgICAg ICAgJmxpbWl0cykpCj4gLQkJCXJldHVybiBmYWxzZTsKPiAtCX0gZWxzZSB7Cj4gKwkJcmV0ID0g aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywK PiArCQkJCQkJCSZsaW1pdHMpOwo+ICsJIGVsc2UKPiAgCQkvKiBPcHRpbWl6ZSBmb3Igc2xvdyBh bmQgd2lkZS4gKi8KPiAtCQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShp bnRlbF9kcCwgcGlwZV9jb25maWcsCj4gLQkJCQkJCSAgICAgICAmbGltaXRzKSkKPiArCQlyZXQg PSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmln LAo+ICsJCQkJCQkJJmxpbWl0cyk7Cj4gKwo+ICsJLyogZW5hYmxlIGNvbXByZXNzaW9uIGlmIHRo ZSBtb2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLwo+ICsJaWYgKCFyZXQpIHsKPiArCQlp ZiAoIWludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4g KwkJCQkJCSBjb25uX3N0YXRlLCAmbGltaXRzKSkKPiAgCQkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ ICAKPiAtCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4i LAo+IC0JCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jaywKPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ICsJaWYgKHBpcGVfY29u ZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSkgewo+ICsJCURSTV9ERUJVR19LTVMo IkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgSW5wdXQgYnBwICVkIENvbXByZXNzZWQgYnBwICVk XG4iLAo+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBv cnRfY2xvY2ssCj4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKPiArCQkJICAgICAg cGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHApOwo+ICAKPiAtCURSTV9ERUJV R19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCj4gLQkJICAg ICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+IC0J CQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiAtCQkgICAgICBpbnRlbF9kcF9tYXhf ZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+IC0JCQkJCSAgICAgcGlwZV9jb25m aWctPmxhbmVfY291bnQpKTsKPiArCQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWly ZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ICsJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVk KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3NlZF9icHApLAo+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9y YXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5s YW5lX2NvdW50KSk7Cj4gKwl9IGVsc2Ugewo+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291 bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAo+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9j b3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5w aXBlX2JwcCk7Cj4gIAo+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAl aSBhdmFpbGFibGUgJWlcbiIsCj4gKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9i cHApLAo+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrLAo+ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gKwl9Cj4g IAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiBAQCAtMTk4Myw3ICsyMTIxLDcgQEAgaW50ZWxfZHBf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpZiAoYWRq dXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTENMSykKPiAgCQlyZXR1cm4gZmFs c2U7Cj4gIAo+IC0JaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKGVuY29kZXIsIHBp cGVfY29uZmlnKSkKPiArCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVy LCBwaXBlX2NvbmZpZywgY29ubl9zdGF0ZSkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiAgCWlm IChpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0Jf QVVUTykgewo+IEBAIC0yMDAxLDExICsyMTM5LDIwIEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQlpbnRlbF9jb25uX3N0YXRlLT5i cm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRDsKPiAgCX0KPiAgCj4g LQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25m aWctPmxhbmVfY291bnQsCj4gLQkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ IC0JCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gLQkJCSAgICAgICAmcGlwZV9j b25maWctPmRwX21fbiwKPiAtCQkJICAgICAgIGNvbnN0YW50X24pOwo+ICsJaWYgKCFwaXBlX2Nv bmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUpCj4gKwkJaW50ZWxfbGlua19jb21w dXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gKwkJCQkgICAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQsCj4gKwkJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiAr CQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJCSAgICAgICAmcGlwZV9j b25maWctPmRwX21fbiwKPiArCQkJCSAgICAgICBjb25zdGFudF9uKTsKPiArCWVsc2UKPiArCQlp bnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9u X2VuYWJsZSwKPiArCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiArCQkJCSAg ICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJICAgICAgIHBpcGVfY29uZmln LT5wb3J0X2Nsb2NrLAo+ICsJCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAo+ICsJCQkJ ICAgICAgIGNvbnN0YW50X24pOwo+ICAKPiAgCWlmIChpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRv d25jbG9ja19tb2RlICE9IE5VTEwgJiYKPiAgCQlkZXZfcHJpdi0+ZHJycy50eXBlID09IFNFQU1M RVNTX0RSUlNfU1VQUE9SVCkgewo+IC0tIAo+IDIuMTkuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK