From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v6 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Wed, 24 Oct 2018 15:28:25 -0700 Message-ID: <20181024222840.25683-14-manasi.d.navare@intel.com> References: <20181024222840.25683-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: <20181024222840.25683-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 aW4gYXRvbWljIGNvbW1pdC4KCnY5OgoqIFJlYmFzZSBvbiB0b3Agb2YgZHJtLXRpcCB0aGF0IG5v dyB1c2VzIGZhc3RfbmFycm93IGNvbmZpZwpmb3IgZWRwIChNYW5hc2kpCnY4OgoqIENoZWNrIGZv ciBEU0MgYnBjIG5vdCAwIChtYW5hc2kpCgp2NzoKKiBGaXggaW5kZW50YXRpb24gaW4gY29tcHV0 ZV9tX24gKE1hbmFzaSkKCnY2IChGcm9tIEdhdXJhdik6CiogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwg b2YgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgYW5kCmludm9rZSBpbnRlbF9kcF9jb21w dXRlX2RzY19wYXJhbXMoKSBpbiB0aGUgcGF0Y2ggd2hlcmUKaXQgaXMgZGVmaW5lZCB0byBmaXgg Y29tcGlsYXRpb24gd2FybmluZyAoR2F1cmF2KQoKdjU6CkFkZCBkcm1fZHNjX2NmZyBpbiBpbnRl bF9jcnRjX3N0YXRlIChNYW5hc2kpCgp2NDoKKiBSZWJhc2Ugb24gcmVmYWN0b3Jpbmcgb2YgaW50 ZWxfZHBfY29tcHV0ZV9jb25maWcgb24gdGlwIChNYW5hc2kpCiogQWRkIGEgY29tbWVudCB3aHkg d2UgbmVlZCB0byBjaGVjayBQU1Igd2hpbGUgZW5hYmxpbmcgRFNDIChHYXVyYXYpCgp2MzoKKiBD aGVjayBQUFIgPiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGluc3RhbmNlcyAoVmlsbGUpCgp2 MjoKKiBBZGQgaWYtZWxzZSBmb3IgZURQL0RQIChHYXVyYXYpCgpDYzogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPgpDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4K UmV2aWV3ZWQtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4K QWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIwICsrKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgICAgIHwgMTcwICsrKysrKysrKysrKysrKysrKysrKystLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgIHwgICAyICstCiA0IGZpbGVzIGNoYW5n ZWQsIDE1NSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKaW5kZXggZmUwNDVhYmI2NDcyLi4xODczN2JkODJiNjggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTY0MzQsNyArNjQzNCw3IEBAIHN0YXRpYyBp bnQgaXJvbmxha2VfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAogCiAJcGlwZV9jb25maWctPmZkaV9sYW5lcyA9IGxhbmU7CiAKLQlpbnRlbF9saW5rX2Nv bXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgbGFuZSwgZmRpX2RvdGNsb2NrLAorCWlu dGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLCBsYW5lLCBmZGlf ZG90Y2xvY2ssCiAJCQkgICAgICAgbGlua19idywgJnBpcGVfY29uZmlnLT5mZGlfbV9uLCBmYWxz ZSk7CiAKIAlyZXQgPSBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoZGV2LCBpbnRlbF9jcnRjLT5w aXBlLCBwaXBlX2NvbmZpZyk7CkBAIC02NjcxLDE3ICs2NjcxLDI1IEBAIHN0YXRpYyB2b2lkIGNv bXB1dGVfbV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKIH0KIAogdm9pZAotaW50 ZWxfbGlua19jb21wdXRlX21fbihpbnQgYml0c19wZXJfcGl4ZWwsIGludCBubGFuZXMsCitpbnRl bF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgdWludDE2X3QgY29tcHJlc3Nl ZF9icHAsCisJCSAgICAgICBpbnQgbmxhbmVzLAogCQkgICAgICAgaW50IHBpeGVsX2Nsb2NrLCBp bnQgbGlua19jbG9jaywKIAkJICAgICAgIHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkg ICAgICAgYm9vbCBjb25zdGFudF9uKQogewogCW1fbi0+dHUgPSA2NDsKIAotCWNvbXB1dGVfbV9u KGJpdHNfcGVyX3BpeGVsICogcGl4ZWxfY2xvY2ssCi0JCSAgICBsaW5rX2Nsb2NrICogbmxhbmVz ICogOCwKLQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAotCQkgICAgY29uc3RhbnRf bik7CisJLyogRm9yIERTQywgRGF0YSBNL04gY2FsY3VsYXRpb24gdXNlcyBjb21wcmVzc2VkIEJQ UCAqLworCWlmIChjb21wcmVzc2VkX2JwcCkKKwkJY29tcHV0ZV9tX24oY29tcHJlc3NlZF9icHAg KiBwaXhlbF9jbG9jaywKKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKKwkJCSAgICAm bV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKKwkJCSAgICBjb25zdGFudF9uKTsKKwllbHNlCisJ CWNvbXB1dGVfbV9uKGJpdHNfcGVyX3BpeGVsICogcGl4ZWxfY2xvY2ssCisJCQkgICAgbGlua19j bG9jayAqIG5sYW5lcyAqIDgsCisJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCisJ CQkgICAgY29uc3RhbnRfbik7CiAKIAljb21wdXRlX21fbihwaXhlbF9jbG9jaywgbGlua19jbG9j aywKIAkJICAgICZtX24tPmxpbmtfbSwgJm1fbi0+bGlua19uLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5oCmluZGV4IDVkNTBkZWNiY2JiNS4uYjBiMjNlMWU5MzkyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCkBAIC00MDcsNyArNDA3LDggQEAgc3RydWN0IGludGVs X2xpbmtfbV9uIHsKIAkgICAgIChfX2kpKyspIFwKIAkJZm9yX2VhY2hfaWYocGxhbmUpCiAKLXZv aWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCBpbnQgbmxhbmVzLAordm9pZCBpbnRl bF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIHVpbnQxNl90IGNvbXByZXNzZWRfYnBwLAorCQkJ ICAgIGludCBubGFuZXMsCiAJCQkgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywK IAkJCSAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKIAkJCSAgICBib29sIGNvbnN0YW50 X24pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggNmY2NmEzOGJhMGIyLi5hODhmOTM3MWRk MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtNDcsNiArNDcsOCBAQAogCiAvKiBEUCBE U0Mgc21hbGwgam9pbmVyIGhhcyAyIEZJRk9zIGVhY2ggb2YgNjQwIHggNiBieXRlcyAqLwogI2Rl ZmluZSBEUF9EU0NfTUFYX1NNQUxMX0pPSU5FUl9SQU1fQlVGRkVSCTYxNDQwCisjZGVmaW5lIERQ X0RTQ19NSU5fU1VQUE9SVEVEX0JQQwkJOAorI2RlZmluZSBEUF9EU0NfTUFYX1NVUFBPUlRFRF9C UEMJCTEwCiAKIC8qIERQIERTQyB0aHJvdWdocHV0IHZhbHVlcyB1c2VkIGZvciBzbGljZSBjb3Vu dCBjYWxjdWxhdGlvbnMgS1BpeGVscy9zICovCiAjZGVmaW5lIERQX0RTQ19QRUFLX1BJWEVMX1JB VEUJCQkyNzIwMDAwCkBAIC0xOTI0LDYgKzE5MjYsMTYgQEAgc3RhdGljIGludCBpbnRlbF9kcF9j b21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQl9CiAJfQogCisJLyogSWYg RFNDIGlzIHN1cHBvcnRlZCwgdXNlIHRoZSBtYXggdmFsdWUgcmVwb3J0ZWQgYnkgcGFuZWwgKi8K KwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCAmJgorCSAgICBkcm1fZHBfc2lua19zdXBw b3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKSkgeworCQlicGMgPSBtaW5fdCh1OCwKKwkJCSAg ICBkcm1fZHBfZHNjX3NpbmtfbWF4X2NvbG9yX2RlcHRoKGludGVsX2RwLT5kc2NfZHBjZCksCisJ CQkgICAgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDKTsKKwkJaWYgKGJwYykKKwkJCWJwcCA9IDMg KiBicGM7CisJfQorCiAJcmV0dXJuIGJwcDsKIH0KIApAQCAtMTk4NCwxNCArMTk5NiwxMSBAQCBp bnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKIAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107CiAJCQkJ bGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9jaywKIAkJCQkJCQkJ ICAgIGxhbmVfY291bnQpOwotCi0JCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Ci0J CQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKLQkJCQkJcGlwZV9jb25m aWctPnBpcGVfYnBwID0gYnBwOwotCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtf Y2xvY2s7Ci0KKwkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7CisJCQkJ cGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOworCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr ID0gbGlua19jbG9jazsKKwkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCiAJCQkJCXJl dHVybiB0cnVlOwotCQkJCX0KIAkJCX0KIAkJfQogCX0KQEAgLTIwMjAsMTQgKzIwMjksMTEgQEAg aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCiAJCQkJbGlua19jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0ZXNbY2xvY2tdOwogCQkJ CWxpbmtfYXZhaWwgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKGxpbmtfY2xvY2ssCiAJCQkJCQkJ CSAgICBsYW5lX2NvdW50KTsKLQotCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlua19hdmFpbCkgewot CQkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Ci0JCQkJCXBpcGVfY29u ZmlnLT5waXBlX2JwcCA9IGJwcDsKLQkJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5r X2Nsb2NrOwotCisJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50OworCQkJ CXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsKKwkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9j ayA9IGxpbmtfY2xvY2s7CisJCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKQogCQkJCQly ZXR1cm4gdHJ1ZTsKLQkJCQl9CiAJCQl9CiAJCX0KIAl9CkBAIC0yMDM1LDE0ICsyMDQxLDg4IEBA IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAogCXJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNjX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJCXN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKKwkJCQkJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyAq bGltaXRzKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJ ZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5w aXBlOworCXUxNiBkc2NfbWF4X291dHB1dF9icHAgPSAwOworCXU4IGRzY19kcF9zbGljZV9jb3Vu dCA9IDA7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDEwIHx8CisJICAgICFkcm1fZHBf c2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKSkKKwkJcmV0dXJuIGZhbHNlOwor CisJLyogRFAgRFNDIG9ubHkgc3VwcG9ydGVkIG9uIFBpcGUgQiBhbmQgQyAqLworCWlmIChwaXBl ID09IFBJUEVfQSAmJiAhaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKKwkJcmV0dXJuIGZhbHNl OworCisJLyogRFNDIG5vdCBzdXBwb3J0ZWQgZm9yIERTQyBzaW5rIEJQQyA8IDggKi8KKwlpZiAo bGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQykgeworCQlEUk1f REVCVUdfS01TKCJObyBEU0Mgc3VwcG9ydCBmb3IgbGVzcyB0aGFuIDhicGNcbiIpOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKKwkJcGlw ZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAgPQorCQkJZHJtX2VkcF9kc2Nfc2lu a19vdXRwdXRfYnBwKGludGVsX2RwLT5kc2NfZHBjZCkgPj4gNDsKKwkJcGlwZV9jb25maWctPmRz Y19wYXJhbXMuc2xpY2VfY291bnQgPQorCQkJZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3Vu dChpbnRlbF9kcC0+ZHNjX2RwY2QsCisJCQkJCQkJdHJ1ZSk7CisJfSBlbHNlIHsKKwkJZHNjX21h eF9vdXRwdXRfYnBwID0KKwkJCWludGVsX2RwX2RzY19nZXRfb3V0cHV0X2JwcChwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jaywKKwkJCQkJCSAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKKwkJCQkJ CSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJCQkJICAgIGFkanVzdGVkX21vZGUt PmNydGNfaGRpc3BsYXkpOworCQlkc2NfZHBfc2xpY2VfY291bnQgPQorCQkJaW50ZWxfZHBfZHNj X2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwKKwkJCQkJCSAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jaywKKwkJCQkJCSAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7CisJCWlm ICghKGRzY19tYXhfb3V0cHV0X2JwcCAmJiBkc2NfZHBfc2xpY2VfY291bnQpKSB7CisJCQlEUk1f REVCVUdfS01TKCJDb21wcmVzc2VkIEJQUC9TbGljZSBDb3VudCBub3Qgc3VwcG9ydGVkXG4iKTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVz c2VkX2JwcCA9IGRzY19tYXhfb3V0cHV0X2JwcCA+PiA0OworCQlwaXBlX2NvbmZpZy0+ZHNjX3Bh cmFtcy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3VudDsKKwl9CisJLyoKKwkgKiBWRFND IGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9jaywgc28gaWYgcGVhayBwaXhlbCBy YXRlCisJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIENkY2xvY2sgYW5kIGlmIHNsaWNl IGNvdW50IGlzIGV2ZW4KKwkgKiB0aGVuIHdlIG5lZWQgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMu CisJICovCisJcGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gZmFsc2U7CisJaWYg KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpIHsK KwkJaWYgKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID4gMSkgeworCQkJcGlw ZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsKKwkJfSBlbHNlIHsKKwkJCURS TV9ERUJVR19LTVMoIkNhbm5vdCBzcGxpdCBzdHJlYW0gdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXNc biIpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQorCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1z LmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7CisJRFJNX0RFQlVHX0tNUygiRFAgRFNDIGNvbXB1 dGVkIHdpdGggSW5wdXQgQnBwID0gJWQgIgorCQkgICAgICAiQ29tcHJlc3NlZCBCcHAgPSAlZCBT bGljZSBDb3VudCA9ICVkXG4iLAorCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCisJCSAg ICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAorCQkgICAgICBwaXBl X2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwog c3RhdGljIGJvb2wKIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBsaW5r X2NvbmZpZ19saW1pdHMgbGltaXRzOwogCWludCBjb21tb25fbGVuOworCWJvb2wgcmV0ID0gZmFs c2U7CiAKIAljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVs X2RwLAogCQkJCQkJICAgIGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKQEAgLTIwNTYsNyArMjEz Niw5IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJbGltaXRzLm1pbl9sYW5lX2NvdW50ID0gMTsKIAlsaW1pdHMubWF4X2xhbmVf Y291bnQgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7CiAKLQlsaW1pdHMubWlu X2JwcCA9IDYgKiAzOworCWxpbWl0cy5taW5fYnBwID0gKElOVEVMX0dFTihkZXZfcHJpdikgPj0g MTAgJiYKKwkJCSAgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkp ID8KKwkJRFBfRFNDX01JTl9TVVBQT1JURURfQlBDICogMyA6IDYgKiAzOwogCWxpbWl0cy5tYXhf YnBwID0gaW50ZWxfZHBfY29tcHV0ZV9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKIAogCWlm IChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApICYmIGludGVsX2RwLT5lZHBfZHBjZFswXSA8IERQ X0VEUF8xNCkgewpAQCAtMjA4MSw3ICsyMTYzLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICAgICAgaW50ZWxfZHAtPmNv bW1vbl9yYXRlc1tsaW1pdHMubWF4X2Nsb2NrXSwKIAkJICAgICAgbGltaXRzLm1heF9icHAsIGFk anVzdGVkX21vZGUtPmNydGNfY2xvY2spOwogCi0JaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9k cCkpIHsKKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKIAkJLyoKIAkJICogT3B0aW1p emUgZm9yIGZhc3QgYW5kIG5hcnJvdy4gZURQIDEuMyBzZWN0aW9uIDMuMyBhbmQgZURQIDEuNAog CQkgKiBzZWN0aW9uIEEuMTogIkl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIG1pbmltdW0gbnVt YmVyIG9mCkBAIC0yMDkxLDI2ICsyMTczLDQ4IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAqIE5vdGUgdGhhdCB3ZSB1c2Ug dGhlIG1heCBjbG9jayBhbmQgbGFuZSBjb3VudCBmb3IgZURQIDEuMyBhbmQKIAkJICogZWFybGll ciwgYW5kIGZhc3QgdnMuIHdpZGUgaXMgaXJyZWxldmFudC4KIAkJICovCi0JCWlmICghaW50ZWxf ZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywKLQkJCQkJ CSAgICAgICAmbGltaXRzKSkKLQkJCXJldHVybiBmYWxzZTsKLQl9IGVsc2UgeworCQlyZXQgPSBp bnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAor CQkJCQkJCSZsaW1pdHMpOworCWVsc2UKIAkJLyogT3B0aW1pemUgZm9yIHNsb3cgYW5kIHdpZGUu ICovCi0JCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBw aXBlX2NvbmZpZywKLQkJCQkJCSAgICAgICAmbGltaXRzKSkKKwkJcmV0ID0gaW50ZWxfZHBfY29t cHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywKKwkJCQkJCQkmbGlt aXRzKTsKKworCS8qIGVuYWJsZSBjb21wcmVzc2lvbiBpZiB0aGUgbW9kZSBkb2Vzbid0IGZpdCBh dmFpbGFibGUgQlcgKi8KKwlpZiAoIXJldCkgeworCQlEUk1fREVCVUdfS01TKCJEUCByZXF1aXJl ZCBMaW5rIHJhdGUgJWkgZG9lcyBub3QgZml0IGF2YWlsYWJsZSAlaVxuIiwKKwkJCSAgICAgIGlu dGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkJCSAg ICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3Jh dGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5l X2NvdW50KSk7CisKKwkJaWYgKCFpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAs IHBpcGVfY29uZmlnLAorCQkJCQkJICZsaW1pdHMpKQogCQkJcmV0dXJuIGZhbHNlOwogCX0KIAot CURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAotCQkg ICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCi0J CSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CisJaWYgKHBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLmNvbXByZXNzaW9uX2VuYWJsZSkgeworCQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50 ICVkIGNsb2NrICVkIElucHV0IGJwcCAlZCBDb21wcmVzc2VkIGJwcCAlZFxuIiwKKwkJCSAgICAg IHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCSAg ICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLmNvbXByZXNzZWRfYnBwKTsKIAotCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1 aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCi0JCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQo YWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9i cHApLAotCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAotCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJCURSTV9ERUJVR19L TVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCisJCQkgICAgICBp bnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkg ICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwKKwkJCSAgICAgIGlu dGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJCQkgICAg IHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJfSBlbHNlIHsKKwkJRFJNX0RFQlVHX0tNUygi RFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCisJCQkgICAgICBwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkgICAgICBwaXBlX2Nv bmZpZy0+cGlwZV9icHApOwogCisJCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJl ZCAlaSBhdmFpbGFibGUgJWlcbiIsCisJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFk anVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2Jw cCksCisJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAorCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOworCX0KIAlyZXR1cm4g dHJ1ZTsKIH0KIApAQCAtMjE5NCw3ICsyMjk4LDkgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlpbnRlbF9jb25uX3N0YXRlLT5icm9h ZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRDsKIAl9CiAKLQlpbnRlbF9s aW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmxhbmVf Y291bnQsCisJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCisJ CQkgICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCisJCQkgICAg ICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsCiAJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jaywKIAkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJCSAgICAgICAm cGlwZV9jb25maWctPmRwX21fbiwKQEAgLTIyMDMsNyArMjMwOSw3IEBAIGludGVsX2RwX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChpbnRlbF9jb25u ZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlICE9IE5VTEwgJiYKIAkJZGV2X3ByaXYtPmRycnMu dHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQpIHsKIAkJCXBpcGVfY29uZmlnLT5oYXNfZHJy cyA9IHRydWU7Ci0JCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2Jw cCwKKwkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLAog CQkJCQkgICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsCiAJCQkJCSAgICAgICBpbnRlbF9j b25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlLT5jbG9jaywKIAkJCQkJICAgICAgIHBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwppbmRleCA4 YjcxZDY0ZWJkOWQuLmUwMmNhZWRkNDQzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBfbXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMKQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQl9CiAJfQogCi0JaW50ZWxfbGlu a19jb21wdXRlX21fbihicHAsIGxhbmVfY291bnQsCisJaW50ZWxfbGlua19jb21wdXRlX21fbihi cHAsIDAsIGxhbmVfY291bnQsCiAJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywK IAkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJCSAgICAgICAmcGlwZV9jb25m aWctPmRwX21fbiwKLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==