From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v10 08/23] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 20 Nov 2018 10:37:21 -0800 Message-ID: <20181120183736.28054-9-manasi.d.navare@intel.com> References: <20181120183736.28054-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181120183736.28054-1-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, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBjb3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnYxNDoKUmVtb3ZlIGxlZnRvdmVycywgdXNlIGRzY19icGMsIHJl ZmluZSBkc2NfY29tcHV0ZV9jb25maWcgKFZpbGxlKQp2MTM6CiogQ29tcHV0ZSBEU0MgYnBjIG9u bHkgd2hlbiBEU0MgaXMgcmVxIHRvIGJlIGVuYWJsZWQgKFZpbGxlKQp2MTI6CiogT3ZlcnJpZGUg YnBwIHdpdGggZHNjIGRwY2QgY29sb3IgZGVwdGggKE1hbmFzaSkKdjExOgoqIENvbnN0IGNydGNf c3RhdGUsIHJlamVjdCBEU0Mgb24gRFAgd2l0aG91dCBGRUMgKFZpbGxlKQoqIERvbnQgc2V0IGRz Y19zcGxpdCB0byBmYWxzZSAoVmlsbGUpCnYxMDoKKiBBZGQgYSBoZWxwZXIgZm9yIGRwX2RzYyBz dXBwb3J0IChWaWxsZSkKKiBTZXQgcGlwZV9jb25maWcgdG8gbWF4IGJwcCwgbGluayBwYXJhbXMg Zm9yIERTQyBmb3Igbm93IChWaWxsZSkKKiBDb21wdXRlIGJwcCAtIHVzZSBkcCBkc2Mgc3VwcG9y dCBoZWxwZXIgKFZpbGxlKQp2OToKKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cg dXNlcyBmYXN0X25hcnJvdyBjb25maWcKZm9yIGVkcCAoTWFuYXNpKQp2ODoKKiBDaGVjayBmb3Ig RFNDIGJwYyBub3QgMCAobWFuYXNpKQoKdjc6CiogRml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVf bV9uIChNYW5hc2kpCgp2NiAoRnJvbSBHYXVyYXYpOgoqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9m IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGFuZAppbnZva2UgaW50ZWxfZHBfY29tcHV0 ZV9kc2NfcGFyYW1zKCkgaW4gdGhlIHBhdGNoIHdoZXJlCml0IGlzIGRlZmluZWQgdG8gZml4IGNv bXBpbGF0aW9uIHdhcm5pbmcgKEdhdXJhdikKCnY1OgpBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxf Y3J0Y19zdGF0ZSAoTWFuYXNpKQoKdjQ6CiogUmViYXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVs X2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQoqIEFkZCBhIGNvbW1lbnQgd2h5IHdl IG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2KQoKdjM6CiogQ2hl Y2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQoKdjI6 CiogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQoKQ2M6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGlu dGVsLmNvbT4KQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+ClNp Z25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ClJl dmlld2VkLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+CkFj a2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgMiArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jICAgICAgfCAxOTEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMTMyZTk3ODIyN2ZiLi5mMmU2NDI1ZDA5ZWYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTY3MjMsNyArNjcyMyw3IEBAIHN0 YXRpYyB2b2lkIGNvbXB1dGVfbV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKIH0K IAogdm9pZAotaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYml0c19wZXJfcGl4ZWwsIGludCBu bGFuZXMsCitpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHUxNiBiaXRzX3Blcl9waXhlbCwgaW50IG5s YW5lcywKIAkJICAgICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCiAJCSAgICAg ICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKIAkJICAgICAgIGJvb2wgY29uc3RhbnRfbikK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAppbmRleCA1ZDUwZGVjYmNiYjUuLmFmYjY0 MzU4ODdkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaApAQCAtNDA3LDcgKzQw Nyw3IEBAIHN0cnVjdCBpbnRlbF9saW5rX21fbiB7CiAJICAgICAoX19pKSsrKSBcCiAJCWZvcl9l YWNoX2lmKHBsYW5lKQogCi12b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJwcCwgaW50 IG5sYW5lcywKK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbih1MTYgYnBwLCBpbnQgbmxhbmVz LAogCQkJICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCiAJCQkgICAgc3RydWN0 IGludGVsX2xpbmtfbV9uICptX24sCiAJCQkgICAgYm9vbCBjb25zdGFudF9uKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCmluZGV4IDJiMDkwNjA5YmVlMi4uNzhlYzc3NWFhOTBhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKQEAgLTQ3LDYgKzQ3LDggQEAKIAogLyogRFAgRFNDIHNtYWxsIGpvaW5l ciBoYXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMgKi8KICNkZWZpbmUgRFBfRFNDX01B WF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAorI2RlZmluZSBEUF9EU0NfTUlOX1NVUFBP UlRFRF9CUEMJCTgKKyNkZWZpbmUgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDCQkxMAogCiAvKiBE UCBEU0MgdGhyb3VnaHB1dCB2YWx1ZXMgdXNlZCBmb3Igc2xpY2UgY291bnQgY2FsY3VsYXRpb25z IEtQaXhlbHMvcyAqLwogI2RlZmluZSBEUF9EU0NfUEVBS19QSVhFTF9SQVRFCQkJMjcyMDAwMApA QCAtMTcwOCw2ICsxNzEwLDI2IEBAIHN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgewogCWludCBt aW5fYnBwLCBtYXhfYnBwOwogfTsKIAorc3RhdGljIGJvb2wgaW50ZWxfZHBfc291cmNlX3N1cHBv cnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJCQkgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOworCisJLyogRklYTUU6IEZFQyBuZWVk ZWQgZm9yIGV4dGVybmFsIERQIHVudGlsIHRoZW4gcmVqZWN0IERTQyBvbiBEUCAqLworCWlmICgh aW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTAgJiYKKwkJcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVy ICE9IFRSQU5TQ09ERVJfQTsKK30KKworc3RhdGljIGJvb2wgaW50ZWxfZHBfc3VwcG9ydHNfZHNj KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCit7CisJcmV0dXJuIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0 c19kc2MoaW50ZWxfZHAsIHBpcGVfY29uZmlnKSAmJgorCQlkcm1fZHBfc2lua19zdXBwb3J0c19k c2MoaW50ZWxfZHAtPmRzY19kcGNkKTsKK30KKwogc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRl X2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKIHsKQEAgLTE4NDIsMTQgKzE4NjQsMTE0IEBAIGludGVsX2RwX2Nv bXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCXJldHVy biBmYWxzZTsKIH0KIAorc3RhdGljIGludCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9icHAoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgdTggZHNjX21heF9icGMpCit7CisJaW50IGksIG51bV9icGM7 CisJdTggZHNjX2JwY1szXSA9IHswfTsKKworCW51bV9icGMgPSBkcm1fZHBfZHNjX3Npbmtfc3Vw cG9ydGVkX2lucHV0X2JwY3MoaW50ZWxfZHAtPmRzY19kcGNkLAorCQkJCQkJICAgICAgIGRzY19i cGMpOworCWZvciAoaSA9IDA7IGkgPCBudW1fYnBjOyBpKyspIHsKKwkJaWYgKGRzY19tYXhfYnBj ID49IGRzY19icGNbaV0pCisJCQlyZXR1cm4gZHNjX2JwY1tpXSAqIDM7CisJfQorCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBib29sIGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAorCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCisJCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAorCQkJ CQlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCit7CisJc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNl LmRldik7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwl1OCBkc2NfbWF4X2JwYzsKKwl1MTYgZHNjX21h eF9vdXRwdXRfYnBwID0gMDsKKwl1OCBkc2NfZHBfc2xpY2VfY291bnQgPSAwOworCWludCBwaXBl X2JwcDsKKworCWlmICghaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZp ZykpCisJCXJldHVybiBmYWxzZTsKKworCWRzY19tYXhfYnBjID0gbWluX3QodTgsIERQX0RTQ19N QVhfU1VQUE9SVEVEX0JQQywKKwkJCSAgICBjb25uX3N0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYyk7 CisKKwlwaXBlX2JwcCA9IGludGVsX2RwX2RzY19jb21wdXRlX2JwcChpbnRlbF9kcCwgZHNjX21h eF9icGMpOworCWlmIChwaXBlX2JwcCA8IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAqIDMpIHsK KwkJRFJNX0RFQlVHX0tNUygiTm8gRFNDIHN1cHBvcnQgZm9yIGxlc3MgdGhhbiA4YnBjXG4iKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qCisJICogRm9yIG5vdyBlbmFibGUgRFNDIGZvciBt YXggYnBwLCBtYXggbGluayByYXRlLCBtYXggbGFuZSBjb3VudC4KKwkgKiBPcHRpbWl6ZSB0aGlz IGxhdGVyIGZvciB0aGUgbWluaW11bSBwb3NzaWJsZSBsaW5rIHJhdGUvbGFuZSBjb3VudAorCSAq IHdpdGggRFNDIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KKwkgKi8KKwlwaXBlX2Nv bmZpZy0+cGlwZV9icHAgPSBwaXBlX2JwcDsKKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGlu dGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLT5tYXhfY2xvY2tdOworCXBpcGVfY29uZmlnLT5s YW5lX2NvdW50ID0gbGltaXRzLT5tYXhfbGFuZV9jb3VudDsKKworCWlmIChpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKSB7CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBw ID0KKwkJCW1pbl90KHUxNiwgZHJtX2VkcF9kc2Nfc2lua19vdXRwdXRfYnBwKGludGVsX2RwLT5k c2NfZHBjZCkgPj4gNCwKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CisJCXBpcGVf Y29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID0KKwkJCWRybV9kcF9kc2Nfc2lua19tYXhf c2xpY2VfY291bnQoaW50ZWxfZHAtPmRzY19kcGNkLAorCQkJCQkJCXRydWUpOworCX0gZWxzZSB7 CisJCWRzY19tYXhfb3V0cHV0X2JwcCA9CisJCQlpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAo cGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJCQkgICAgcGlwZV9jb25maWctPmxhbmVfY291 bnQsCisJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkJCSAgICBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKKwkJCWRzY19kcF9zbGljZV9jb3VudCA9CisJCQkJ aW50ZWxfZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwKKwkJCQkJCQkgICAgIGFkanVz dGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hk aXNwbGF5KTsKKwkJaWYgKCEoZHNjX21heF9vdXRwdXRfYnBwICYmIGRzY19kcF9zbGljZV9jb3Vu dCkpIHsKKwkJCURSTV9ERUJVR19LTVMoIkNvbXByZXNzZWQgQlBQL1NsaWNlIENvdW50IG5vdCBz dXBwb3J0ZWRcbiIpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCXBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLmNvbXByZXNzZWRfYnBwID0gbWluX3QodTE2LAorCQkJCQkJCSAgICAgICBkc2NfbWF4 X291dHB1dF9icHAgPj4gNCwKKwkJCQkJCQkgICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsK KwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPSBkc2NfZHBfc2xpY2VfY291 bnQ7CisJfQorCS8qCisJICogVkRTQyBlbmdpbmUgb3BlcmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xv Y2ssIHNvIGlmIHBlYWsgcGl4ZWwgcmF0ZQorCSAqIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11 bSBDZGNsb2NrIGFuZCBpZiBzbGljZSBjb3VudCBpcyBldmVuCisJICogdGhlbiB3ZSBuZWVkIHRv IHVzZSAyIFZEU0MgaW5zdGFuY2VzLgorCSAqLworCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2Ns b2NrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7CisJCWlmIChwaXBlX2NvbmZpZy0+ZHNj X3BhcmFtcy5zbGljZV9jb3VudCA+IDEpIHsKKwkJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmRz Y19zcGxpdCA9IHRydWU7CisJCX0gZWxzZSB7CisJCQlEUk1fREVCVUdfS01TKCJDYW5ub3Qgc3Bs aXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzXG4iKTsKKwkJCXJldHVybiBmYWxzZTsK KwkJfQorCX0KKwlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUgPSB0 cnVlOworCURSTV9ERUJVR19LTVMoIkRQIERTQyBjb21wdXRlZCB3aXRoIElucHV0IEJwcCA9ICVk ICIKKwkJICAgICAgIkNvbXByZXNzZWQgQnBwID0gJWQgU2xpY2UgQ291bnQgPSAlZFxuIiwKKwkJ ICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3Bh cmFtcy5jb21wcmVzc2VkX2JwcCwKKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xp Y2VfY291bnQpOworCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBib29sCiBpbnRlbF9kcF9j b21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJICAg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCisJCQkgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKKwkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1 Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKIAlpbnQgY29tbW9uX2xlbjsKKwlib29sIHJl dDsKIAogCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQoaW50ZWxf ZHAsCiAJCQkJCQkgICAgaW50ZWxfZHAtPm1heF9saW5rX3JhdGUpOwpAQCAtMTg4OCw3ICsyMDEw LDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJICAgICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tsaW1pdHMubWF4X2Nsb2Nr XSwKIAkJICAgICAgbGltaXRzLm1heF9icHAsIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOwog Ci0JaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKKwlpZiAoaW50ZWxfZHBfaXNfZWRw KGludGVsX2RwKSkKIAkJLyoKIAkJICogT3B0aW1pemUgZm9yIGZhc3QgYW5kIG5hcnJvdy4gZURQ IDEuMyBzZWN0aW9uIDMuMyBhbmQgZURQIDEuNAogCQkgKiBzZWN0aW9uIEEuMTogIkl0IGlzIHJl Y29tbWVuZGVkIHRoYXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mCkBAIC0xODk4LDI2ICsyMDIwLDQy IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCSAqIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIG1heCBjbG9jayBhbmQgbGFuZSBjb3Vu dCBmb3IgZURQIDEuMyBhbmQKIAkJICogZWFybGllciwgYW5kIGZhc3QgdnMuIHdpZGUgaXMgaXJy ZWxldmFudC4KIAkJICovCi0JCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0 KGludGVsX2RwLCBwaXBlX2NvbmZpZywKLQkJCQkJCSAgICAgICAmbGltaXRzKSkKLQkJCXJldHVy biBmYWxzZTsKLQl9IGVsc2UgeworCQlyZXQgPSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmln X2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAorCQkJCQkJCSZsaW1pdHMpOworCSBlbHNlCiAJ CS8qIE9wdGltaXplIGZvciBzbG93IGFuZCB3aWRlLiAqLwotCQlpZiAoIWludGVsX2RwX2NvbXB1 dGVfbGlua19jb25maWdfd2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCi0JCQkJCQkgICAgICAg JmxpbWl0cykpCisJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShpbnRl bF9kcCwgcGlwZV9jb25maWcsCisJCQkJCQkJJmxpbWl0cyk7CisKKwkvKiBlbmFibGUgY29tcHJl c3Npb24gaWYgdGhlIG1vZGUgZG9lc24ndCBmaXQgYXZhaWxhYmxlIEJXICovCisJaWYgKCFyZXQp IHsKKwkJaWYgKCFpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29u ZmlnLAorCQkJCQkJIGNvbm5fc3RhdGUsICZsaW1pdHMpKQogCQkJcmV0dXJuIGZhbHNlOwogCX0K IAotCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAot CQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ss Ci0JCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CisJaWYgKHBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSkgeworCQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNv dW50ICVkIGNsb2NrICVkIElucHV0IGJwcCAlZCBDb21wcmVzc2VkIGJwcCAlZFxuIiwKKwkJCSAg ICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJ CSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLmNvbXByZXNzZWRfYnBwKTsKIAotCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSBy ZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCi0JCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWly ZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlw ZV9icHApLAotCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrLAotCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJCURSTV9ERUJV R19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCisJCQkgICAg ICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwKKwkJCSAgICAg IGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJCQkg ICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJfSBlbHNlIHsKKwkJRFJNX0RFQlVHX0tN UygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCisJCQkgICAgICBwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkgICAgICBwaXBl X2NvbmZpZy0+cGlwZV9icHApOwogCisJCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1 aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCisJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVk KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBl X2JwcCksCisJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrLAorCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOworCX0KIAlyZXR1 cm4gdHJ1ZTsKIH0KIApAQCAtMTk4Myw3ICsyMTIxLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKGFkanVzdGVkX21vZGUtPmZs YWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspCiAJCXJldHVybiBmYWxzZTsKIAotCWlmICghaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZykpCisJaWYgKCFp bnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnLCBjb25uX3N0 YXRlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKGludGVsX2Nvbm5fc3RhdGUtPmJyb2FkY2Fz dF9yZ2IgPT0gSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPKSB7CkBAIC0yMDAxLDExICsyMTM5LDIw IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1Rf UkdCX0xJTUlURUQ7CiAJfQogCi0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+ cGlwZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAotCQkJICAgICAgIGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2ssCi0JCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCi0JCQkg ICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCi0JCQkgICAgICAgY29uc3RhbnRfbik7CisJaWYg KCFwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUpCisJCWludGVsX2xp bmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkJCSAgICAgICBwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCwKKwkJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywK KwkJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJICAgICAgICZwaXBlX2Nv bmZpZy0+ZHBfbV9uLAorCQkJCSAgICAgICBjb25zdGFudF9uKTsKKwllbHNlCisJCWludGVsX2xp bmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxl LAorCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKKwkJCQkgICAgICAgYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ss CisJCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAorCQkJCSAgICAgICBjb25zdGFudF9u KTsKIAogCWlmIChpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlICE9IE5VTEwg JiYKIAkJZGV2X3ByaXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQpIHsKLS0g CjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==