From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Francis Subject: [PATCH v2 1/3] drm/i915: Move dsc rate params compute into drm Date: Thu, 21 Feb 2019 15:19:59 -0500 Message-ID: <20190221202001.28430-2-David.Francis@amd.com> References: <20190221202001.28430-1-David.Francis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190221202001.28430-1-David.Francis@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, nikola.cornij@amd.com, manasi.d.navare@intel.com, David Francis List-Id: intel-gfx@lists.freedesktop.org VGhlIGZ1bmN0aW9uIGludGVsX2NvbXB1dGVfcmNfcGFyYW1ldGVycyBpcyBwYXJ0IG9mIHRoZSBk c2Mgc3BlYwphbmQgaXMgbm90IGRyaXZlci1zcGVjaWZpYy4gT3RoZXIgZHJtIGRyaXZlcnMgbWln aHQgbGlrZSB0byB1c2UKaXQuICBUaGUgZnVuY3Rpb24gaXMgbm90IGNoYW5nZWQ7IGp1c3QgbW92 ZWQgYW5kIHJlbmFtZWQuCgpSZXZpZXdlZC1ieTogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRs YW5kQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEZyYW5jaXMgPERhdmlkLkZyYW5jaXNA YW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RzYy5jICAgICAgICAgfCAxMzUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92 ZHNjLmMgfCAxMjUgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1f ZHNjLmggICAgICAgICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9u cygrKSwgMTI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZHNjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RzYy5jCmluZGV4IGJjZTk5Zjk1YzFhMy4uYjdm MTkwMzUwOGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RzYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHNjLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51 eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9ieXRl b3JkZXIvZ2VuZXJpYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxk cm0vZHJtX2RwX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZHNjLmg+CiAKQEAgLTI0NCwz ICsyNDUsMTM3IEBAIHZvaWQgZHJtX2RzY19wcHNfaW5mb2ZyYW1lX3BhY2soc3RydWN0IGRybV9k c2NfcHBzX2luZm9mcmFtZSAqcHBzX3NkcCwKIAkvKiBQUFMgOTQgLSAxMjcgYXJlIE8gKi8KIH0K IEVYUE9SVF9TWU1CT0woZHJtX2RzY19wcHNfaW5mb2ZyYW1lX3BhY2spOworCisvKioKKyAqIGRy bV9kc2NfY29tcHV0ZV9yY19wYXJhbWV0ZXJzKCkgLSBXcml0ZSByYXRlIGNvbnRyb2wKKyAqIHBh cmFtZXRlcnMgdG8gdGhlIGRzYyBjb25maWd1cmF0aW9uIGRlZmluZWQgaW4KKyAqICZzdHJ1Y3Qg ZHJtX2RzY19jb25maWcgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBEU0MgMS4xCisgKiBzcGVjaWZp Y2F0aW9uLiBTb21lIGNvbmZpZ3VyYXRpb24gZmllbGRzIG11c3QgYmUgcHJlc2VudAorICogYmVm b3JlaGFuZC4KKyAqCisgKiBAdmRzY19jZmc6CisgKiBEU0MgQ29uZmlndXJhdGlvbiBkYXRhIHBh cnRpYWxseSBmaWxsZWQgYnkgZHJpdmVyCisgKi8KK2ludCBkcm1fZHNjX2NvbXB1dGVfcmNfcGFy YW1ldGVycyhzdHJ1Y3QgZHJtX2RzY19jb25maWcgKnZkc2NfY2ZnKQoreworCXVuc2lnbmVkIGxv bmcgZ3JvdXBzX3Blcl9saW5lID0gMDsKKwl1bnNpZ25lZCBsb25nIGdyb3Vwc190b3RhbCA9IDA7 CisJdW5zaWduZWQgbG9uZyBudW1fZXh0cmFfbXV4X2JpdHMgPSAwOworCXVuc2lnbmVkIGxvbmcg c2xpY2VfYml0cyA9IDA7CisJdW5zaWduZWQgbG9uZyBocmRfZGVsYXkgPSAwOworCXVuc2lnbmVk IGxvbmcgZmluYWxfc2NhbGUgPSAwOworCXVuc2lnbmVkIGxvbmcgcmJzX21pbiA9IDA7CisKKwkv KiBOdW1iZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSBlYWNoIGxpbmUgb2YgYSBzbGljZSAqLwor CWdyb3Vwc19wZXJfbGluZSA9IERJVl9ST1VORF9VUCh2ZHNjX2NmZy0+c2xpY2Vfd2lkdGgsCisJ CQkJICAgICAgIERTQ19SQ19QSVhFTFNfUEVSX0dST1VQKTsKKworCS8qIGNodW5rc2l6ZSBpbiBC eXRlcyAqLworCXZkc2NfY2ZnLT5zbGljZV9jaHVua19zaXplID0gRElWX1JPVU5EX1VQKHZkc2Nf Y2ZnLT5zbGljZV93aWR0aCAqCisJCQkJCQkgIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCwKKwkJ CQkJCSAgKDggKiAxNikpOworCisJaWYgKHZkc2NfY2ZnLT5jb252ZXJ0X3JnYikKKwkJbnVtX2V4 dHJhX211eF9iaXRzID0gMyAqICh2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSArCisJCQkJCSAgKDQg KiB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ICsgNCkKKwkJCQkJICAtIDIpOworCWVsc2UK KwkJbnVtX2V4dHJhX211eF9iaXRzID0gMyAqIHZkc2NfY2ZnLT5tdXhfd29yZF9zaXplICsKKwkJ CSg0ICogdmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCArIDQpICsKKwkJCTIgKiAoNCAqIHZk c2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQpIC0gMjsKKwkvKiBOdW1iZXIgb2YgYml0cyBpbiBv bmUgU2xpY2UgKi8KKwlzbGljZV9iaXRzID0gOCAqIHZkc2NfY2ZnLT5zbGljZV9jaHVua19zaXpl ICogdmRzY19jZmctPnNsaWNlX2hlaWdodDsKKworCXdoaWxlICgobnVtX2V4dHJhX211eF9iaXRz ID4gMCkgJiYKKwkgICAgICAgKChzbGljZV9iaXRzIC0gbnVtX2V4dHJhX211eF9iaXRzKSAlIHZk c2NfY2ZnLT5tdXhfd29yZF9zaXplKSkKKwkJbnVtX2V4dHJhX211eF9iaXRzLS07CisKKwlpZiAo Z3JvdXBzX3Blcl9saW5lIDwgdmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWUgLSA4KQorCQl2 ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSA9IGdyb3Vwc19wZXJfbGluZSArIDg7CisKKwkv KiBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWwgY2FsY3VsYXRpb24gYWNjb3JkaW5nIHRvIERTQyBz cGVjIDEuMTEgKi8KKwlpZiAodmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWUgPiA4KQorCQl2 ZHNjX2NmZy0+c2NhbGVfZGVjcmVtZW50X2ludGVydmFsID0gZ3JvdXBzX3Blcl9saW5lIC8KKwkJ CSh2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSAtIDgpOworCWVsc2UKKwkJdmRzY19jZmct PnNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCA9IERTQ19TQ0FMRV9ERUNSRU1FTlRfSU5URVJWQUxf TUFYOworCisJdmRzY19jZmctPmZpbmFsX29mZnNldCA9IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXpl IC0KKwkJKHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgKgorCQkgdmRzY19jZmctPmJpdHNf cGVyX3BpeGVsICsgOCkgLyAxNiArIG51bV9leHRyYV9tdXhfYml0czsKKworCWlmICh2ZHNjX2Nm Zy0+ZmluYWxfb2Zmc2V0ID49IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplKSB7CisJCURSTV9ERUJV R19LTVMoIkZpbmFsT2ZzIDwgUmNNb2RlbFN6ZSBmb3IgdGhpcyBJbml0aWFsWG1pdERlbGF5XG4i KTsKKwkJcmV0dXJuIC1FUkFOR0U7CisJfQorCisJZmluYWxfc2NhbGUgPSAodmRzY19jZmctPnJj X21vZGVsX3NpemUgKiA4KSAvCisJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2Zn LT5maW5hbF9vZmZzZXQpOworCWlmICh2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0ID4gMSkKKwkJLyoK KwkJICogTmZsQnBnT2Zmc2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZyYWN0aW9uYWwgYml0 cworCQkgKiBoZW5jZSB3ZSBtdWx0aXBseSBieSAyXjExIGZvciBwcmVzZXJ2aW5nIHRoZQorCQkg KiBmcmFjdGlvbmFsIHBhcnQKKwkJICovCisJCXZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCA9IERJ Vl9ST1VORF9VUCgodmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldCA8PCAxMSksCisJCQkJ CQkJKHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQgLSAxKSk7CisJZWxzZQorCQl2ZHNjX2NmZy0+bmZs X2JwZ19vZmZzZXQgPSAwOworCisJLyogMl4xNiAtIDEgKi8KKwlpZiAodmRzY19jZmctPm5mbF9i cGdfb2Zmc2V0ID4gNjU1MzUpIHsKKwkJRFJNX0RFQlVHX0tNUygiTmZsQnBnT2Zmc2V0IGlzIHRv byBsYXJnZSBmb3IgdGhpcyBzbGljZSBoZWlnaHRcbiIpOworCQlyZXR1cm4gLUVSQU5HRTsKKwl9 CisKKwkvKiBOdW1iZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSB0aGUgZW50aXJlIHNsaWNlICov CisJZ3JvdXBzX3RvdGFsID0gZ3JvdXBzX3Blcl9saW5lICogdmRzY19jZmctPnNsaWNlX2hlaWdo dDsKKworCS8qIHNsaWNlX2JwZ19vZmZzZXQgaXMgMTYgYml0IHZhbHVlIHdpdGggMTEgZnJhY3Rp b25hbCBiaXRzICovCisJdmRzY19jZmctPnNsaWNlX2JwZ19vZmZzZXQgPSBESVZfUk9VTkRfVVAo KCh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtCisJCQkJCQkgICAgdmRzY19jZmctPmluaXRpYWxf b2Zmc2V0ICsKKwkJCQkJCSAgICBudW1fZXh0cmFfbXV4X2JpdHMpIDw8IDExKSwKKwkJCQkJCSAg Z3JvdXBzX3RvdGFsKTsKKworCWlmIChmaW5hbF9zY2FsZSA+IDkpIHsKKwkJLyoKKwkJICogU2Nh bGVJbmNyZW1lbnRJbnRlcnZhbCA9CisJCSAqIGZpbmFsb2Zmc2V0LygoTmZsQnBnT2Zmc2V0ICsg U2xpY2VCcGdPZmZzZXQpKjgoZmluYWxzY2FsZSAtIDEuMTI1KSkKKwkJICogYXMgKE5mbEJwZ09m ZnNldCArIFNsaWNlQnBnT2Zmc2V0KSBoYXMgMTEgYml0IGZyYWN0aW9uYWwgdmFsdWUsCisJCSAq IHdlIG5lZWQgZGl2aWRlIGJ5IDJeMTEgZnJvbSBwc3REc2NDZmcgdmFsdWVzCisJCSAqLworCQl2 ZHNjX2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFsID0KKwkJCQkodmRzY19jZmctPmZpbmFs X29mZnNldCAqICgxIDw8IDExKSkgLworCQkJCSgodmRzY19jZmctPm5mbF9icGdfb2Zmc2V0ICsK KwkJCQl2ZHNjX2NmZy0+c2xpY2VfYnBnX29mZnNldCkgKgorCQkJCShmaW5hbF9zY2FsZSAtIDkp KTsKKwl9IGVsc2UgeworCQkvKgorCQkgKiBJZiBmaW5hbFNjYWxlVmFsdWUgaXMgbGVzcyB0aGFu IG9yIGVxdWFsIHRvIDksIGEgdmFsdWUgb2YgMCBzaG91bGQKKwkJICogYmUgdXNlZCB0byBkaXNh YmxlIHRoZSBzY2FsZSBpbmNyZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgc2xpY2UKKwkJICovCisJ CXZkc2NfY2ZnLT5zY2FsZV9pbmNyZW1lbnRfaW50ZXJ2YWwgPSAwOworCX0KKworCWlmICh2ZHNj X2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFsID4gNjU1MzUpIHsKKwkJRFJNX0RFQlVHX0tN UygiU2NhbGVJbmNyZW1lbnRJbnRlcnZhbCBpcyBsYXJnZSBmb3Igc2xpY2UgaGVpZ2h0XG4iKTsK KwkJcmV0dXJuIC1FUkFOR0U7CisJfQorCisJLyoKKwkgKiBEU0Mgc3BlYyBtZW50aW9ucyB0aGF0 IGJpdHNfcGVyX3BpeGVsIHNwZWNpZmllcyB0aGUgdGFyZ2V0CisJICogYml0cy9waXhlbCAoYnBw KSByYXRlIHRoYXQgaXMgdXNlZCBieSB0aGUgZW5jb2RlciwKKwkgKiBpbiBzdGVwcyBvZiAxLzE2 IG9mIGEgYml0IHBlciBwaXhlbAorCSAqLworCXJic19taW4gPSB2ZHNjX2NmZy0+cmNfbW9kZWxf c2l6ZSAtIHZkc2NfY2ZnLT5pbml0aWFsX29mZnNldCArCisJCURJVl9ST1VORF9VUCh2ZHNjX2Nm Zy0+aW5pdGlhbF94bWl0X2RlbGF5ICoKKwkJCSAgICAgdmRzY19jZmctPmJpdHNfcGVyX3BpeGVs LCAxNikgKworCQlncm91cHNfcGVyX2xpbmUgKiB2ZHNjX2NmZy0+Zmlyc3RfbGluZV9icGdfb2Zm c2V0OworCisJaHJkX2RlbGF5ID0gRElWX1JPVU5EX1VQKChyYnNfbWluICogMTYpLCB2ZHNjX2Nm Zy0+Yml0c19wZXJfcGl4ZWwpOworCXZkc2NfY2ZnLT5yY19iaXRzID0gKGhyZF9kZWxheSAqIHZk c2NfY2ZnLT5iaXRzX3Blcl9waXhlbCkgLyAxNjsKKwl2ZHNjX2NmZy0+aW5pdGlhbF9kZWNfZGVs YXkgPSBocmRfZGVsYXkgLSB2ZHNjX2NmZy0+aW5pdGlhbF94bWl0X2RlbGF5OworCisJcmV0dXJu IDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9kc2NfY29tcHV0ZV9yY19wYXJhbWV0ZXJzKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Zkc2MuYwppbmRleCAyM2FiZjAzNzM2ZTcuLjJkMDU5ZWJjOWJkMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYwpAQCAtMzE3LDEyOSArMzE3LDYgQEAgc3RhdGlj IGludCBnZXRfY29sdW1uX2luZGV4X2Zvcl9yY19wYXJhbXModTggYml0c19wZXJfY29tcG9uZW50 KQogCX0KIH0KIAotc3RhdGljIGludCBpbnRlbF9jb21wdXRlX3JjX3BhcmFtZXRlcnMoc3RydWN0 IGRybV9kc2NfY29uZmlnICp2ZHNjX2NmZykKLXsKLQl1bnNpZ25lZCBsb25nIGdyb3Vwc19wZXJf bGluZSA9IDA7Ci0JdW5zaWduZWQgbG9uZyBncm91cHNfdG90YWwgPSAwOwotCXVuc2lnbmVkIGxv bmcgbnVtX2V4dHJhX211eF9iaXRzID0gMDsKLQl1bnNpZ25lZCBsb25nIHNsaWNlX2JpdHMgPSAw OwotCXVuc2lnbmVkIGxvbmcgaHJkX2RlbGF5ID0gMDsKLQl1bnNpZ25lZCBsb25nIGZpbmFsX3Nj YWxlID0gMDsKLQl1bnNpZ25lZCBsb25nIHJic19taW4gPSAwOwotCi0JLyogTnVtYmVyIG9mIGdy b3VwcyB1c2VkIHRvIGNvZGUgZWFjaCBsaW5lIG9mIGEgc2xpY2UgKi8KLQlncm91cHNfcGVyX2xp bmUgPSBESVZfUk9VTkRfVVAodmRzY19jZmctPnNsaWNlX3dpZHRoLAotCQkJCSAgICAgICBEU0Nf UkNfUElYRUxTX1BFUl9HUk9VUCk7Ci0KLQkvKiBjaHVua3NpemUgaW4gQnl0ZXMgKi8KLQl2ZHNj X2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSA9IERJVl9ST1VORF9VUCh2ZHNjX2NmZy0+c2xpY2Vfd2lk dGggKgotCQkJCQkJICB2ZHNjX2NmZy0+Yml0c19wZXJfcGl4ZWwsCi0JCQkJCQkgICg4ICogMTYp KTsKLQotCWlmICh2ZHNjX2NmZy0+Y29udmVydF9yZ2IpCi0JCW51bV9leHRyYV9tdXhfYml0cyA9 IDMgKiAodmRzY19jZmctPm11eF93b3JkX3NpemUgKwotCQkJCQkgICg0ICogdmRzY19jZmctPmJp dHNfcGVyX2NvbXBvbmVudCArIDQpCi0JCQkJCSAgLSAyKTsKLQllbHNlCi0JCW51bV9leHRyYV9t dXhfYml0cyA9IDMgKiB2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSArCi0JCQkoNCAqIHZkc2NfY2Zn LT5iaXRzX3Blcl9jb21wb25lbnQgKyA0KSArCi0JCQkyICogKDQgKiB2ZHNjX2NmZy0+Yml0c19w ZXJfY29tcG9uZW50KSAtIDI7Ci0JLyogTnVtYmVyIG9mIGJpdHMgaW4gb25lIFNsaWNlICovCi0J c2xpY2VfYml0cyA9IDggKiB2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSAqIHZkc2NfY2ZnLT5z bGljZV9oZWlnaHQ7Ci0KLQl3aGlsZSAoKG51bV9leHRyYV9tdXhfYml0cyA+IDApICYmCi0JICAg ICAgICgoc2xpY2VfYml0cyAtIG51bV9leHRyYV9tdXhfYml0cykgJSB2ZHNjX2NmZy0+bXV4X3dv cmRfc2l6ZSkpCi0JCW51bV9leHRyYV9tdXhfYml0cy0tOwotCi0JaWYgKGdyb3Vwc19wZXJfbGlu ZSA8IHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlIC0gOCkKLQkJdmRzY19jZmctPmluaXRp YWxfc2NhbGVfdmFsdWUgPSBncm91cHNfcGVyX2xpbmUgKyA4OwotCi0JLyogc2NhbGVfZGVjcmVt ZW50X2ludGVydmFsIGNhbGN1bGF0aW9uIGFjY29yZGluZyB0byBEU0Mgc3BlYyAxLjExICovCi0J aWYgKHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID4gOCkKLQkJdmRzY19jZmctPnNjYWxl X2RlY3JlbWVudF9pbnRlcnZhbCA9IGdyb3Vwc19wZXJfbGluZSAvCi0JCQkodmRzY19jZmctPmlu aXRpYWxfc2NhbGVfdmFsdWUgLSA4KTsKLQllbHNlCi0JCXZkc2NfY2ZnLT5zY2FsZV9kZWNyZW1l bnRfaW50ZXJ2YWwgPSBEU0NfU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX01BWDsKLQotCXZkc2Nf Y2ZnLT5maW5hbF9vZmZzZXQgPSB2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtCi0JCSh2ZHNjX2Nm Zy0+aW5pdGlhbF94bWl0X2RlbGF5ICoKLQkJIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCArIDgp IC8gMTYgKyBudW1fZXh0cmFfbXV4X2JpdHM7Ci0KLQlpZiAodmRzY19jZmctPmZpbmFsX29mZnNl dCA+PSB2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSkgewotCQlEUk1fREVCVUdfS01TKCJGaW5hbE9m cyA8IFJjTW9kZWxTemUgZm9yIHRoaXMgSW5pdGlhbFhtaXREZWxheVxuIik7Ci0JCXJldHVybiAt RVJBTkdFOwotCX0KLQotCWZpbmFsX3NjYWxlID0gKHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplICog OCkgLwotCQkodmRzY19jZmctPnJjX21vZGVsX3NpemUgLSB2ZHNjX2NmZy0+ZmluYWxfb2Zmc2V0 KTsKLQlpZiAodmRzY19jZmctPnNsaWNlX2hlaWdodCA+IDEpCi0JCS8qCi0JCSAqIE5mbEJwZ09m ZnNldCBpcyAxNiBiaXQgdmFsdWUgd2l0aCAxMSBmcmFjdGlvbmFsIGJpdHMKLQkJICogaGVuY2Ug d2UgbXVsdGlwbHkgYnkgMl4xMSBmb3IgcHJlc2VydmluZyB0aGUKLQkJICogZnJhY3Rpb25hbCBw YXJ0Ci0JCSAqLwotCQl2ZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQgPSBESVZfUk9VTkRfVVAoKHZk c2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQgPDwgMTEpLAotCQkJCQkJCSh2ZHNjX2NmZy0+ c2xpY2VfaGVpZ2h0IC0gMSkpOwotCWVsc2UKLQkJdmRzY19jZmctPm5mbF9icGdfb2Zmc2V0ID0g MDsKLQotCS8qIDJeMTYgLSAxICovCi0JaWYgKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCA+IDY1 NTM1KSB7Ci0JCURSTV9ERUJVR19LTVMoIk5mbEJwZ09mZnNldCBpcyB0b28gbGFyZ2UgZm9yIHRo aXMgc2xpY2UgaGVpZ2h0XG4iKTsKLQkJcmV0dXJuIC1FUkFOR0U7Ci0JfQotCi0JLyogTnVtYmVy IG9mIGdyb3VwcyB1c2VkIHRvIGNvZGUgdGhlIGVudGlyZSBzbGljZSAqLwotCWdyb3Vwc190b3Rh bCA9IGdyb3Vwc19wZXJfbGluZSAqIHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQ7Ci0KLQkvKiBzbGlj ZV9icGdfb2Zmc2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZyYWN0aW9uYWwgYml0cyAqLwot CXZkc2NfY2ZnLT5zbGljZV9icGdfb2Zmc2V0ID0gRElWX1JPVU5EX1VQKCgodmRzY19jZmctPnJj X21vZGVsX3NpemUgLQotCQkJCQkJICAgIHZkc2NfY2ZnLT5pbml0aWFsX29mZnNldCArCi0JCQkJ CQkgICAgbnVtX2V4dHJhX211eF9iaXRzKSA8PCAxMSksCi0JCQkJCQkgIGdyb3Vwc190b3RhbCk7 Ci0KLQlpZiAoZmluYWxfc2NhbGUgPiA5KSB7Ci0JCS8qCi0JCSAqIFNjYWxlSW5jcmVtZW50SW50 ZXJ2YWwgPQotCQkgKiBmaW5hbG9mZnNldC8oKE5mbEJwZ09mZnNldCArIFNsaWNlQnBnT2Zmc2V0 KSo4KGZpbmFsc2NhbGUgLSAxLjEyNSkpCi0JCSAqIGFzIChOZmxCcGdPZmZzZXQgKyBTbGljZUJw Z09mZnNldCkgaGFzIDExIGJpdCBmcmFjdGlvbmFsIHZhbHVlLAotCQkgKiB3ZSBuZWVkIGRpdmlk ZSBieSAyXjExIGZyb20gcHN0RHNjQ2ZnIHZhbHVlcwotCQkgKi8KLQkJdmRzY19jZmctPnNjYWxl X2luY3JlbWVudF9pbnRlcnZhbCA9Ci0JCQkJKHZkc2NfY2ZnLT5maW5hbF9vZmZzZXQgKiAoMSA8 PCAxMSkpIC8KLQkJCQkoKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCArCi0JCQkJdmRzY19jZmct PnNsaWNlX2JwZ19vZmZzZXQpICoKLQkJCQkoZmluYWxfc2NhbGUgLSA5KSk7Ci0JfSBlbHNlIHsK LQkJLyoKLQkJICogSWYgZmluYWxTY2FsZVZhbHVlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA5 LCBhIHZhbHVlIG9mIDAgc2hvdWxkCi0JCSAqIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGUgc2NhbGUg aW5jcmVtZW50IGF0IHRoZSBlbmQgb2YgdGhlIHNsaWNlCi0JCSAqLwotCQl2ZHNjX2NmZy0+c2Nh bGVfaW5jcmVtZW50X2ludGVydmFsID0gMDsKLQl9Ci0KLQlpZiAodmRzY19jZmctPnNjYWxlX2lu Y3JlbWVudF9pbnRlcnZhbCA+IDY1NTM1KSB7Ci0JCURSTV9ERUJVR19LTVMoIlNjYWxlSW5jcmVt ZW50SW50ZXJ2YWwgaXMgbGFyZ2UgZm9yIHNsaWNlIGhlaWdodFxuIik7Ci0JCXJldHVybiAtRVJB TkdFOwotCX0KLQotCS8qCi0JICogRFNDIHNwZWMgbWVudGlvbnMgdGhhdCBiaXRzX3Blcl9waXhl bCBzcGVjaWZpZXMgdGhlIHRhcmdldAotCSAqIGJpdHMvcGl4ZWwgKGJwcCkgcmF0ZSB0aGF0IGlz IHVzZWQgYnkgdGhlIGVuY29kZXIsCi0JICogaW4gc3RlcHMgb2YgMS8xNiBvZiBhIGJpdCBwZXIg cGl4ZWwKLQkgKi8KLQlyYnNfbWluID0gdmRzY19jZmctPnJjX21vZGVsX3NpemUgLSB2ZHNjX2Nm Zy0+aW5pdGlhbF9vZmZzZXQgKwotCQlESVZfUk9VTkRfVVAodmRzY19jZmctPmluaXRpYWxfeG1p dF9kZWxheSAqCi0JCQkgICAgIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCwgMTYpICsKLQkJZ3Jv dXBzX3Blcl9saW5lICogdmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldDsKLQotCWhyZF9k ZWxheSA9IERJVl9ST1VORF9VUCgocmJzX21pbiAqIDE2KSwgdmRzY19jZmctPmJpdHNfcGVyX3Bp eGVsKTsKLQl2ZHNjX2NmZy0+cmNfYml0cyA9IChocmRfZGVsYXkgKiB2ZHNjX2NmZy0+Yml0c19w ZXJfcGl4ZWwpIC8gMTY7Ci0JdmRzY19jZmctPmluaXRpYWxfZGVjX2RlbGF5ID0gaHJkX2RlbGF5 IC0gdmRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheTsKLQotCXJldHVybiAwOwotfQotCiBpbnQg aW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJ CQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewpAQCAtNTc0LDcgKzQ1 MSw3IEBAIGludCBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKIAl2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSA9ICh2ZHNjX2NmZy0+cmNf bW9kZWxfc2l6ZSA8PCAzKSAvCiAJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2Zn LT5pbml0aWFsX29mZnNldCk7CiAKLQlyZXR1cm4gaW50ZWxfY29tcHV0ZV9yY19wYXJhbWV0ZXJz KHZkc2NfY2ZnKTsKKwlyZXR1cm4gZHJtX2RzY19jb21wdXRlX3JjX3BhcmFtZXRlcnModmRzY19j ZmcpOwogfQogCiBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fZHNjLmggYi9pbmNsdWRlL2RybS9kcm1fZHNjLmgKaW5kZXggOWMyNmYw ODNjNzBmLi41YTk4YjhkZmRmNDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kc2MuaAor KysgYi9pbmNsdWRlL2RybS9kcm1fZHNjLmgKQEAgLTYwNCw1ICs2MDQsNiBAQCBzdHJ1Y3QgZHJt X2RzY19wcHNfaW5mb2ZyYW1lIHsKIHZvaWQgZHJtX2RzY19kcF9wcHNfaGVhZGVyX2luaXQoc3Ry dWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZSAqcHBzX3NkcCk7CiB2b2lkIGRybV9kc2NfcHBzX2lu Zm9mcmFtZV9wYWNrKHN0cnVjdCBkcm1fZHNjX3Bwc19pbmZvZnJhbWUgKnBwc19zZHAsCiAJCQkJ Y29uc3Qgc3RydWN0IGRybV9kc2NfY29uZmlnICpkc2NfY2ZnKTsKK2ludCBkcm1fZHNjX2NvbXB1 dGVfcmNfcGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2RzY19jb25maWcgKnZkc2NfY2ZnKTsKIAogI2Vu ZGlmIC8qIF9EUk1fRFNDX0hfICovCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==