From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v2] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 31 Jul 2018 10:33:23 -0700 Message-ID: <1533058403-27678-1-git-send-email-manasi.d.navare@intel.com> References: <1533003183-22793-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 mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 063326E1CB for ; Tue, 31 Jul 2018 17:30:43 +0000 (UTC) In-Reply-To: <1533003183-22793-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 RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBvY3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnY3OgoqIEZpeCBpbmRlbnRhdGlvbiBpbiBjb21wdXRlX21fbiAo TWFuYXNpKQoKdjYgKEZyb20gR2F1cmF2KToKKiBSZW1vdmUgZnVuY3Rpb24gY2FsbCBvZiBpbnRl bF9kcF9jb21wdXRlX2RzY19wYXJhbXMoKSBhbmQKaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNj X3BhcmFtcygpIGluIHRoZSBwYXRjaCB3aGVyZQppdCBpcyBkZWZpbmVkIHRvIGZpeCBjb21waWxh dGlvbiB3YXJuaW5nIChHYXVyYXYpCgp2NToKQWRkIGRybV9kc2NfY2ZnIGluIGludGVsX2NydGNf c3RhdGUgKE1hbmFzaSkKCnY0OgoqIFJlYmFzZSBvbiByZWZhY3RvcmluZyBvZiBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyBvbiB0aXAgKE1hbmFzaSkKKiBBZGQgYSBjb21tZW50IHdoeSB3ZSBuZWVk IHRvIGNoZWNrIFBTUiB3aGlsZSBlbmFibGluZyBEU0MgKEdhdXJhdikKCnYzOgoqIENoZWNrIFBQ UiA+IG1heF9jZGNsb2NrIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzIChWaWxsZSkKCnYyOgoqIEFk ZCBpZi1lbHNlIGZvciBlRFAvRFAgKEdhdXJhdikKCkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1 bGFAbGludXguaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+CkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+CkNjOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyMCArKystLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jICAgICAgfCAxNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICB8ICAgMiArLQogNCBmaWxl cyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDU3N2IzMGQuLmRlODk1YWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTY0NjAsNyArNjQ2MCw3IEBAIHN0YXRpYyBpbnQg aXJvbmxha2VfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj LAogCiAJcGlwZV9jb25maWctPmZkaV9sYW5lcyA9IGxhbmU7CiAKLQlpbnRlbF9saW5rX2NvbXB1 dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgbGFuZSwgZmRpX2RvdGNsb2NrLAorCWludGVs X2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLCBsYW5lLCBmZGlfZG90 Y2xvY2ssCiAJCQkgICAgICAgbGlua19idywgJnBpcGVfY29uZmlnLT5mZGlfbV9uLCBmYWxzZSk7 CiAKIAlyZXQgPSBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoZGV2LCBpbnRlbF9jcnRjLT5waXBl LCBwaXBlX2NvbmZpZyk7CkBAIC02Njk3LDE3ICs2Njk3LDI1IEBAIHN0YXRpYyB2b2lkIGNvbXB1 dGVfbV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKIH0KIAogdm9pZAotaW50ZWxf bGlua19jb21wdXRlX21fbihpbnQgYml0c19wZXJfcGl4ZWwsIGludCBubGFuZXMsCitpbnRlbF9s aW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgdWludDE2X3QgY29tcHJlc3NlZF9i cHAsCisJCSAgICAgICBpbnQgbmxhbmVzLAogCQkgICAgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQg bGlua19jbG9jaywKIAkJICAgICAgIHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkgICAg ICAgYm9vbCByZWR1Y2VfbV9uKQogewogCW1fbi0+dHUgPSA2NDsKIAotCWNvbXB1dGVfbV9uKGJp dHNfcGVyX3BpeGVsICogcGl4ZWxfY2xvY2ssCi0JCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICog OCwKLQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAotCQkgICAgcmVkdWNlX21fbik7 CisJLyogRm9yIERTQywgRGF0YSBNL04gY2FsY3VsYXRpb24gdXNlcyBjb21wcmVzc2VkIEJQUCAq LworCWlmIChjb21wcmVzc2VkX2JwcCkKKwkJY29tcHV0ZV9tX24oY29tcHJlc3NlZF9icHAgKiBw aXhlbF9jbG9jaywKKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKKwkJCSAgICAmbV9u LT5nbWNoX20sICZtX24tPmdtY2hfbiwKKwkJCSAgICByZWR1Y2VfbV9uKTsKKwllbHNlCisJCWNv bXB1dGVfbV9uKGJpdHNfcGVyX3BpeGVsICogcGl4ZWxfY2xvY2ssCisJCQkgICAgbGlua19jbG9j ayAqIG5sYW5lcyAqIDgsCisJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCisJCQkg ICAgcmVkdWNlX21fbik7CiAKIAljb21wdXRlX21fbihwaXhlbF9jbG9jaywgbGlua19jbG9jaywK IAkJICAgICZtX24tPmxpbmtfbSwgJm1fbi0+bGlua19uLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5oCmluZGV4IDBhNzlhNDYuLmJhMDEzZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmgKQEAgLTM2MCw3ICszNjAsOCBAQCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gewog CSAgICAgKF9faSkrKykgXAogCQlmb3JfZWFjaF9pZihwbGFuZSkKIAotdm9pZCBpbnRlbF9saW5r X2NvbXB1dGVfbV9uKGludCBicHAsIGludCBubGFuZXMsCit2b2lkIGludGVsX2xpbmtfY29tcHV0 ZV9tX24oaW50IGJwcCwgdWludDE2X3QgY29tcHJlc3NlZF9icHAsCisJCQkgICAgaW50IG5sYW5l cywKIAkJCSAgICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAogCQkJICAgIHN0cnVj dCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkJICAgIGJvb2wgcmVkdWNlX21fbik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwppbmRleCBjODZjOGY0Li5mYjE3OWYxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKQEAgLTQ3LDYgKzQ3LDggQEAKIAogLyogRFAgRFNDIHNtYWxsIGpvaW5lciBoYXMgMiBG SUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMgKi8KICNkZWZpbmUgRFBfRFNDX01BWF9TTUFMTF9K T0lORVJfUkFNX0JVRkZFUgk2MTQ0MAorI2RlZmluZSBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMJ CTgKKyNkZWZpbmUgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDCQkxMAogCiAvKiBEUCBEU0MgdGhy b3VnaHB1dCB2YWx1ZXMgdXNlZCBmb3Igc2xpY2UgY291bnQgY2FsY3VsYXRpb25zIEtQaXhlbHMv cyAqLwogI2RlZmluZSBEUF9EU0NfUEVBS19QSVhFTF9SQVRFCQkJMjcyMDAwMApAQCAtMTg5Nyw2 ICsxODk5LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKIAkJfQogCX0KIAorCS8qIElmIERTQyBpcyBzdXBwb3J0ZWQsIHVzZSB0 aGUgbWF4IHZhbHVlIHJlcG9ydGVkIGJ5IHBhbmVsICovCisJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gMTAgJiYKKwkgICAgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2Nf ZHBjZCkpIHsKKwkJYnBjID0gbWluX3QodTgsCisJCQkgICAgZHJtX2RwX2RzY19zaW5rX21heF9j b2xvcl9kZXB0aChpbnRlbF9kcC0+ZHNjX2RwY2QpLAorCQkJICAgIERQX0RTQ19NQVhfU1VQUE9S VEVEX0JQQyk7CisJCWlmICghYnBjKQorCQkJYnBwID0gMypicGM7CisJfQorCiAJcmV0dXJuIGJw cDsKIH0KIApAQCAtMTk1NywxNCArMTk2OSwxMSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29u ZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQlsaW5rX2Nsb2NrID0gaW50 ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107CiAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21h eF9kYXRhX3JhdGUobGlua19jbG9jaywKIAkJCQkJCQkJICAgIGxhbmVfY291bnQpOwotCi0JCQkJ aWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Ci0JCQkJCXBpcGVfY29uZmlnLT5sYW5lX2Nv dW50ID0gbGFuZV9jb3VudDsKLQkJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwotCQkJ CQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Ci0KKwkJCQlwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7CisJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0g YnBwOworCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKKwkJCQlpZiAo bW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCiAJCQkJCXJldHVybiB0cnVlOwotCQkJCX0KIAkJCX0K IAkJfQogCX0KQEAgLTE5NzIsMTAgKzE5ODEsODIgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2Nv bmZpZ193aWRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJcmV0dXJuIGZhbHNlOwogfQog CitzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKKwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAor CQkJCQlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCit7CisJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5i YXNlLmRldik7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVs X2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0YyktPnBpcGU7CisJdTE2IGRzY19tYXhfb3V0cHV0 X2JwcCA9IDA7CisJdTggZHNjX2RwX3NsaWNlX2NvdW50ID0gMDsKKworCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgMTAgfHwKKwkgICAgIWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9k cC0+ZHNjX2RwY2QpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBEUCBEU0Mgb25seSBzdXBwb3J0 ZWQgb24gUGlwZSBCIGFuZCBDICovCisJaWYgKHBpcGUgPT0gUElQRV9BICYmICFpbnRlbF9kcF9p c19lZHAoaW50ZWxfZHApKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBEU0Mgbm90IHN1cHBvcnRl ZCBmb3IgRFNDIHNpbmsgQlBDIDwgOCAqLworCWlmIChsaW1pdHMtPm1heF9icHAgPCAzICogRFBf RFNDX01JTl9TVVBQT1JURURfQlBDKSB7CisJCURSTV9ERUJVR19LTVMoIk5vIERTQyBzdXBwb3J0 IGZvciBsZXNzIHRoYW4gOGJwY1xuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlpZiAoaW50 ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgeworCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21w cmVzc2VkX2JwcCA9CisJCQlkcm1fZWRwX2RzY19zaW5rX291dHB1dF9icHAoaW50ZWxfZHAtPmRz Y19kcGNkKSA+PiA0OworCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9CisJ CQlkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50KGludGVsX2RwLT5kc2NfZHBjZCwKKwkJ CQkJCQl0cnVlKTsKKwl9IGVsc2UgeworCisJCWRzY19tYXhfb3V0cHV0X2JwcCA9IGludGVsX2Rw X2RzY19nZXRfb3V0cHV0X2JwcChwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCQkJCQkJIHBp cGVfY29uZmlnLT5sYW5lX2NvdW50LAorCQkJCQkJCQkgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j aywKKwkJCQkJCQkJIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkpOworCQlkc2NfZHBfc2xp Y2VfY291bnQgPSBpbnRlbF9kcF9kc2NfZ2V0X3NsaWNlX2NvdW50KGludGVsX2RwLAorCQkJCQkJ CQkgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkJCSAgYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19oZGlzcGxheSk7CisJCWlmICghKGRzY19tYXhfb3V0cHV0X2JwcCAmJiBkc2NfZHBfc2xp Y2VfY291bnQpKSB7CisJCQlEUk1fREVCVUdfS01TKCJDb21wcmVzc2VkIEJQUC9TbGljZSBDb3Vu dCBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlwaXBlX2NvbmZp Zy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCA9IGRzY19tYXhfb3V0cHV0X2JwcCA+PiA0Owor CQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3Vu dDsKKwl9CisJLyoKKwkgKiBWRFNDIGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9j aywgc28gaWYgcGVhayBwaXhlbCByYXRlCisJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVt IENkY2xvY2sgYW5kIGlmIHNsaWNlIGNvdW50IGlzIGV2ZW4KKwkgKiB0aGVuIHdlIG5lZWQgdG8g dXNlIDIgVkRTQyBpbnN0YW5jZXMuCisJICovCisJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNj X3NwbGl0ID0gZmFsc2U7CisJaWYgKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXEpIHsKKwkJaWYgKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNl X2NvdW50ID4gMSkKKwkJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmRzY19zcGxpdCA9IHRydWU7 CisJCWVsc2UgeworCQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2Ug MiBWRFNDIGluc3RhbmNlc1xuIik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJcGlwZV9j b25maWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKKwlEUk1fREVCVUdf S01TKCJEUCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCisJCSAgICAgICJDb21w cmVzc2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsCisJCSAgICAgIHBpcGVfY29uZmln LT5waXBlX2JwcCwKKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9i cHAsCisJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50KTsKKworCXJl dHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbAogaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFz ZSk7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7CkBAIC0xOTkzLDcgKzIwNzQs OSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCWxpbWl0cy5taW5fbGFuZV9jb3VudCA9IDE7CiAJbGltaXRzLm1heF9sYW5lX2Nv dW50ID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwogCi0JbGltaXRzLm1pbl9i cHAgPSA2ICogMzsKKwlsaW1pdHMubWluX2JwcCA9IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEw ICYmCisJCQkgIGRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKSA/ CisJCURQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAqIDMgOiA2ICogMzsKIAlsaW1pdHMubWF4X2Jw cCA9IGludGVsX2RwX2NvbXB1dGVfYnBwKGludGVsX2RwLCBwaXBlX2NvbmZpZyk7CiAKIAlpZiAo aW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewpAQCAtMjAyMCwxOSArMjEwMyw0MyBAQCBpbnRl bF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CSAqIE9wdGltaXplIGZvciBzbG93IGFuZCB3aWRlLiBUaGlzIGlzIHRoZSBwbGFjZSB0byBhZGQg YWx0ZXJuYXRpdmUKIAkgKiBvcHRpbWl6YXRpb24gcG9saWN5LgogCSAqLwotCWlmICghaW50ZWxf ZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywgJmxpbWl0 cykpCi0JCXJldHVybiBmYWxzZTsKKwlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdf d2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCisJCQkJCSAgICAgICAmbGltaXRzKSkgewogCi0J RFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCi0JCSAg ICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKLQkJ ICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKKwkJRFJNX0RFQlVHX0tNUygiRFAgcmVxdWly ZWQgTGluayByYXRlICVpIGRvZXMgbm90IGZpdCBhdmFpbGFibGUgJWlcbiIsCisJCQkgICAgICBp bnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkg ICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCksCisJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9y YXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCkpOworCisJCS8qIGVuYWJsZSBjb21wcmVzc2lvbiBpZiB0aGUgbW9kZSBkb2Vzbid0 IGZpdCBhdmFpbGFibGUgQlcgKi8KKwkJaWYgKCFpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWco aW50ZWxfZHAsIHBpcGVfY29uZmlnLAorCQkJCQkJICZsaW1pdHMpKQorCQkJcmV0dXJuIGZhbHNl OworCX0KKworCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUp IHsKKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBJbnB1dCBicHAg JWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCisJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3Vu dCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9i cHAsCisJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCk7CiAK IAlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4i LAogCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xv Y2ssCi0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKKwkJCQkJICAgICBwaXBlX2Nv bmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCksCiAJCSAgICAgIGludGVsX2RwX21heF9k YXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJCSAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQpKTsKKwl9IGVsc2UgeworCQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50 ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50 LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2Jw cCk7CiAKKwlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxl ICVpXG4iLAorCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2ssCisJCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKKwkJICAgICAgaW50 ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCQkJICAgICBw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOworCX0KIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjEx MSw3ICsyMjE4LDkgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJCQlpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVM X0JST0FEQ0FTVF9SR0JfTElNSVRFRDsKIAl9CiAKLQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBp cGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmxhbmVfY291bnQsCisJaW50ZWxfbGlu a19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCisJCQkgICAgICAgcGlwZV9jb25m aWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCisJCQkgICAgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQsCiAJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKIAkJCSAgICAg ICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJCSAgICAgICAmcGlwZV9jb25maWctPmRwX21f biwKQEAgLTIxMjAsNyArMjIyOSw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRvd25j bG9ja19tb2RlICE9IE5VTEwgJiYKIAkJZGV2X3ByaXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19E UlJTX1NVUFBPUlQpIHsKIAkJCXBpcGVfY29uZmlnLT5oYXNfZHJycyA9IHRydWU7Ci0JCQlpbnRl bF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJCWludGVsX2xpbmtf Y29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLAogCQkJCQkgICAgICAgcGlwZV9j b25maWctPmxhbmVfY291bnQsCiAJCQkJCSAgICAgICBpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRv d25jbG9ja19tb2RlLT5jbG9jaywKIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwppbmRleCAzNTJlNTIxLi40Zjk0MWI4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwpAQCAtODMsNyArODMsNyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGJw cCwgbGFuZV9jb3VudCwKKwlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGJwcCwgMCwgbGFuZV9jb3Vu dCwKIAkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAogCQkJICAgICAgIHBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrLAogCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAotLSAK Mi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=