From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v5 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Fri, 5 Oct 2018 16:22:51 -0700 Message-ID: <20181005232306.31133-14-manasi.d.navare@intel.com> References: <20181005232306.31133-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: <20181005232306.31133-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 RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBvY3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnY5OgoqIFJlYmFzZSBvbiB0b3Agb2YgZHJtLXRpcCB0aGF0IG5v dyB1c2VzIGZhc3RfbmFycm93IGNvbmZpZwpmb3IgZWRwIChNYW5hc2kpCnY4OgoqIENoZWNrIGZv ciBEU0MgYnBjIG5vdCAwIChtYW5hc2kpCgp2NzoKKiBGaXggaW5kZW50YXRpb24gaW4gY29tcHV0 ZV9tX24gKE1hbmFzaSkKCnY2IChGcm9tIEdhdXJhdik6CiogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwg b2YgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgYW5kCmludm9rZSBpbnRlbF9kcF9jb21w dXRlX2RzY19wYXJhbXMoKSBpbiB0aGUgcGF0Y2ggd2hlcmUKaXQgaXMgZGVmaW5lZCB0byBmaXgg Y29tcGlsYXRpb24gd2FybmluZyAoR2F1cmF2KQoKdjU6CkFkZCBkcm1fZHNjX2NmZyBpbiBpbnRl bF9jcnRjX3N0YXRlIChNYW5hc2kpCgp2NDoKKiBSZWJhc2Ugb24gcmVmYWN0b3Jpbmcgb2YgaW50 ZWxfZHBfY29tcHV0ZV9jb25maWcgb24gdGlwIChNYW5hc2kpCiogQWRkIGEgY29tbWVudCB3aHkg d2UgbmVlZCB0byBjaGVjayBQU1Igd2hpbGUgZW5hYmxpbmcgRFNDIChHYXVyYXYpCgp2MzoKKiBD aGVjayBQUFIgPiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGluc3RhbmNlcyAoVmlsbGUpCgp2 MjoKKiBBZGQgaWYtZWxzZSBmb3IgZURQL0RQIChHYXVyYXYpCgpDYzogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPgpDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMjAgKysrLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAzICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAxNzAgKysrKysrKysrKysrKysrKysrKysrKy0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgfCAgIDIgKy0KIDQgZmlsZXMg Y2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAzNjQzNGM1MzU5YjEuLjRlYmY3YzgzMDg1YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNjUzMiw3ICs2NTMyLDcgQEAgc3Rh dGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsCiAKIAlwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID0gbGFuZTsKIAotCWludGVsX2xp bmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCBsYW5lLCBmZGlfZG90Y2xvY2ss CisJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIDAsIGxhbmUs IGZkaV9kb3RjbG9jaywKIAkJCSAgICAgICBsaW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9tX24s IGZhbHNlKTsKIAogCXJldCA9IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5lcyhkZXYsIGludGVsX2Ny dGMtPnBpcGUsIHBpcGVfY29uZmlnKTsKQEAgLTY3NjcsMTcgKzY3NjcsMjUgQEAgc3RhdGljIHZv aWQgY29tcHV0ZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAogfQogCiB2b2lk Ci1pbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgaW50IG5sYW5lcywK K2ludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCB1aW50MTZfdCBjb21w cmVzc2VkX2JwcCwKKwkJICAgICAgIGludCBubGFuZXMsCiAJCSAgICAgICBpbnQgcGl4ZWxfY2xv Y2ssIGludCBsaW5rX2Nsb2NrLAogCQkgICAgICAgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24s CiAJCSAgICAgICBib29sIGNvbnN0YW50X24pCiB7CiAJbV9uLT50dSA9IDY0OwogCi0JY29tcHV0 ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhlbF9jbG9jaywKLQkJICAgIGxpbmtfY2xvY2sgKiBu bGFuZXMgKiA4LAotCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCi0JCSAgICBjb25z dGFudF9uKTsKKwkvKiBGb3IgRFNDLCBEYXRhIE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNz ZWQgQlBQICovCisJaWYgKGNvbXByZXNzZWRfYnBwKQorCQljb21wdXRlX21fbihjb21wcmVzc2Vk X2JwcCAqIHBpeGVsX2Nsb2NrLAorCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAorCQkJ ICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAorCQkJICAgIGNvbnN0YW50X24pOworCWVs c2UKKwkJY29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhlbF9jbG9jaywKKwkJCSAgICBs aW5rX2Nsb2NrICogbmxhbmVzICogOCwKKwkJCSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hf biwKKwkJCSAgICBjb25zdGFudF9uKTsKIAogCWNvbXB1dGVfbV9uKHBpeGVsX2Nsb2NrLCBsaW5r X2Nsb2NrLAogCQkgICAgJm1fbi0+bGlua19tLCAmbV9uLT5saW5rX24sCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmgKaW5kZXggOWZhYzY3ZTMxMjA1Li45ZWFiYTFiY2NhZTggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKQEAgLTQwMiw3ICs0MDIsOCBAQCBzdHJ1Y3Qg aW50ZWxfbGlua19tX24gewogCSAgICAgKF9faSkrKykgXAogCQlmb3JfZWFjaF9pZihwbGFuZSkK IAotdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIGludCBubGFuZXMsCit2b2lk IGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJwcCwgdWludDE2X3QgY29tcHJlc3NlZF9icHAs CisJCQkgICAgaW50IG5sYW5lcywKIAkJCSAgICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Ns b2NrLAogCQkJICAgIHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkJICAgIGJvb2wgY29u c3RhbnRfbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCA4ZTY4OTEzNTZkNWIuLjA1MzAw ZDgyYjIwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC00Nyw2ICs0Nyw4IEBACiAKIC8q IERQIERTQyBzbWFsbCBqb2luZXIgaGFzIDIgRklGT3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICov CiAjZGVmaW5lIERQX0RTQ19NQVhfU01BTExfSk9JTkVSX1JBTV9CVUZGRVIJNjE0NDAKKyNkZWZp bmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4CisjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9S VEVEX0JQQwkJMTAKIAogLyogRFAgRFNDIHRocm91Z2hwdXQgdmFsdWVzIHVzZWQgZm9yIHNsaWNl IGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxzL3MgKi8KICNkZWZpbmUgRFBfRFNDX1BFQUtfUElY RUxfUkFURQkJCTI3MjAwMDAKQEAgLTE4OTQsNiArMTg5NiwxNiBAQCBzdGF0aWMgaW50IGludGVs X2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCX0KIAl9CiAKKwkv KiBJZiBEU0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1heCB2YWx1ZSByZXBvcnRlZCBieSBwYW5l bCAqLworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwICYmCisJICAgIGRybV9kcF9zaW5r X3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKSB7CisJCWJwYyA9IG1pbl90KHU4LAor CQkJICAgIGRybV9kcF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoaW50ZWxfZHAtPmRzY19kcGNk KSwKKwkJCSAgICBEUF9EU0NfTUFYX1NVUFBPUlRFRF9CUEMpOworCQlpZiAoYnBjKQorCQkJYnBw ID0gMyAqIGJwYzsKKwl9CisKIAlyZXR1cm4gYnBwOwogfQogCkBAIC0xOTU0LDE0ICsxOTY2LDEx IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAogCQkJCWxpbmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsK IAkJCQlsaW5rX2F2YWlsID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShsaW5rX2Nsb2NrLAogCQkJ CQkJCQkgICAgbGFuZV9jb3VudCk7Ci0KLQkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwp IHsKLQkJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50OwotCQkJCQlwaXBl X2NvbmZpZy0+cGlwZV9icHAgPSBicHA7Ci0JCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0g bGlua19jbG9jazsKLQorCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsK KwkJCQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBicHA7CisJCQkJcGlwZV9jb25maWctPnBvcnRf Y2xvY2sgPSBsaW5rX2Nsb2NrOworCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlua19hdmFpbCkKIAkJ CQkJcmV0dXJuIHRydWU7Ci0JCQkJfQogCQkJfQogCQl9CiAJfQpAQCAtMTk5MCwxNCArMTk5OSwx MSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3Qoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKIAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107 CiAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9jaywKIAkJ CQkJCQkJICAgIGxhbmVfY291bnQpOwotCi0JCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWls KSB7Ci0JCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKLQkJCQkJcGlw ZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwotCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9 IGxpbmtfY2xvY2s7Ci0KKwkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7 CisJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOworCQkJCXBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrID0gbGlua19jbG9jazsKKwkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCiAJ CQkJCXJldHVybiB0cnVlOwotCQkJCX0KIAkJCX0KIAkJfQogCX0KQEAgLTIwMDUsMTQgKzIwMTEs ODggQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2Nf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAorCQkJCQlzdHJ1Y3QgbGlua19jb25maWdfbGlt aXRzICpsaW1pdHMpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0 YyktPnBpcGU7CisJdTE2IGRzY19tYXhfb3V0cHV0X2JwcCA9IDA7CisJdTggZHNjX2RwX3NsaWNl X2NvdW50ID0gMDsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAgfHwKKwkgICAgIWRy bV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKQorCQlyZXR1cm4gZmFs c2U7CisKKwkvKiBEUCBEU0Mgb25seSBzdXBwb3J0ZWQgb24gUGlwZSBCIGFuZCBDICovCisJaWYg KHBpcGUgPT0gUElQRV9BICYmICFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQorCQlyZXR1cm4g ZmFsc2U7CisKKwkvKiBEU0Mgbm90IHN1cHBvcnRlZCBmb3IgRFNDIHNpbmsgQlBDIDwgOCAqLwor CWlmIChsaW1pdHMtPm1heF9icHAgPCAzICogRFBfRFNDX01JTl9TVVBQT1JURURfQlBDKSB7CisJ CURSTV9ERUJVR19LTVMoIk5vIERTQyBzdXBwb3J0IGZvciBsZXNzIHRoYW4gOGJwY1xuIik7CisJ CXJldHVybiBmYWxzZTsKKwl9CisKKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewor CQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCA9CisJCQlkcm1fZWRwX2Rz Y19zaW5rX291dHB1dF9icHAoaW50ZWxfZHAtPmRzY19kcGNkKSA+PiA0OworCQlwaXBlX2NvbmZp Zy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9CisJCQlkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNl X2NvdW50KGludGVsX2RwLT5kc2NfZHBjZCwKKwkJCQkJCQl0cnVlKTsKKwl9IGVsc2UgeworCQlk c2NfbWF4X291dHB1dF9icHAgPQorCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrLAorCQkJCQkJICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAor CQkJCQkJICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgYWRqdXN0ZWRf bW9kZS0+Y3J0Y19oZGlzcGxheSk7CisJCWRzY19kcF9zbGljZV9jb3VudCA9CisJCQlpbnRlbF9k cF9kc2NfZ2V0X3NsaWNlX2NvdW50KGludGVsX2RwLAorCQkJCQkJICAgICBhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLAorCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsK KwkJaWYgKCEoZHNjX21heF9vdXRwdXRfYnBwICYmIGRzY19kcF9zbGljZV9jb3VudCkpIHsKKwkJ CURSTV9ERUJVR19LTVMoIkNvbXByZXNzZWQgQlBQL1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRc biIpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNv bXByZXNzZWRfYnBwID0gZHNjX21heF9vdXRwdXRfYnBwID4+IDQ7CisJCXBpcGVfY29uZmlnLT5k c2NfcGFyYW1zLnNsaWNlX2NvdW50ID0gZHNjX2RwX3NsaWNlX2NvdW50OworCX0KKwkvKgorCSAq IFZEU0MgZW5naW5lIG9wZXJhdGVzIGF0IDEgUGl4ZWwgcGVyIGNsb2NrLCBzbyBpZiBwZWFrIHBp eGVsIHJhdGUKKwkgKiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gQ2RjbG9jayBhbmQgaWYg c2xpY2UgY291bnQgaXMgZXZlbgorCSAqIHRoZW4gd2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3Rh bmNlcy4KKwkgKi8KKwlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5kc2Nfc3BsaXQgPSBmYWxzZTsK KwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJl cSkgeworCQlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPiAxKSB7CisJ CQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5kc2Nfc3BsaXQgPSB0cnVlOworCQl9IGVsc2Ugewor CQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMiBWRFNDIGluc3Rh bmNlc1xuIik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJcGlwZV9jb25maWctPmRzY19w YXJhbXMuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKKwlEUk1fREVCVUdfS01TKCJEUCBEU0Mg Y29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCisJCSAgICAgICJDb21wcmVzc2VkIEJwcCA9 ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsCisJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwK KwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCisJCSAgICAg IHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50KTsKKworCXJldHVybiB0cnVlOwor fQorCiBzdGF0aWMgYm9vbAogaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0 IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7CiAJaW50IGNvbW1vbl9sZW47CisJYm9vbCByZXQg PSBmYWxzZTsKIAogCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQo aW50ZWxfZHAsCiAJCQkJCQkgICAgaW50ZWxfZHAtPm1heF9saW5rX3JhdGUpOwpAQCAtMjAyNiw3 ICsyMTA2LDkgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAlsaW1pdHMubWluX2xhbmVfY291bnQgPSAxOwogCWxpbWl0cy5tYXhf bGFuZV9jb3VudCA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKIAotCWxpbWl0 cy5taW5fYnBwID0gNiAqIDM7CisJbGltaXRzLm1pbl9icHAgPSAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMCAmJgorCQkJICBkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19k cGNkKSkgPworCQlEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMgKiAzIDogNiAqIDM7CiAJbGltaXRz Lm1heF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRlbF9kcCwgcGlwZV9jb25maWcpOwog CiAJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkgJiYgaW50ZWxfZHAtPmVkcF9kcGNkWzBd IDwgRFBfRURQXzE0KSB7CkBAIC0yMDUxLDcgKzIxMzMsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xp bmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkgICAgICBpbnRlbF9k cC0+Y29tbW9uX3JhdGVzW2xpbWl0cy5tYXhfY2xvY2tdLAogCQkgICAgICBsaW1pdHMubWF4X2Jw cCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7CiAKLQlpZiAoaW50ZWxfZHBfaXNfZWRwKGlu dGVsX2RwKSkgeworCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQogCQkvKgogCQkgKiBP cHRpbWl6ZSBmb3IgZmFzdCBhbmQgbmFycm93LiBlRFAgMS4zIHNlY3Rpb24gMy4zIGFuZCBlRFAg MS40CiAJCSAqIHNlY3Rpb24gQS4xOiAiSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgbWluaW11 bSBudW1iZXIgb2YKQEAgLTIwNjEsMjYgKzIxNDMsNDggQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5r X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICogTm90ZSB0aGF0IHdl IHVzZSB0aGUgbWF4IGNsb2NrIGFuZCBsYW5lIGNvdW50IGZvciBlRFAgMS4zIGFuZAogCQkgKiBl YXJsaWVyLCBhbmQgZmFzdCB2cy4gd2lkZSBpcyBpcnJlbGV2YW50LgogCQkgKi8KLQkJaWYgKCFp bnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAot CQkJCQkJICAgICAgICZsaW1pdHMpKQotCQkJcmV0dXJuIGZhbHNlOwotCX0gZWxzZSB7CisJCXJl dCA9IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25m aWcsCisJCQkJCQkJJmxpbWl0cyk7CisJZWxzZQogCQkvKiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQg d2lkZS4gKi8KLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxf ZHAsIHBpcGVfY29uZmlnLAotCQkJCQkJICAgICAgICZsaW1pdHMpKQorCQlyZXQgPSBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAorCQkJCQkJ CSZsaW1pdHMpOworCisJLyogZW5hYmxlIGNvbXByZXNzaW9uIGlmIHRoZSBtb2RlIGRvZXNuJ3Qg Zml0IGF2YWlsYWJsZSBCVyAqLworCWlmICghcmV0KSB7CisJCURSTV9ERUJVR19LTVMoIkRQIHJl cXVpcmVkIExpbmsgcmF0ZSAlaSBkb2VzIG5vdCBmaXQgYXZhaWxhYmxlICVpXG4iLAorCQkJICAg ICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQkJ CQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAorCQkJICAgICAgaW50ZWxfZHBfbWF4X2Rh dGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCQkJCSAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQpKTsKKworCQlpZiAoIWludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhpbnRl bF9kcCwgcGlwZV9jb25maWcsCisJCQkJCQkgJmxpbWl0cykpCiAJCQlyZXR1cm4gZmFsc2U7CiAJ fQogCi0JRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIs Ci0JCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9j aywKLQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKKwlpZiAocGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlKSB7CisJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUg Y291bnQgJWQgY2xvY2sgJWQgSW5wdXQgYnBwICVkIENvbXByZXNzZWQgYnBwICVkXG4iLAorCQkJ ICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAor CQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkJICAgICAgcGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3NlZF9icHApOwogCi0JRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRl IHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKLQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1 aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAotCQkJCQkgICAgIHBpcGVfY29uZmlnLT5w aXBlX2JwcCksCi0JCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBv cnRfY2xvY2ssCi0JCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKKwkJRFJNX0RF QlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKKwkJCSAg ICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJ CQkJCSAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHApLAorCQkJICAg ICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCQkJ CSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKKwl9IGVsc2UgeworCQlEUk1fREVCVUdf S01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKKwkJCSAgICAgIHBpcGVf Y29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCSAgICAgIHBp cGVfY29uZmlnLT5waXBlX2JwcCk7CiAKKwkJRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJl cXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWly ZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkJCSAgICAgcGlwZV9jb25maWctPnBp cGVfYnBwKSwKKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBv cnRfY2xvY2ssCisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJfQogCXJl dHVybiB0cnVlOwogfQogCkBAIC0yMTU5LDcgKzIyNjMsOSBAQCBpbnRlbF9kcF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWludGVsX2Nvbm5fc3RhdGUt PmJyb2FkY2FzdF9yZ2IgPT0gSU5URUxfQlJPQURDQVNUX1JHQl9MSU1JVEVEOwogCX0KIAotCWlu dGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCBwaXBlX2NvbmZpZy0+ bGFuZV9jb3VudCwKKwlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2Jw cCwKKwkJCSAgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwKKwkJ CSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKIAkJCSAgICAgICBhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLAogCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAogCQkJICAg ICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLApAQCAtMjE2OCw3ICsyMjc0LDcgQEAgaW50ZWxfZHBf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKGludGVs X2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgogCQlkZXZfcHJpdi0+ ZHJycy50eXBlID09IFNFQU1MRVNTX0RSUlNfU1VQUE9SVCkgewogCQkJcGlwZV9jb25maWctPmhh c19kcnJzID0gdHJ1ZTsKLQkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBp cGVfYnBwLAorCQkJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAs IDAsCiAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKIAkJCQkJICAgICAgIGlu dGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUtPmNsb2NrLAogCQkJCQkgICAgICAg cGlwZV9jb25maWctPnBvcnRfY2xvY2ssCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCmlu ZGV4IDQzZGIyZTlhYzU3NS4uNTJhMzIxN2YxM2M1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9tc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cF9tc3QuYwpAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXJldHVybiBmYWxzZTsK IAl9CiAKLQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGJwcCwgbGFuZV9jb3VudCwKKwlpbnRlbF9s aW5rX2NvbXB1dGVfbV9uKGJwcCwgMCwgbGFuZV9jb3VudCwKIAkJCSAgICAgICBhZGp1c3RlZF9t b2RlLT5jcnRjX2Nsb2NrLAogCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAogCQkJ ICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAotLSAKMi4xOC4wCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK