From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v8 07/19] drm/i915/dp: Compute DSC pipe config in atomic check Date: Fri, 2 Nov 2018 14:31:26 -0700 Message-ID: <20181102213138.301-8-manasi.d.navare@intel.com> References: <20181102213138.301-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: <20181102213138.301-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: intel-gfx@lists.freedesktop.org RFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBjb3VudCBh bmQKZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFy YW1ldGVycwphcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxl IGxpbmsgcGFyYW1ldGVycwpkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMg Y2hlY2sgcGhhc2UuClRoZXNlIHZhbHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRl IHRoZSByZW1haW5pbmcgRFNDCmFuZCBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KCnYxMToKKiBDb25zdCBjcnRjX3N0YXRlLCByZWplY3QgRFNDIG9u IERQIHdpdGhvdXQgRkVDIChWaWxsZSkKKiBEb250IHNldCBkc2Nfc3BsaXQgdG8gZmFsc2UgKFZp bGxlKQp2MTA6CiogQWRkIGEgaGVscGVyIGZvciBkcF9kc2Mgc3VwcG9ydCAoVmlsbGUpCiogU2V0 IHBpcGVfY29uZmlnIHRvIG1heCBicHAsIGxpbmsgcGFyYW1zIGZvciBEU0MgZm9yIG5vdyAoVmls bGUpCiogQ29tcHV0ZSBicHAgLSB1c2UgZHAgZHNjIHN1cHBvcnQgaGVscGVyIChWaWxsZSkKdjk6 CiogUmViYXNlIG9uIHRvcCBvZiBkcm0tdGlwIHRoYXQgbm93IHVzZXMgZmFzdF9uYXJyb3cgY29u ZmlnCmZvciBlZHAgKE1hbmFzaSkKdjg6CiogQ2hlY2sgZm9yIERTQyBicGMgbm90IDAgKG1hbmFz aSkKCnY3OgoqIEZpeCBpbmRlbnRhdGlvbiBpbiBjb21wdXRlX21fbiAoTWFuYXNpKQoKdjYgKEZy b20gR2F1cmF2KToKKiBSZW1vdmUgZnVuY3Rpb24gY2FsbCBvZiBpbnRlbF9kcF9jb21wdXRlX2Rz Y19wYXJhbXMoKSBhbmQKaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGluIHRo ZSBwYXRjaCB3aGVyZQppdCBpcyBkZWZpbmVkIHRvIGZpeCBjb21waWxhdGlvbiB3YXJuaW5nIChH YXVyYXYpCgp2NToKQWRkIGRybV9kc2NfY2ZnIGluIGludGVsX2NydGNfc3RhdGUgKE1hbmFzaSkK CnY0OgoqIFJlYmFzZSBvbiByZWZhY3RvcmluZyBvZiBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyBv biB0aXAgKE1hbmFzaSkKKiBBZGQgYSBjb21tZW50IHdoeSB3ZSBuZWVkIHRvIGNoZWNrIFBTUiB3 aGlsZSBlbmFibGluZyBEU0MgKEdhdXJhdikKCnYzOgoqIENoZWNrIFBQUiA+IG1heF9jZGNsb2Nr IHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzIChWaWxsZSkKCnYyOgoqIEFkZCBpZi1lbHNlIGZvciBl RFAvRFAgKEdhdXJhdikKCkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwu Y29tPgpDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNj OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+CkNjOiBHYXVyYXYg SyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYW5hc2kg TmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQW51c2hhIFNy aXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgpBY2tlZC1ieTogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAgMjAgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5oIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAx NjcgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcF9tc3QuYyAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTY2IGluc2VydGlvbnMoKyks IDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBi MjE5ZDU4NTgxNjAuLjQ3N2U1M2MzNzM1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwpAQCAtNjQ0Miw3ICs2NDQyLDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAKIAlwaXBlX2NvbmZpZy0+ ZmRpX2xhbmVzID0gbGFuZTsKIAotCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWct PnBpcGVfYnBwLCBsYW5lLCBmZGlfZG90Y2xvY2ssCisJaW50ZWxfbGlua19jb21wdXRlX21fbihw aXBlX2NvbmZpZy0+cGlwZV9icHAsIDAsIGxhbmUsIGZkaV9kb3RjbG9jaywKIAkJCSAgICAgICBs aW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9tX24sIGZhbHNlKTsKIAogCXJldCA9IGlyb25sYWtl X2NoZWNrX2ZkaV9sYW5lcyhkZXYsIGludGVsX2NydGMtPnBpcGUsIHBpcGVfY29uZmlnKTsKQEAg LTY2NzksMTcgKzY2NzksMjUgQEAgc3RhdGljIHZvaWQgY29tcHV0ZV9tX24odW5zaWduZWQgaW50 IG0sIHVuc2lnbmVkIGludCBuLAogfQogCiB2b2lkCi1pbnRlbF9saW5rX2NvbXB1dGVfbV9uKGlu dCBiaXRzX3Blcl9waXhlbCwgaW50IG5sYW5lcywKK2ludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50 IGJpdHNfcGVyX3BpeGVsLCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKKwkJICAgICAgIGludCBu bGFuZXMsCiAJCSAgICAgICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAogCQkgICAg ICAgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCiAJCSAgICAgICBib29sIGNvbnN0YW50X24p CiB7CiAJbV9uLT50dSA9IDY0OwogCi0JY29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhl bF9jbG9jaywKLQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAotCQkgICAgJm1fbi0+Z21j aF9tLCAmbV9uLT5nbWNoX24sCi0JCSAgICBjb25zdGFudF9uKTsKKwkvKiBGb3IgRFNDLCBEYXRh IE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNzZWQgQlBQICovCisJaWYgKGNvbXByZXNzZWRf YnBwKQorCQljb21wdXRlX21fbihjb21wcmVzc2VkX2JwcCAqIHBpeGVsX2Nsb2NrLAorCQkJICAg IGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAorCQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21j aF9uLAorCQkJICAgIGNvbnN0YW50X24pOworCWVsc2UKKwkJY29tcHV0ZV9tX24oYml0c19wZXJf cGl4ZWwgKiBwaXhlbF9jbG9jaywKKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKKwkJ CSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKKwkJCSAgICBjb25zdGFudF9uKTsKIAog CWNvbXB1dGVfbV9uKHBpeGVsX2Nsb2NrLCBsaW5rX2Nsb2NrLAogCQkgICAgJm1fbi0+bGlua19t LCAmbV9uLT5saW5rX24sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKaW5kZXggNWQ1 MGRlY2JjYmI1Li5iMGIyM2UxZTkzOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmgKQEAgLTQwNyw3ICs0MDcsOCBAQCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gewogCSAgICAgKF9f aSkrKykgXAogCQlmb3JfZWFjaF9pZihwbGFuZSkKIAotdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVf bV9uKGludCBicHAsIGludCBubGFuZXMsCit2b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50 IGJwcCwgdWludDE2X3QgY29tcHJlc3NlZF9icHAsCisJCQkgICAgaW50IG5sYW5lcywKIAkJCSAg ICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAogCQkJICAgIHN0cnVjdCBpbnRlbF9s aW5rX21fbiAqbV9uLAogCQkJICAgIGJvb2wgY29uc3RhbnRfbik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwppbmRleCBiMzliNGJkYThlNDAuLjU4MzI2ZmM5ZDkzNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCkBAIC00Nyw2ICs0Nyw4IEBACiAKIC8qIERQIERTQyBzbWFsbCBqb2luZXIgaGFzIDIg RklGT3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICovCiAjZGVmaW5lIERQX0RTQ19NQVhfU01BTExf Sk9JTkVSX1JBTV9CVUZGRVIJNjE0NDAKKyNkZWZpbmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBD CQk4CisjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQwkJMTAKIAogLyogRFAgRFNDIHRo cm91Z2hwdXQgdmFsdWVzIHVzZWQgZm9yIHNsaWNlIGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxz L3MgKi8KICNkZWZpbmUgRFBfRFNDX1BFQUtfUElYRUxfUkFURQkJCTI3MjAwMDAKQEAgLTE4NDAs NiArMTg0MiwyOSBAQCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIHsKIAlpbnQgbWluX2JwcCwg bWF4X2JwcDsKIH07CiAKK3N0YXRpYyBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2Mo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKKworCS8qIEZJWE1FOiBGRUMgbmVlZGVkIGZvciBl eHRlcm5hbCBEUCB1bnRpbCB0aGVuIHJlamVjdCBEU0Mgb24gRFAgKi8KKwlpZiAoIWludGVsX2Rw X2lzX2VkcChpbnRlbF9kcCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiBJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDEwICYmCisJCXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciAhPSBUUkFO U0NPREVSX0E7Cit9CisKK3N0YXRpYyBib29sIGludGVsX2RwX3N1cHBvcnRzX2RzYyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAorCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQoreworCWlmICghaW50ZWxfZHBfc291cmNlX3N1cHBvcnRzX2RzYyhpbnRl bF9kcCwgcGlwZV9jb25maWcpIHx8CisJICAgICFkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50 ZWxfZHAtPmRzY19kcGNkKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisK IHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CkBAIC0xODYz LDYgKzE4ODgsMTUgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAogCQl9CiAJfQogCisJLyogSWYgRFNDIGlzIHN1cHBvcnRlZCwgdXNl IHRoZSBtYXggdmFsdWUgcmVwb3J0ZWQgYnkgcGFuZWwgKi8KKwlpZiAoaW50ZWxfZHBfc3VwcG9y dHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZpZykpIHsKKwkJYnBjID0gbWluX3QodTgsCisJCQkg ICAgZHJtX2RwX2RzY19zaW5rX21heF9jb2xvcl9kZXB0aChpbnRlbF9kcC0+ZHNjX2RwY2QpLAor CQkJICAgIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7CisJCWlmIChicGMpCisJCQlicHAgPSBt aW4oYnBwLCAzKmJwYyk7CisJfQorCiAJcmV0dXJuIGJwcDsKIH0KIApAQCAtMTk3NCw2ICsyMDA4 LDgwIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogCXJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNj X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkJCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKKwkJCQkJY29uc3Qgc3RydWN0IGxpbmtfY29u ZmlnX2xpbWl0cyAqbGltaXRzKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGU7CisJdTE2IGRzY19tYXhfb3V0cHV0X2JwcCA9IDA7CisJdTggZHNjX2RwX3NsaWNl X2NvdW50ID0gMDsKKworCWlmICghaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBl X2NvbmZpZykpCisJCXJldHVybiBmYWxzZTsKKworCS8qIERTQyBub3Qgc3VwcG9ydGVkIGZvciBE U0Mgc2luayBCUEMgPCA4ICovCisJaWYgKGxpbWl0cy0+bWF4X2JwcCA8IDMgKiBEUF9EU0NfTUlO X1NVUFBPUlRFRF9CUEMpIHsKKwkJRFJNX0RFQlVHX0tNUygiTm8gRFNDIHN1cHBvcnQgZm9yIGxl c3MgdGhhbiA4YnBjXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qCisJICogRm9yIG5v dyBlbmFibGUgRFNDIGZvciBtYXggYnBwLCBtYXggbGluayByYXRlLCBtYXggbGFuZSBjb3VudC4K KwkgKiBPcHRpbWl6ZSB0aGlzIGxhdGVyIGZvciB0aGUgbWluaW11bSBwb3NzaWJsZSBsaW5rIHJh dGUvbGFuZSBjb3VudAorCSAqIHdpdGggRFNDIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9k ZS4KKwkgKi8KKwlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBsaW1pdHMtPm1heF9icHA7CisJcGlw ZV9jb25maWctPnBvcnRfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy0+bWF4 X2Nsb2NrXTsKKwlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxpbWl0cy0+bWF4X2xhbmVfY291 bnQ7CisKKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgeworCQlwaXBlX2NvbmZpZy0+ ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCA9CisJCQlkcm1fZWRwX2RzY19zaW5rX291dHB1dF9i cHAoaW50ZWxfZHAtPmRzY19kcGNkKSA+PiA0OworCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5z bGljZV9jb3VudCA9CisJCQlkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50KGludGVsX2Rw LT5kc2NfZHBjZCwKKwkJCQkJCQl0cnVlKTsKKwl9IGVsc2UgeworCQlkc2NfbWF4X291dHB1dF9i cHAgPQorCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAorCQkJCQkJICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAorCQkJCQkJICAgIGFkanVz dGVkX21vZGUtPmNydGNfY2xvY2ssCisJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlz cGxheSk7CisJCWRzY19kcF9zbGljZV9jb3VudCA9CisJCQlpbnRlbF9kcF9kc2NfZ2V0X3NsaWNl X2NvdW50KGludGVsX2RwLAorCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAor CQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKKwkJaWYgKCEoZHNjX21h eF9vdXRwdXRfYnBwICYmIGRzY19kcF9zbGljZV9jb3VudCkpIHsKKwkJCURSTV9ERUJVR19LTVMo IkNvbXByZXNzZWQgQlBQL1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRcbiIpOworCQkJcmV0dXJu IGZhbHNlOworCQl9CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwID0g ZHNjX21heF9vdXRwdXRfYnBwID4+IDQ7CisJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNl X2NvdW50ID0gZHNjX2RwX3NsaWNlX2NvdW50OworCX0KKwkvKgorCSAqIFZEU0MgZW5naW5lIG9w ZXJhdGVzIGF0IDEgUGl4ZWwgcGVyIGNsb2NrLCBzbyBpZiBwZWFrIHBpeGVsIHJhdGUKKwkgKiBp cyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gQ2RjbG9jayBhbmQgaWYgc2xpY2UgY291bnQgaXMg ZXZlbgorCSAqIHRoZW4gd2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3RhbmNlcy4KKwkgKi8KKwlp ZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkg eworCQlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPiAxKSB7CisJCQlw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5kc2Nfc3BsaXQgPSB0cnVlOworCQl9IGVsc2UgeworCQkJ RFJNX0RFQlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMiBWRFNDIGluc3RhbmNl c1xuIik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJcGlwZV9jb25maWctPmRzY19wYXJh bXMuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKKwlEUk1fREVCVUdfS01TKCJEUCBEU0MgY29t cHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCisJCSAgICAgICJDb21wcmVzc2VkIEJwcCA9ICVk IFNsaWNlIENvdW50ID0gJWRcbiIsCisJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKKwkJ ICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCisJCSAgICAgIHBp cGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50KTsKKworCXJldHVybiB0cnVlOworfQor CiBzdGF0aWMgYm9vbAogaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQpAQCAtMTk4Miw2ICsyMDkwLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgbGlua19jb25m aWdfbGltaXRzIGxpbWl0czsKIAlpbnQgY29tbW9uX2xlbjsKKwlib29sIHJldCA9IGZhbHNlOwog CiAJY29tbW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwK IAkJCQkJCSAgICBpbnRlbF9kcC0+bWF4X2xpbmtfcmF0ZSk7CkBAIC0xOTk1LDggKzIxMDQsMTIg QEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAlsaW1pdHMubWluX2xhbmVfY291bnQgPSAxOwogCWxpbWl0cy5tYXhfbGFuZV9jb3Vu dCA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKIAotCWxpbWl0cy5taW5fYnBw ID0gNiAqIDM7CiAJbGltaXRzLm1heF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRlbF9k cCwgcGlwZV9jb25maWcpOworCWlmIChpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50ZWxfZHAsIHBp cGVfY29uZmlnKSAmJgorCSAgICBsaW1pdHMubWF4X2JwcCA+PSBEUF9EU0NfTUlOX1NVUFBPUlRF RF9CUEMqMykKKwkJbGltaXRzLm1pbl9icHAgPSBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMgKiAz OworCWVsc2UKKwkJbGltaXRzLm1pbl9icHAgPSA2ICogMzsKIAogCWlmIChpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApICYmIGludGVsX2RwLT5lZHBfZHBjZFswXSA8IERQX0VEUF8xNCkgewogCQkv KgpAQCAtMjAyMCw3ICsyMTMzLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICAgICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRl c1tsaW1pdHMubWF4X2Nsb2NrXSwKIAkJICAgICAgbGltaXRzLm1heF9icHAsIGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2spOwogCi0JaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKKwlp ZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKIAkJLyoKIAkJICogT3B0aW1pemUgZm9yIGZh c3QgYW5kIG5hcnJvdy4gZURQIDEuMyBzZWN0aW9uIDMuMyBhbmQgZURQIDEuNAogCQkgKiBzZWN0 aW9uIEEuMTogIkl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mCkBA IC0yMDMwLDI2ICsyMTQzLDQyIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAqIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIG1heCBj bG9jayBhbmQgbGFuZSBjb3VudCBmb3IgZURQIDEuMyBhbmQKIAkJICogZWFybGllciwgYW5kIGZh c3QgdnMuIHdpZGUgaXMgaXJyZWxldmFudC4KIAkJICovCi0JCWlmICghaW50ZWxfZHBfY29tcHV0 ZV9saW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywKLQkJCQkJCSAgICAgICAm bGltaXRzKSkKLQkJCXJldHVybiBmYWxzZTsKLQl9IGVsc2UgeworCQlyZXQgPSBpbnRlbF9kcF9j b21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAorCQkJCQkJCSZs aW1pdHMpOworCWVsc2UKIAkJLyogT3B0aW1pemUgZm9yIHNsb3cgYW5kIHdpZGUuICovCi0JCWlm ICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZp ZywKLQkJCQkJCSAgICAgICAmbGltaXRzKSkKKwkJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9saW5r X2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywKKwkJCQkJCQkmbGltaXRzKTsKKwor CS8qIGVuYWJsZSBjb21wcmVzc2lvbiBpZiB0aGUgbW9kZSBkb2Vzbid0IGZpdCBhdmFpbGFibGUg QlcgKi8KKwlpZiAoIXJldCkgeworCQlpZiAoIWludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhp bnRlbF9kcCwgcGlwZV9jb25maWcsCisJCQkJCQkgJmxpbWl0cykpCiAJCQlyZXR1cm4gZmFsc2U7 CiAJfQogCi0JRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRc biIsCi0JCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jaywKLQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKKwlpZiAocGlwZV9jb25maWct PmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlKSB7CisJCURSTV9ERUJVR19LTVMoIkRQIGxh bmUgY291bnQgJWQgY2xvY2sgJWQgSW5wdXQgYnBwICVkIENvbXByZXNzZWQgYnBwICVkXG4iLAor CQkJICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LAorCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkJICAgICAgcGlwZV9jb25maWct PmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHApOwogCi0JRFJNX0RFQlVHX0tNUygiRFAgbGluayBy YXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKLQkJICAgICAgaW50ZWxfZHBfbGlua19y ZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAotCQkJCQkgICAgIHBpcGVfY29uZmln LT5waXBlX2JwcCksCi0JCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWct PnBvcnRfY2xvY2ssCi0JCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKKwkJRFJN X0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKKwkJ CSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywK KwkJCQkJCSAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHApLAorCQkJ ICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJ CQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKKwl9IGVsc2UgeworCQlEUk1fREVC VUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKKwkJCSAgICAgIHBp cGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKKwkJCSAgICAg IHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CiAKKwkJRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRl IHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVx dWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkJCSAgICAgcGlwZV9jb25maWct PnBpcGVfYnBwKSwKKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWct PnBvcnRfY2xvY2ssCisJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7CisJfQog CXJldHVybiB0cnVlOwogfQogCkBAIC0yMTMzLDcgKzIyNjIsOSBAQCBpbnRlbF9kcF9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWludGVsX2Nvbm5fc3Rh dGUtPmJyb2FkY2FzdF9yZ2IgPT0gSU5URUxfQlJPQURDQVNUX1JHQl9MSU1JVEVEOwogCX0KIAot CWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCBwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCwKKwlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBl X2JwcCwKKwkJCSAgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwK KwkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKIAkJCSAgICAgICBhZGp1c3RlZF9t b2RlLT5jcnRjX2Nsb2NrLAogCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAogCQkJ ICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLApAQCAtMjE0Miw3ICsyMjczLDcgQEAgaW50ZWxf ZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKGlu dGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgogCQlkZXZfcHJp di0+ZHJycy50eXBlID09IFNFQU1MRVNTX0RSUlNfU1VQUE9SVCkgewogCQkJcGlwZV9jb25maWct Pmhhc19kcnJzID0gdHJ1ZTsKLQkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWct PnBpcGVfYnBwLAorCQkJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9i cHAsIDAsCiAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKIAkJCQkJICAgICAg IGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUtPmNsb2NrLAogCQkJCQkgICAg ICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j CmluZGV4IDhiNzFkNjRlYmQ5ZC4uZTAyY2FlZGQ0NDNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcF9tc3QuYwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCX0KIAl9CiAKLQlp bnRlbF9saW5rX2NvbXB1dGVfbV9uKGJwcCwgbGFuZV9jb3VudCwKKwlpbnRlbF9saW5rX2NvbXB1 dGVfbV9uKGJwcCwgMCwgbGFuZV9jb3VudCwKIAkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRj X2Nsb2NrLAogCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAogCQkJICAgICAgICZw aXBlX2NvbmZpZy0+ZHBfbV9uLAotLSAKMi4xOC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK