From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v7 06/19] drm/i915/dp: Compute DSC pipe config in atomic check Date: Thu, 1 Nov 2018 23:46:46 -0700 Message-ID: <20181102064659.8991-7-manasi.d.navare@intel.com> References: <20181102064659.8991-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: <20181102064659.8991-1-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: Manasi Navare , Anusha Srivatsa , Gaurav K Singh List-Id: dri-devel@lists.freedesktop.org RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBjb3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnYxMDoKKiBBZGQgYSBoZWxwZXIgZm9yIGRwX2RzYyBzdXBwb3J0 IChWaWxsZSkKKiBTZXQgcGlwZV9jb25maWcgdG8gbWF4IGJwcCwgbGluayBwYXJhbXMgZm9yIERT QyBmb3Igbm93IChWaWxsZSkKKiBDb21wdXRlIGJwcCAtIHVzZSBkcCBkc2Mgc3VwcG9ydCBoZWxw ZXIgKFZpbGxlKQp2OToKKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cgdXNlcyBm YXN0X25hcnJvdyBjb25maWcKZm9yIGVkcCAoTWFuYXNpKQp2ODoKKiBDaGVjayBmb3IgRFNDIGJw YyBub3QgMCAobWFuYXNpKQoKdjc6CiogRml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChN YW5hc2kpCgp2NiAoRnJvbSBHYXVyYXYpOgoqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVs X2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGFuZAppbnZva2UgaW50ZWxfZHBfY29tcHV0ZV9kc2Nf cGFyYW1zKCkgaW4gdGhlIHBhdGNoIHdoZXJlCml0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBpbGF0 aW9uIHdhcm5pbmcgKEdhdXJhdikKCnY1OgpBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0Y19z dGF0ZSAoTWFuYXNpKQoKdjQ6CiogUmViYXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVsX2RwX2Nv bXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQoqIEFkZCBhIGNvbW1lbnQgd2h5IHdlIG5lZWQg dG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2KQoKdjM6CiogQ2hlY2sgUFBS ID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQoKdjI6CiogQWRk IGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQoKQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBsaW51eC5pbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNv bT4KQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ClJldmlld2Vk LWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+CkFja2VkLWJ5 OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyMCArKystCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmggfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgICAgICB8IDE3MiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICB8ICAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxNjcg aW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCmluZGV4IGIyMTlkNTg1ODE2MC4uNDc3ZTUzYzM3MzUzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC02NDQyLDcgKzY0NDIsNyBAQCBzdGF0aWMgaW50IGlyb25s YWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAog CXBpcGVfY29uZmlnLT5mZGlfbGFuZXMgPSBsYW5lOwogCi0JaW50ZWxfbGlua19jb21wdXRlX21f bihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKKwlpbnRlbF9saW5r X2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgMCwgbGFuZSwgZmRpX2RvdGNsb2Nr LAogCQkJICAgICAgIGxpbmtfYncsICZwaXBlX2NvbmZpZy0+ZmRpX21fbiwgZmFsc2UpOwogCiAJ cmV0ID0gaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKGRldiwgaW50ZWxfY3J0Yy0+cGlwZSwgcGlw ZV9jb25maWcpOwpAQCAtNjY3OSwxNyArNjY3OSwyNSBAQCBzdGF0aWMgdm9pZCBjb21wdXRlX21f bih1bnNpZ25lZCBpbnQgbSwgdW5zaWduZWQgaW50IG4sCiB9CiAKIHZvaWQKLWludGVsX2xpbmtf Y29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAoraW50ZWxfbGlua19j b21wdXRlX21fbihpbnQgYml0c19wZXJfcGl4ZWwsIHVpbnQxNl90IGNvbXByZXNzZWRfYnBwLAor CQkgICAgICAgaW50IG5sYW5lcywKIAkJICAgICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtf Y2xvY2ssCiAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKIAkJICAgICAgIGJv b2wgY29uc3RhbnRfbikKIHsKIAltX24tPnR1ID0gNjQ7CiAKLQljb21wdXRlX21fbihiaXRzX3Bl cl9waXhlbCAqIHBpeGVsX2Nsb2NrLAotCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCi0J CSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKLQkJICAgIGNvbnN0YW50X24pOworCS8q IEZvciBEU0MsIERhdGEgTS9OIGNhbGN1bGF0aW9uIHVzZXMgY29tcHJlc3NlZCBCUFAgKi8KKwlp ZiAoY29tcHJlc3NlZF9icHApCisJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRfYnBwICogcGl4ZWxf Y2xvY2ssCisJCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCisJCQkgICAgJm1fbi0+Z21j aF9tLCAmbV9uLT5nbWNoX24sCisJCQkgICAgY29uc3RhbnRfbik7CisJZWxzZQorCQljb21wdXRl X21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAorCQkJICAgIGxpbmtfY2xvY2sgKiBu bGFuZXMgKiA4LAorCQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAorCQkJICAgIGNv bnN0YW50X24pOwogCiAJY29tcHV0ZV9tX24ocGl4ZWxfY2xvY2ssIGxpbmtfY2xvY2ssCiAJCSAg ICAmbV9uLT5saW5rX20sICZtX24tPmxpbmtfbiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuaAppbmRleCA1ZDUwZGVjYmNiYjUuLmIwYjIzZTFlOTM5MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuaApAQCAtNDA3LDcgKzQwNyw4IEBAIHN0cnVjdCBpbnRlbF9saW5rX21f biB7CiAJICAgICAoX19pKSsrKSBcCiAJCWZvcl9lYWNoX2lmKHBsYW5lKQogCi12b2lkIGludGVs X2xpbmtfY29tcHV0ZV9tX24oaW50IGJwcCwgaW50IG5sYW5lcywKK3ZvaWQgaW50ZWxfbGlua19j b21wdXRlX21fbihpbnQgYnBwLCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKKwkJCSAgICBpbnQg bmxhbmVzLAogCQkJICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCiAJCQkgICAg c3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCiAJCQkgICAgYm9vbCBjb25zdGFudF9uKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IGIzOWI0YmRhOGU0MC4uMWIxMGUyN2IzZTJiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTQ3LDYgKzQ3LDggQEAKIAogLyogRFAgRFNDIHNtYWxs IGpvaW5lciBoYXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMgKi8KICNkZWZpbmUgRFBf RFNDX01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAorI2RlZmluZSBEUF9EU0NfTUlO X1NVUFBPUlRFRF9CUEMJCTgKKyNkZWZpbmUgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDCQkxMAog CiAvKiBEUCBEU0MgdGhyb3VnaHB1dCB2YWx1ZXMgdXNlZCBmb3Igc2xpY2UgY291bnQgY2FsY3Vs YXRpb25zIEtQaXhlbHMvcyAqLwogI2RlZmluZSBEUF9EU0NfUEVBS19QSVhFTF9SQVRFCQkJMjcy MDAwMApAQCAtMTg0MCw2ICsxODQyLDI5IEBAIHN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgewog CWludCBtaW5fYnBwLCBtYXhfYnBwOwogfTsKIAorc3RhdGljIGJvb2wgaW50ZWxfZHBfc291cmNl X3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJCQkgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOworCisJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPCAxMCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChwaXBlX2NvbmZpZy0+Y3B1X3RyYW5z Y29kZXIgPT0gVFJBTlNDT0RFUl9BKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsK K30KKworc3RhdGljIGJvb2wgaW50ZWxfZHBfc3VwcG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCisJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCit7 CisJaWYgKCFpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZp ZykgfHwKKwkgICAgIWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2Qp KQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGludCBpbnRl bF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKQEAgLTE4NjMsNiArMTg4OCwxNSBAQCBz dGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs CiAJCX0KIAl9CiAKKwkvKiBJZiBEU0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1heCB2YWx1ZSBy ZXBvcnRlZCBieSBwYW5lbCAqLworCWlmIChpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50ZWxfZHAs IHBpcGVfY29uZmlnKSkgeworCQlicGMgPSBtaW5fdCh1OCwKKwkJCSAgICBkcm1fZHBfZHNjX3Np bmtfbWF4X2NvbG9yX2RlcHRoKGludGVsX2RwLT5kc2NfZHBjZCksCisJCQkgICAgRFBfRFNDX01B WF9TVVBQT1JURURfQlBDKTsKKwkJaWYgKGJwYykKKwkJCWJwcCA9IG1pbihicHAsIDMqYnBjKTsK Kwl9CisKIAlyZXR1cm4gYnBwOwogfQogCkBAIC0xOTIzLDEyICsxOTU3LDEwIEBAIGludGVsX2Rw X2NvbXB1dGVfbGlua19jb25maWdfd2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJ CWxpbmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKIAkJCQlsaW5rX2F2 YWlsID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShsaW5rX2Nsb2NrLAogCQkJCQkJCQkgICAgbGFu ZV9jb3VudCk7Ci0KIAkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpIHsKIAkJCQkJcGlw ZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50OwogCQkJCQlwaXBlX2NvbmZpZy0+cGlw ZV9icHAgPSBicHA7CiAJCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsK LQogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQl9CiAJCQl9CkBAIC0xOTU5LDEyICsxOTkxLDEwIEBA IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAogCQkJCWxpbmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKIAkJ CQlsaW5rX2F2YWlsID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShsaW5rX2Nsb2NrLAogCQkJCQkJ CQkgICAgbGFuZV9jb3VudCk7Ci0KIAkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpIHsK IAkJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50OwogCQkJCQlwaXBlX2Nv bmZpZy0+cGlwZV9icHAgPSBicHA7CiAJCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlu a19jbG9jazsKLQogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQl9CiAJCQl9CkBAIC0xOTc0LDYgKzIw MDQsODEgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9k c2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCQljb25zdCBzdHJ1Y3QgbGlua19j b25maWdfbGltaXRzICpsaW1pdHMpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKKwl1MTYgZHNjX21heF9vdXRwdXRfYnBwID0gMDsKKwl1OCBkc2NfZHBfc2xp Y2VfY291bnQgPSAwOworCisJaWYgKCFpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50ZWxfZHAsIHBp cGVfY29uZmlnKSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogRFNDIG5vdCBzdXBwb3J0ZWQgZm9y IERTQyBzaW5rIEJQQyA8IDggKi8KKwlpZiAobGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RTQ19N SU5fU1VQUE9SVEVEX0JQQykgeworCQlEUk1fREVCVUdfS01TKCJObyBEU0Mgc3VwcG9ydCBmb3Ig bGVzcyB0aGFuIDhicGNcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBGb3Ig bm93IGVuYWJsZSBEU0MgZm9yIG1heCBicHAsIG1heCBsaW5rIHJhdGUsIG1heCBsYW5lIGNvdW50 LgorCSAqIE9wdGltaXplIHRoaXMgbGF0ZXIgZm9yIHRoZSBtaW5pbXVtIHBvc3NpYmxlIGxpbmsg cmF0ZS9sYW5lIGNvdW50CisJICogd2l0aCBEU0MgZW5hYmxlZCBmb3IgdGhlIHJlcXVlc3RlZCBt b2RlLgorCSAqLworCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGxpbWl0cy0+bWF4X2JwcDsKKwlw aXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLT5t YXhfY2xvY2tdOworCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGltaXRzLT5tYXhfbGFuZV9j b3VudDsKKworCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7CisJCXBpcGVfY29uZmln LT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwID0KKwkJCWRybV9lZHBfZHNjX3Npbmtfb3V0cHV0 X2JwcChpbnRlbF9kcC0+ZHNjX2RwY2QpID4+IDQ7CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1z LnNsaWNlX2NvdW50ID0KKwkJCWRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoaW50ZWxf ZHAtPmRzY19kcGNkLAorCQkJCQkJCXRydWUpOworCX0gZWxzZSB7CisJCWRzY19tYXhfb3V0cHV0 X2JwcCA9CisJCQlpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAocGlwZV9jb25maWctPnBvcnRf Y2xvY2ssCisJCQkJCQkgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsCisJCQkJCQkgICAgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hk aXNwbGF5KTsKKwkJZHNjX2RwX3NsaWNlX2NvdW50ID0KKwkJCWludGVsX2RwX2RzY19nZXRfc2xp Y2VfY291bnQoaW50ZWxfZHAsCisJCQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ss CisJCQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkpOworCQlpZiAoIShkc2Nf bWF4X291dHB1dF9icHAgJiYgZHNjX2RwX3NsaWNlX2NvdW50KSkgeworCQkJRFJNX0RFQlVHX0tN UygiQ29tcHJlc3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBvcnRlZFxuIik7CisJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAg PSBkc2NfbWF4X291dHB1dF9icHAgPj4gNDsKKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xp Y2VfY291bnQgPSBkc2NfZHBfc2xpY2VfY291bnQ7CisJfQorCS8qCisJICogVkRTQyBlbmdpbmUg b3BlcmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4ZWwgcmF0ZQorCSAq IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSBDZGNsb2NrIGFuZCBpZiBzbGljZSBjb3VudCBp cyBldmVuCisJICogdGhlbiB3ZSBuZWVkIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzLgorCSAqLwor CXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmRzY19zcGxpdCA9IGZhbHNlOworCWlmIChhZGp1c3Rl ZF9tb2RlLT5jcnRjX2Nsb2NrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7CisJCWlmIChw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA+IDEpIHsKKwkJCXBpcGVfY29uZmln LT5kc2NfcGFyYW1zLmRzY19zcGxpdCA9IHRydWU7CisJCX0gZWxzZSB7CisJCQlEUk1fREVCVUdf S01TKCJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzXG4iKTsKKwkJ CXJldHVybiBmYWxzZTsKKwkJfQorCX0KKwlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVz c2lvbl9lbmFibGUgPSB0cnVlOworCURSTV9ERUJVR19LTVMoIkRQIERTQyBjb21wdXRlZCB3aXRo IElucHV0IEJwcCA9ICVkICIKKwkJICAgICAgIkNvbXByZXNzZWQgQnBwID0gJWQgU2xpY2UgQ291 bnQgPSAlZFxuIiwKKwkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkgICAgICBwaXBl X2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwKKwkJICAgICAgcGlwZV9jb25maWct PmRzY19wYXJhbXMuc2xpY2VfY291bnQpOworCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBi b29sCiBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCkBA IC0xOTgyLDYgKzIwODcsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNf dG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMg bGltaXRzOwogCWludCBjb21tb25fbGVuOworCWJvb2wgcmV0ID0gZmFsc2U7CiAKIAljb21tb25f bGVuID0gaW50ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAogCQkJCQkJICAg IGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKQEAgLTE5OTUsOCArMjEwMSwxMiBAQCBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWxp bWl0cy5taW5fbGFuZV9jb3VudCA9IDE7CiAJbGltaXRzLm1heF9sYW5lX2NvdW50ID0gaW50ZWxf ZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwogCi0JbGltaXRzLm1pbl9icHAgPSA2ICogMzsK IAlsaW1pdHMubWF4X2JwcCA9IGludGVsX2RwX2NvbXB1dGVfYnBwKGludGVsX2RwLCBwaXBlX2Nv bmZpZyk7CisJaWYgKGludGVsX2RwX3N1cHBvcnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcp ICYmCisJICAgIGxpbWl0cy5tYXhfYnBwID49IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyozKQor CQlsaW1pdHMubWluX2JwcCA9IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAqIDM7CisJZWxzZQor CQlsaW1pdHMubWluX2JwcCA9IDYgKiAzOwogCiAJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9k cCkgJiYgaW50ZWxfZHAtPmVkcF9kcGNkWzBdIDwgRFBfRURQXzE0KSB7CiAJCS8qCkBAIC0yMDIw LDcgKzIxMzAsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkgICAgICBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy5t YXhfY2xvY2tdLAogCQkgICAgICBsaW1pdHMubWF4X2JwcCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jayk7CiAKLQlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgeworCWlmIChpbnRlbF9k cF9pc19lZHAoaW50ZWxfZHApKQogCQkvKgogCQkgKiBPcHRpbWl6ZSBmb3IgZmFzdCBhbmQgbmFy cm93LiBlRFAgMS4zIHNlY3Rpb24gMy4zIGFuZCBlRFAgMS40CiAJCSAqIHNlY3Rpb24gQS4xOiAi SXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgbWluaW11bSBudW1iZXIgb2YKQEAgLTIwMzAsMjYg KzIxNDAsNDIgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJICogTm90ZSB0aGF0IHdlIHVzZSB0aGUgbWF4IGNsb2NrIGFuZCBs YW5lIGNvdW50IGZvciBlRFAgMS4zIGFuZAogCQkgKiBlYXJsaWVyLCBhbmQgZmFzdCB2cy4gd2lk ZSBpcyBpcnJlbGV2YW50LgogCQkgKi8KLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29u ZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAotCQkJCQkJICAgICAgICZsaW1pdHMpKQot CQkJcmV0dXJuIGZhbHNlOwotCX0gZWxzZSB7CisJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlu a19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCisJCQkJCQkJJmxpbWl0cyk7CisJ ZWxzZQogCQkvKiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQgd2lkZS4gKi8KLQkJaWYgKCFpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAotCQkJCQkJ ICAgICAgICZsaW1pdHMpKQorCQlyZXQgPSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dp ZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAorCQkJCQkJCSZsaW1pdHMpOworCisJLyogZW5hYmxl IGNvbXByZXNzaW9uIGlmIHRoZSBtb2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLworCWlm ICghcmV0KSB7CisJCWlmICghaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBw aXBlX2NvbmZpZywKKwkJCQkJCSAmbGltaXRzKSkKIAkJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlE Uk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKLQkJICAg ICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAotCQkg ICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOworCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFt cy5jb21wcmVzc2lvbl9lbmFibGUpIHsKKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAl ZCBjbG9jayAlZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCisJCQkgICAgICBw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkgICAg ICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCisJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFt cy5jb21wcmVzc2VkX2JwcCk7CiAKLQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWly ZWQgJWkgYXZhaWxhYmxlICVpXG4iLAotCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFk anVzdGVkX21vZGUtPmNydGNfY2xvY2ssCi0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBw KSwKLQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9j aywKLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOworCQlEUk1fREVCVUdfS01T KCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAorCQkJICAgICAgaW50 ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJCQkJICAg ICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCksCisJCQkgICAgICBpbnRl bF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCQkJICAgICBw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOworCX0gZWxzZSB7CisJCURSTV9ERUJVR19LTVMoIkRQ IGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAorCQkJICAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJICAgICAgcGlwZV9jb25m aWctPnBpcGVfYnBwKTsKIAorCQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQg JWkgYXZhaWxhYmxlICVpXG4iLAorCQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAp LAorCQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9j aywKKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKKwl9CiAJcmV0dXJuIHRy dWU7CiB9CiAKQEAgLTIxMzMsNyArMjI1OSw5IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRj YXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7CiAJfQogCi0JaW50ZWxfbGlu a19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2Nv dW50LAorCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkJ ICAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAorCQkJICAgICAg IHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAogCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNf Y2xvY2ssCiAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkgICAgICAgJnBp cGVfY29uZmlnLT5kcF9tX24sCkBAIC0yMTQyLDcgKzIyNzAsNyBAQCBpbnRlbF9kcF9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAoaW50ZWxfY29ubmVj dG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZSAhPSBOVUxMICYmCiAJCWRldl9wcml2LT5kcnJzLnR5 cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7CiAJCQlwaXBlX2NvbmZpZy0+aGFzX2RycnMg PSB0cnVlOwotCQkJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAs CisJCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgMCwKIAkJ CQkJICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAogCQkJCQkgICAgICAgaW50ZWxfY29u bmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZS0+Y2xvY2ssCiAJCQkJCSAgICAgICBwaXBlX2Nv bmZpZy0+cG9ydF9jbG9jaywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKaW5kZXggOGI3 MWQ2NGViZDlkLi5lMDJjYWVkZDQ0M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j CkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJfQogCX0KIAotCWludGVsX2xpbmtf Y29tcHV0ZV9tX24oYnBwLCBsYW5lX2NvdW50LAorCWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBw LCAwLCBsYW5lX2NvdW50LAogCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCiAJ CQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkgICAgICAgJnBpcGVfY29uZmln LT5kcF9tX24sCi0tIAoyLjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=