From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v14 02/17] drm/i915/dp: Compute DSC pipe config in atomic check Date: Wed, 28 Nov 2018 13:36:21 -0800 Message-ID: <20181128213621.21391-1-manasi.d.navare@intel.com> References: <20181128202628.20238-2-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 36FE06E3DA for ; Wed, 28 Nov 2018 21:33:21 +0000 (UTC) In-Reply-To: <20181128202628.20238-2-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 RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBjb3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnYxNToKKiBSZWJhc2Ugb3ZlciBkcm0tdGlwCnYxNDoKUmVtb3Zl IGxlZnRvdmVycywgdXNlIGRzY19icGMsIHJlZmluZSBkc2NfY29tcHV0ZV9jb25maWcgKFZpbGxl KQp2MTM6CiogQ29tcHV0ZSBEU0MgYnBjIG9ubHkgd2hlbiBEU0MgaXMgcmVxIHRvIGJlIGVuYWJs ZWQgKFZpbGxlKQp2MTI6CiogT3ZlcnJpZGUgYnBwIHdpdGggZHNjIGRwY2QgY29sb3IgZGVwdGgg KE1hbmFzaSkKdjExOgoqIENvbnN0IGNydGNfc3RhdGUsIHJlamVjdCBEU0Mgb24gRFAgd2l0aG91 dCBGRUMgKFZpbGxlKQoqIERvbnQgc2V0IGRzY19zcGxpdCB0byBmYWxzZSAoVmlsbGUpCnYxMDoK KiBBZGQgYSBoZWxwZXIgZm9yIGRwX2RzYyBzdXBwb3J0IChWaWxsZSkKKiBTZXQgcGlwZV9jb25m aWcgdG8gbWF4IGJwcCwgbGluayBwYXJhbXMgZm9yIERTQyBmb3Igbm93IChWaWxsZSkKKiBDb21w dXRlIGJwcCAtIHVzZSBkcCBkc2Mgc3VwcG9ydCBoZWxwZXIgKFZpbGxlKQp2OToKKiBSZWJhc2Ug b24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cgdXNlcyBmYXN0X25hcnJvdyBjb25maWcKZm9yIGVk cCAoTWFuYXNpKQp2ODoKKiBDaGVjayBmb3IgRFNDIGJwYyBub3QgMCAobWFuYXNpKQoKdjc6Ciog Rml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5hc2kpCgp2NiAoRnJvbSBHYXVyYXYp OgoqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygp IGFuZAppbnZva2UgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgaW4gdGhlIHBhdGNoIHdo ZXJlCml0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgKEdhdXJhdikKCnY1 OgpBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0Y19zdGF0ZSAoTWFuYXNpKQoKdjQ6CiogUmVi YXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFu YXNpKQoqIEFkZCBhIGNvbW1lbnQgd2h5IHdlIG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJs aW5nIERTQyAoR2F1cmF2KQoKdjM6CiogQ2hlY2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIg VkRTQyBpbnN0YW5jZXMgKFZpbGxlKQoKdjI6CiogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1 cmF2KQoKQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBW aWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFudXNoYSBT cml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KQ2M6IEdhdXJhdiBLIFNpbmdoIDxn YXVyYXYuay5zaW5naEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1h bmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFu dXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqYWxhIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggfCAg IDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE5MiArKysrKysr KysrKysrKysrKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKyks IDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBk MDdmYTQ0NTYxNTAuLjE4YWI3MTNmOWE2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwpAQCAtNjczNiw3ICs2NzM2LDcgQEAgc3RhdGljIHZvaWQgY29tcHV0ZV9tX24odW5zaWdu ZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAogfQogCiB2b2lkCi1pbnRlbF9saW5rX2NvbXB1dGVf bV9uKGludCBiaXRzX3Blcl9waXhlbCwgaW50IG5sYW5lcywKK2ludGVsX2xpbmtfY29tcHV0ZV9t X24odTE2IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAogCQkgICAgICAgaW50IHBpeGVsX2Ns b2NrLCBpbnQgbGlua19jbG9jaywKIAkJICAgICAgIHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9u LAogCQkgICAgICAgYm9vbCBjb25zdGFudF9uKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5oCmluZGV4IGE3Y2ViOGY5MDRmNy4uM2VjNzA0YzkzZDZlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5oCkBAIC00NDAsMTAgKzQ0MCw5IEBAIHN0cnVjdCBpbnRlbF9saW5rX21f biB7CiAJICAgICAoX19pKSsrKSBcCiAJCWZvcl9lYWNoX2lmKGNydGMpCiAKLXZvaWQgaW50ZWxf bGlua19jb21wdXRlX21fbihpbnQgYnBwLCBpbnQgbmxhbmVzLAordm9pZCBpbnRlbF9saW5rX2Nv bXB1dGVfbV9uKHUxNiBicHAsIGludCBubGFuZXMsCiAJCQkgICAgaW50IHBpeGVsX2Nsb2NrLCBp bnQgbGlua19jbG9jaywKIAkJCSAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKIAkJCSAg ICBib29sIGNvbnN0YW50X24pOwotCiBib29sIGlzX2Njc19tb2RpZmllcih1NjQgbW9kaWZpZXIp OwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCA3MGFlM2Q1NzMxNmIuLmEyNzgw NzMzNzY4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC00Nyw2ICs0Nyw4IEBACiAKIC8q IERQIERTQyBzbWFsbCBqb2luZXIgaGFzIDIgRklGT3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICov CiAjZGVmaW5lIERQX0RTQ19NQVhfU01BTExfSk9JTkVSX1JBTV9CVUZGRVIJNjE0NDAKKyNkZWZp bmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4CisjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9S VEVEX0JQQwkJMTAKIAogLyogRFAgRFNDIHRocm91Z2hwdXQgdmFsdWVzIHVzZWQgZm9yIHNsaWNl IGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxzL3MgKi8KICNkZWZpbmUgRFBfRFNDX1BFQUtfUElY RUxfUkFURQkJCTI3MjAwMDAKQEAgLTE3MDgsNiArMTcxMCwyNiBAQCBzdHJ1Y3QgbGlua19jb25m aWdfbGltaXRzIHsKIAlpbnQgbWluX2JwcCwgbWF4X2JwcDsKIH07CiAKK3N0YXRpYyBib29sIGlu dGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJ CQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKK3sKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKKwor CS8qIEZJWE1FOiBGRUMgbmVlZGVkIGZvciBleHRlcm5hbCBEUCB1bnRpbCB0aGVuIHJlamVjdCBE U0Mgb24gRFAgKi8KKwlpZiAoIWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCisJCXJldHVybiBm YWxzZTsKKworCXJldHVybiBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwICYmCisJCXBpcGVfY29u ZmlnLT5jcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVSX0E7Cit9CisKK3N0YXRpYyBib29sIGlu dGVsX2RwX3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJCSAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQoreworCXJldHVybiBpbnRl bF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZpZykgJiYKKwkJZHJt X2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCk7Cit9CisKIHN0YXRpYyBp bnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CkBAIC0xODQyLDE0ICsxODY0 LDExNSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3Qoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbnQgaW50ZWxfZHBfZHNj X2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHU4IGRzY19tYXhfYnBjKQor eworCWludCBpLCBudW1fYnBjOworCXU4IGRzY19icGNbM10gPSB7MH07CisKKwludW1fYnBjID0g ZHJtX2RwX2RzY19zaW5rX3N1cHBvcnRlZF9pbnB1dF9icGNzKGludGVsX2RwLT5kc2NfZHBjZCwK KwkJCQkJCSAgICAgICBkc2NfYnBjKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2JwYzsgaSsrKSB7 CisJCWlmIChkc2NfbWF4X2JwYyA+PSBkc2NfYnBjW2ldKQorCQkJcmV0dXJuIGRzY19icGNbaV0g KiAzOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSwKKwkJCQkJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyAqbGltaXRzKQor eworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJdTggZHNjX21h eF9icGM7CisJaW50IHBpcGVfYnBwOworCisJaWYgKCFpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50 ZWxfZHAsIHBpcGVfY29uZmlnKSkKKwkJcmV0dXJuIGZhbHNlOworCisJZHNjX21heF9icGMgPSBt aW5fdCh1OCwgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDLAorCQkJICAgIGNvbm5fc3RhdGUtPm1h eF9yZXF1ZXN0ZWRfYnBjKTsKKworCXBpcGVfYnBwID0gaW50ZWxfZHBfZHNjX2NvbXB1dGVfYnBw KGludGVsX2RwLCBkc2NfbWF4X2JwYyk7CisJaWYgKHBpcGVfYnBwIDwgRFBfRFNDX01JTl9TVVBQ T1JURURfQlBDICogMykgeworCQlEUk1fREVCVUdfS01TKCJObyBEU0Mgc3VwcG9ydCBmb3IgbGVz cyB0aGFuIDhicGNcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBGb3Igbm93 IGVuYWJsZSBEU0MgZm9yIG1heCBicHAsIG1heCBsaW5rIHJhdGUsIG1heCBsYW5lIGNvdW50Lgor CSAqIE9wdGltaXplIHRoaXMgbGF0ZXIgZm9yIHRoZSBtaW5pbXVtIHBvc3NpYmxlIGxpbmsgcmF0 ZS9sYW5lIGNvdW50CisJICogd2l0aCBEU0MgZW5hYmxlZCBmb3IgdGhlIHJlcXVlc3RlZCBtb2Rl LgorCSAqLworCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IHBpcGVfYnBwOworCXBpcGVfY29uZmln LT5wb3J0X2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tsaW1pdHMtPm1heF9jbG9ja107 CisJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsaW1pdHMtPm1heF9sYW5lX2NvdW50OworCisJ aWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKKwkJcGlwZV9jb25maWctPmRzY19wYXJh bXMuY29tcHJlc3NlZF9icHAgPQorCQkJbWluX3QodTE2LCBkcm1fZWRwX2RzY19zaW5rX291dHB1 dF9icHAoaW50ZWxfZHAtPmRzY19kcGNkKSA+PiA0LAorCQkJICAgICAgcGlwZV9jb25maWctPnBp cGVfYnBwKTsKKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPQorCQkJZHJt X2RwX2RzY19zaW5rX21heF9zbGljZV9jb3VudChpbnRlbF9kcC0+ZHNjX2RwY2QsCisJCQkJCQkJ dHJ1ZSk7CisJfSBlbHNlIHsKKwkJdTE2IGRzY19tYXhfb3V0cHV0X2JwcDsKKwkJdTggZHNjX2Rw X3NsaWNlX2NvdW50OworCisJCWRzY19tYXhfb3V0cHV0X2JwcCA9CisJCQlpbnRlbF9kcF9kc2Nf Z2V0X291dHB1dF9icHAocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJCQkgICAgcGlwZV9j b25maWctPmxhbmVfY291bnQsCisJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywK KwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKKwkJZHNjX2RwX3NsaWNl X2NvdW50ID0KKwkJCWludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoaW50ZWxfZHAsCisJCQkJ CQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgIGFkanVzdGVkX21v ZGUtPmNydGNfaGRpc3BsYXkpOworCQlpZiAoIWRzY19tYXhfb3V0cHV0X2JwcCB8fCAhZHNjX2Rw X3NsaWNlX2NvdW50KSB7CisJCQlEUk1fREVCVUdfS01TKCJDb21wcmVzc2VkIEJQUC9TbGljZSBD b3VudCBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlwaXBlX2Nv bmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCA9IG1pbl90KHUxNiwKKwkJCQkJCQkgICAg ICAgZHNjX21heF9vdXRwdXRfYnBwID4+IDQsCisJCQkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5w aXBlX2JwcCk7CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID0gZHNjX2Rw X3NsaWNlX2NvdW50OworCX0KKwkvKgorCSAqIFZEU0MgZW5naW5lIG9wZXJhdGVzIGF0IDEgUGl4 ZWwgcGVyIGNsb2NrLCBzbyBpZiBwZWFrIHBpeGVsIHJhdGUKKwkgKiBpcyBncmVhdGVyIHRoYW4g dGhlIG1heGltdW0gQ2RjbG9jayBhbmQgaWYgc2xpY2UgY291bnQgaXMgZXZlbgorCSAqIHRoZW4g d2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3RhbmNlcy4KKwkgKi8KKwlpZiAoYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgeworCQlpZiAocGlwZV9j b25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPiAxKSB7CisJCQlwaXBlX2NvbmZpZy0+ZHNj X3BhcmFtcy5kc2Nfc3BsaXQgPSB0cnVlOworCQl9IGVsc2UgeworCQkJRFJNX0RFQlVHX0tNUygi Q2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMiBWRFNDIGluc3RhbmNlc1xuIik7CisJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKwl9CisJcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25f ZW5hYmxlID0gdHJ1ZTsKKwlEUk1fREVCVUdfS01TKCJEUCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1 dCBCcHAgPSAlZCAiCisJCSAgICAgICJDb21wcmVzc2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0g JWRcbiIsCisJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJICAgICAgcGlwZV9jb25m aWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCisJCSAgICAgIHBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLnNsaWNlX2NvdW50KTsKKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbAog aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKLQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQorCQkJICAg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCisJCQkgICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFz ZSk7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7CiAJaW50IGNvbW1vbl9sZW47 CisJYm9vbCByZXQ7CiAKIAljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xp bWl0KGludGVsX2RwLAogCQkJCQkJICAgIGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKQEAgLTE4 ODgsNyArMjAxMSw3IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCSAgICAgIGludGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRz Lm1heF9jbG9ja10sCiAJCSAgICAgIGxpbWl0cy5tYXhfYnBwLCBhZGp1c3RlZF9tb2RlLT5jcnRj X2Nsb2NrKTsKIAotCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7CisJaWYgKGludGVs X2RwX2lzX2VkcChpbnRlbF9kcCkpCiAJCS8qCiAJCSAqIE9wdGltaXplIGZvciBmYXN0IGFuZCBu YXJyb3cuIGVEUCAxLjMgc2VjdGlvbiAzLjMgYW5kIGVEUCAxLjQKIAkJICogc2VjdGlvbiBBLjE6 ICJJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBtaW5pbXVtIG51bWJlciBvZgpAQCAtMTg5OCwy NiArMjAyMSw0MiBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkgKiBOb3RlIHRoYXQgd2UgdXNlIHRoZSBtYXggY2xvY2sgYW5k IGxhbmUgY291bnQgZm9yIGVEUCAxLjMgYW5kCiAJCSAqIGVhcmxpZXIsIGFuZCBmYXN0IHZzLiB3 aWRlIGlzIGlycmVsZXZhbnQuCiAJCSAqLwotCQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19j b25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCi0JCQkJCQkgICAgICAgJmxpbWl0cykp Ci0JCQlyZXR1cm4gZmFsc2U7Ci0JfSBlbHNlIHsKKwkJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9s aW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywKKwkJCQkJCQkmbGltaXRzKTsK KwllbHNlCiAJCS8qIE9wdGltaXplIGZvciBzbG93IGFuZCB3aWRlLiAqLwotCQlpZiAoIWludGVs X2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCi0JCQkJ CQkgICAgICAgJmxpbWl0cykpCisJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdf d2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCisJCQkJCQkJJmxpbWl0cyk7CisKKwkvKiBlbmFi bGUgY29tcHJlc3Npb24gaWYgdGhlIG1vZGUgZG9lc24ndCBmaXQgYXZhaWxhYmxlIEJXICovCisJ aWYgKCFyZXQpIHsKKwkJaWYgKCFpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAs IHBpcGVfY29uZmlnLAorCQkJCQkJIGNvbm5fc3RhdGUsICZsaW1pdHMpKQogCQkJcmV0dXJuIGZh bHNlOwogCX0KIAotCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBw ICVkXG4iLAotCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBv cnRfY2xvY2ssCi0JCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CisJaWYgKHBpcGVfY29u ZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSkgeworCQlEUk1fREVCVUdfS01TKCJE UCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIElucHV0IGJwcCAlZCBDb21wcmVzc2VkIGJwcCAlZFxu IiwKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jaywKKwkJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJCSAgICAgIHBpcGVfY29u ZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKTsKIAotCURSTV9ERUJVR19LTVMoIkRQIGxp bmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCi0JCSAgICAgIGludGVsX2RwX2xp bmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKLQkJCQkJICAgICBwaXBlX2Nv bmZpZy0+cGlwZV9icHApLAotCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29u ZmlnLT5wb3J0X2Nsb2NrLAotCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJ CURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIs CisJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xv Y2ssCisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwK KwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ss CisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJfSBlbHNlIHsKKwkJRFJN X0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCisJCQkgICAg ICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkg ICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwogCisJCURSTV9ERUJVR19LTVMoIkRQIGxpbmsg cmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCisJCQkgICAgICBpbnRlbF9kcF9saW5r X3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgIHBpcGVfY29u ZmlnLT5waXBlX2JwcCksCisJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29u ZmlnLT5wb3J0X2Nsb2NrLAorCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwor CX0KIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTk4Myw3ICsyMTIyLDcgQEAgaW50ZWxfZHBfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKGFkanVzdGVk X21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspCiAJCXJldHVybiBmYWxzZTsKIAot CWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZykp CisJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmln LCBjb25uX3N0YXRlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKGludGVsX2Nvbm5fc3RhdGUt PmJyb2FkY2FzdF9yZ2IgPT0gSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPKSB7CkBAIC0yMDAxLDEx ICsyMTQwLDIwIEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9C Uk9BRENBU1RfUkdCX0xJTUlURUQ7CiAJfQogCi0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBl X2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAotCQkJICAgICAgIGFk anVzdGVkX21vZGUtPmNydGNfY2xvY2ssCi0JCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xv Y2ssCi0JCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCi0JCQkgICAgICAgY29uc3RhbnRf bik7CisJaWYgKCFwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUpCisJ CWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkJCSAgICAg ICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKKwkJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jaywKKwkJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCisJCQkJICAgICAg ICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAorCQkJCSAgICAgICBjb25zdGFudF9uKTsKKwllbHNlCisJ CWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Np b25fZW5hYmxlLAorCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKKwkJCQkgICAg ICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkgICAgICAgcGlwZV9jb25maWctPnBv cnRfY2xvY2ssCisJCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAorCQkJCSAgICAgICBj b25zdGFudF9uKTsKIAogCWlmIChpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2Rl ICE9IE5VTEwgJiYKIAkJZGV2X3ByaXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBP UlQpIHsKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==