From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: [PATCH v3 07/14] drm/i915/dp: cache common rates with sink rates Date: Tue, 28 Mar 2017 17:59:07 +0300 Message-ID: <89e4c2345fb21bc59fdb39c87d07d25b8286c6df.1490712890.git.jani.nikula@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11AE16E643 for ; Tue, 28 Mar 2017 14:59:41 +0000 (UTC) In-Reply-To: In-Reply-To: References: 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 Cc: jani.nikula@intel.com, dhinakaran.pandiyan@intel.com List-Id: intel-gfx@lists.freedesktop.org Tm93IHRoYXQgc291cmNlIHJhdGVzIGFyZSBzdGF0aWMgYW5kIHNpbmsgcmF0ZXMgYXJlIHVwZGF0 ZWQgd2hlbmV2ZXIKRFBDRCBpcyB1cGRhdGVkLCB3ZSBjYW4gZG8gYW5kIGNhY2hlIHRoZSBpbnRl cnNlY3Rpb24gb2YgdGhlbSB3aGVuZXZlcgpzaW5rIHJhdGVzIGFyZSB1cGRhdGVkLiBUaGlzIHJl ZHVjZXMgY29kZSBjb21wbGV4aXR5LCBhcyB3ZSBkb24ndCBoYXZlCnRvIGtlZXAgY2FsbGluZyB0 aGUgZnVuY3Rpb25zIHRvIGludGVyc2VjdC4gV2UgYWxzbyBnZXQgcmlkIG9mIHNldmVyYWwKY29t bW9uIHJhdGVzIGFycmF5cyBvbiBzdGFjay4KCkxpbWl0aW5nIHRoZSBjb21tb24gcmF0ZXMgYnkg YSBtYXggbGluayByYXRlIGNhbiBiZSBkb25lIGJ5IHBpY2tpbmcgdGhlCmZpcnN0IE4gZWxlbWVu dHMgb2YgdGhlIGNhY2hlZCBjb21tb24gcmF0ZXMuCgp2MjogZ2V0IHJpZCBvZiB0aGUgbG9jYWwg Y29tbW9uX3JhdGVzIHZhcmlhYmxlIChNYW5hc2kpCnYzOiBkb24ndCBjbG9iYmVyIGNhY2hlZCBl RFAgcmF0ZXMgb24gc2hvcnQgcHVsc2UgKFZpbGxlKQoKQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFz aS5kLm5hdmFyZUBpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFA aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgNzUgKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggfCAgMyArKwogMiBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCsp LCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCBlNDY1MGYxNjI1 Y2MuLjE4MDhhZjZkNjM1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC0yODQsMTcgKzI4 NCwyOSBAQCBzdGF0aWMgaW50IGludGVsX2RwX3JhdGVfaW5kZXgoY29uc3QgaW50ICpyYXRlcywg aW50IGxlbiwgaW50IHJhdGUpCiAJcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgaW50IGludGVsX2Rw X2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJCSBpbnQgKmNvbW1v bl9yYXRlcykKK3N0YXRpYyB2b2lkIGludGVsX2RwX3NldF9jb21tb25fcmF0ZXMoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKIHsKLQlpbnQgbWF4X3JhdGUgPSBpbnRlbF9kcC0+bWF4X3Npbmtf bGlua19yYXRlOwotCWludCBpLCBjb21tb25fbGVuOworCVdBUk5fT04oIWludGVsX2RwLT5udW1f c291cmNlX3JhdGVzIHx8ICFpbnRlbF9kcC0+bnVtX3NpbmtfcmF0ZXMpOwogCi0JY29tbW9uX2xl biA9IGludGVyc2VjdF9yYXRlcyhpbnRlbF9kcC0+c291cmNlX3JhdGVzLAotCQkJCSAgICAgaW50 ZWxfZHAtPm51bV9zb3VyY2VfcmF0ZXMsCi0JCQkJICAgICBpbnRlbF9kcC0+c2lua19yYXRlcywK LQkJCQkgICAgIGludGVsX2RwLT5udW1fc2lua19yYXRlcywKLQkJCQkgICAgIGNvbW1vbl9yYXRl cyk7CisJaW50ZWxfZHAtPm51bV9jb21tb25fcmF0ZXMgPSBpbnRlcnNlY3RfcmF0ZXMoaW50ZWxf ZHAtPnNvdXJjZV9yYXRlcywKKwkJCQkJCSAgICAgaW50ZWxfZHAtPm51bV9zb3VyY2VfcmF0ZXMs CisJCQkJCQkgICAgIGludGVsX2RwLT5zaW5rX3JhdGVzLAorCQkJCQkJICAgICBpbnRlbF9kcC0+ bnVtX3NpbmtfcmF0ZXMsCisJCQkJCQkgICAgIGludGVsX2RwLT5jb21tb25fcmF0ZXMpOworCisJ LyogUGFyYW5vaWEsIHRoZXJlIHNob3VsZCBhbHdheXMgYmUgc29tZXRoaW5nIGluIGNvbW1vbi4g Ki8KKwlpZiAoV0FSTl9PTihpbnRlbF9kcC0+bnVtX2NvbW1vbl9yYXRlcyA9PSAwKSkgeworCQlp bnRlbF9kcC0+Y29tbW9uX3JhdGVzWzBdID0gZGVmYXVsdF9yYXRlc1swXTsKKwkJaW50ZWxfZHAt Pm51bV9jb21tb25fcmF0ZXMgPSAxOworCX0KK30KKworLyogZ2V0IGxlbmd0aCBvZiBjb21tb24g cmF0ZXMgcG90ZW50aWFsbHkgbGltaXRlZCBieSBtYXhfcmF0ZSAqLworc3RhdGljIGludCBpbnRl bF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJ CQkJICBpbnQgbWF4X3JhdGUpCit7CisJY29uc3QgaW50ICpjb21tb25fcmF0ZXMgPSBpbnRlbF9k cC0+Y29tbW9uX3JhdGVzOworCWludCBpLCBjb21tb25fbGVuID0gaW50ZWxfZHAtPm51bV9jb21t b25fcmF0ZXM7CiAKIAkvKiBMaW1pdCByZXN1bHRzIGJ5IHBvdGVudGlhbGx5IHJlZHVjZWQgbWF4 IHJhdGUgKi8KIAlmb3IgKGkgPSAwOyBpIDwgY29tbW9uX2xlbjsgaSsrKSB7CkBAIC0zMDUsMjUg KzMxNywyMyBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGludGVsX2RwX2xpbmtf cmF0ZV9pbmRleChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJCSAgICBpbnQgKmNvbW1v bl9yYXRlcywgaW50IGxpbmtfcmF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfZHBfbGlua19yYXRlX2lu ZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBsaW5rX3JhdGUpCiB7CiAJaW50IGNv bW1vbl9sZW47CiAKLQljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2Rw LCBjb21tb25fcmF0ZXMpOworCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVf bGltaXQoaW50ZWxfZHAsCisJCQkJCQkgICAgaW50ZWxfZHAtPm1heF9zaW5rX2xpbmtfcmF0ZSk7 CiAKLQlyZXR1cm4gaW50ZWxfZHBfcmF0ZV9pbmRleChjb21tb25fcmF0ZXMsIGNvbW1vbl9sZW4s IGxpbmtfcmF0ZSk7CisJcmV0dXJuIGludGVsX2RwX3JhdGVfaW5kZXgoaW50ZWxfZHAtPmNvbW1v bl9yYXRlcywgY29tbW9uX2xlbiwgbGlua19yYXRlKTsKIH0KIAogaW50IGludGVsX2RwX2dldF9s aW5rX3RyYWluX2ZhbGxiYWNrX3ZhbHVlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJ CQkgICAgaW50IGxpbmtfcmF0ZSwgdWludDhfdCBsYW5lX2NvdW50KQogewotCWludCBjb21tb25f cmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU107CisJY29uc3QgaW50ICpjb21tb25fcmF0ZXMg PSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzOwogCWludCBsaW5rX3JhdGVfaW5kZXg7CiAKLQlsaW5r X3JhdGVfaW5kZXggPSBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoaW50ZWxfZHAsCi0JCQkJCQkg ICBjb21tb25fcmF0ZXMsCi0JCQkJCQkgICBsaW5rX3JhdGUpOworCWxpbmtfcmF0ZV9pbmRleCA9 IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwgbGlua19yYXRlKTsKIAlpZiAobGlu a19yYXRlX2luZGV4ID4gMCkgewogCQlpbnRlbF9kcC0+bWF4X3NpbmtfbGlua19yYXRlID0gY29t bW9uX3JhdGVzW2xpbmtfcmF0ZV9pbmRleCAtIDFdOwogCQlpbnRlbF9kcC0+bWF4X3NpbmtfbGFu ZV9jb3VudCA9IGxhbmVfY291bnQ7CkBAIC0xNTA2LDggKzE1MTYsNiBAQCBzdGF0aWMgdm9pZCBz bnByaW50Zl9pbnRfYXJyYXkoY2hhciAqc3RyLCBzaXplX3QgbGVuLAogCiBzdGF0aWMgdm9pZCBp bnRlbF9kcF9wcmludF9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewotCWludCBj b21tb25fbGVuOwotCWludCBjb21tb25fcmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU107CiAJ Y2hhciBzdHJbMTI4XTsgLyogRklYTUU6IHRvbyBiaWcgZm9yIHN0YWNrPyAqLwogCiAJaWYgKChk cm1fZGVidWcgJiBEUk1fVVRfS01TKSA9PSAwKQpAQCAtMTUyMSw4ICsxNTI5LDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHBfcHJpbnRfcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkJ CSAgIGludGVsX2RwLT5zaW5rX3JhdGVzLCBpbnRlbF9kcC0+bnVtX3NpbmtfcmF0ZXMpOwogCURS TV9ERUJVR19LTVMoInNpbmsgcmF0ZXM6ICVzXG4iLCBzdHIpOwogCi0JY29tbW9uX2xlbiA9IGlu dGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKLQlzbnByaW50Zl9p bnRfYXJyYXkoc3RyLCBzaXplb2Yoc3RyKSwgY29tbW9uX3JhdGVzLCBjb21tb25fbGVuKTsKKwlz bnByaW50Zl9pbnRfYXJyYXkoc3RyLCBzaXplb2Yoc3RyKSwKKwkJCSAgIGludGVsX2RwLT5jb21t b25fcmF0ZXMsIGludGVsX2RwLT5udW1fY29tbW9uX3JhdGVzKTsKIAlEUk1fREVCVUdfS01TKCJj b21tb24gcmF0ZXM6ICVzXG4iLCBzdHIpOwogfQogCkBAIC0xNTYwLDE0ICsxNTY4LDE0IEBAIGJv b2wgaW50ZWxfZHBfcmVhZF9kZXNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiBpbnQKIGlu dGVsX2RwX21heF9saW5rX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKLQlpbnQg cmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU10gPSB7fTsKIAlpbnQgbGVuOwogCi0JbGVuID0g aW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCByYXRlcyk7CisJbGVuID0gaW50ZWxfZHBf Y29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAorCQkJCQkgICAgIGludGVsX2RwLT5tYXhf c2lua19saW5rX3JhdGUpOwogCWlmIChXQVJOX09OKGxlbiA8PSAwKSkKIAkJcmV0dXJuIDE2MjAw MDsKIAotCXJldHVybiByYXRlc1tsZW4gLSAxXTsKKwlyZXR1cm4gaW50ZWxfZHAtPmNvbW1vbl9y YXRlc1tsZW4gLSAxXTsKIH0KIAogaW50IGludGVsX2RwX3JhdGVfc2VsZWN0KHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsIGludCByYXRlKQpAQCAtMTYzNiwxMSArMTY0NCwxMSBAQCBpbnRlbF9k cF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpbnQgbGlu a19yYXRlX2luZGV4OwogCWludCBicHAsIG1vZGVfcmF0ZTsKIAlpbnQgbGlua19hdmFpbCwgbGlu a19jbG9jazsKLQlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307 CiAJaW50IGNvbW1vbl9sZW47CiAJdWludDhfdCBsaW5rX2J3LCByYXRlX3NlbGVjdDsKIAotCWNv bW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fcmF0ZXMoaW50ZWxfZHAsIGNvbW1vbl9yYXRlcyk7 CisJY29tbW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwK KwkJCQkJCSAgICBpbnRlbF9kcC0+bWF4X3NpbmtfbGlua19yYXRlKTsKIAogCS8qIE5vIGNvbW1v biBsaW5rIHJhdGVzIGJldHdlZW4gc291cmNlIGFuZCBzaW5rICovCiAJV0FSTl9PTihjb21tb25f bGVuIDw9IDApOwpAQCAtMTY3OCw3ICsxNjg2LDYgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJLyogVXNlIHZhbHVlcyByZXF1ZXN0ZWQg YnkgQ29tcGxpYW5jZSBUZXN0IFJlcXVlc3QgKi8KIAlpZiAoaW50ZWxfZHAtPmNvbXBsaWFuY2Uu dGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJTklORykgewogCQlsaW5rX3JhdGVfaW5kZXgg PSBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoaW50ZWxfZHAsCi0JCQkJCQkJICAgY29tbW9uX3Jh dGVzLAogCQkJCQkJCSAgIGludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfbGlua19yYXRlKTsKIAkJ aWYgKGxpbmtfcmF0ZV9pbmRleCA+PSAwKQogCQkJbWluX2Nsb2NrID0gbWF4X2Nsb2NrID0gbGlu a19yYXRlX2luZGV4OwpAQCAtMTY4Niw3ICsxNjkzLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJfQogCURSTV9ERUJVR19LTVMoIkRQ IGxpbmsgY29tcHV0YXRpb24gd2l0aCBtYXggbGFuZSBjb3VudCAlaSAiCiAJCSAgICAgICJtYXgg YncgJWQgcGl4ZWwgY2xvY2sgJWlLSHpcbiIsCi0JCSAgICAgIG1heF9sYW5lX2NvdW50LCBjb21t b25fcmF0ZXNbbWF4X2Nsb2NrXSwKKwkJICAgICAgbWF4X2xhbmVfY291bnQsIGludGVsX2RwLT5j b21tb25fcmF0ZXNbbWF4X2Nsb2NrXSwKIAkJICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j ayk7CiAKIAkvKiBXYWxrIHRocm91Z2ggYWxsIGJwcCB2YWx1ZXMuIEx1Y2tpbHkgdGhleSdyZSBh bGwgbmljZWx5IHNwYWNlZCB3aXRoIDIKQEAgLTE3MjIsNyArMTcyOSw3IEBAIGludGVsX2RwX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCWxhbmVfY291 bnQgPD0gbWF4X2xhbmVfY291bnQ7CiAJCQkJbGFuZV9jb3VudCA8PD0gMSkgewogCi0JCQkJbGlu a19jbG9jayA9IGNvbW1vbl9yYXRlc1tjbG9ja107CisJCQkJbGlua19jbG9jayA9IGludGVsX2Rw LT5jb21tb25fcmF0ZXNbY2xvY2tdOwogCQkJCWxpbmtfYXZhaWwgPSBpbnRlbF9kcF9tYXhfZGF0 YV9yYXRlKGxpbmtfY2xvY2ssCiAJCQkJCQkJCSAgICBsYW5lX2NvdW50KTsKIApAQCAtMTc1NCw3 ICsxNzYxLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50OwogCiAJcGlw ZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwotCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gY29t bW9uX3JhdGVzW2Nsb2NrXTsKKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGludGVsX2RwLT5j b21tb25fcmF0ZXNbY2xvY2tdOwogCiAJaW50ZWxfZHBfY29tcHV0ZV9yYXRlKGludGVsX2RwLCBw aXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJCSAgICAgICZsaW5rX2J3LCAmcmF0ZV9zZWxlY3Qp OwpAQCAtMzcxNSw2ICszNzIyLDggQEAgaW50ZWxfZWRwX2luaXRfZHBjZChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogCWVsc2UKIAkJaW50ZWxfZHBfc2V0X3NpbmtfcmF0ZXMoaW50ZWxfZHAp OwogCisJaW50ZWxfZHBfc2V0X2NvbW1vbl9yYXRlcyhpbnRlbF9kcCk7CisKIAlyZXR1cm4gdHJ1 ZTsKIH0KIApAQCAtMzcyNiw4ICszNzM1LDEwIEBAIGludGVsX2RwX2dldF9kcGNkKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCiAJCXJldHVybiBmYWxzZTsKIAogCS8qIERvbid0IGNsb2JiZXIg Y2FjaGVkIGVEUCByYXRlcy4gKi8KLQlpZiAoIWlzX2VkcChpbnRlbF9kcCkpCisJaWYgKCFpc19l ZHAoaW50ZWxfZHApKSB7CiAJCWludGVsX2RwX3NldF9zaW5rX3JhdGVzKGludGVsX2RwKTsKKwkJ aW50ZWxfZHBfc2V0X2NvbW1vbl9yYXRlcyhpbnRlbF9kcCk7CisJfQogCiAJaWYgKGRybV9kcF9k cGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX1NJTktfQ09VTlQsCiAJCQkgICAgICZpbnRlbF9k cC0+c2lua19jb3VudCwgMSkgPCAwKQpAQCAtMzk1MCw3ICszOTYxLDYgQEAgc3RhdGljIHVpbnQ4 X3QgaW50ZWxfZHBfYXV0b3Rlc3RfbGlua190cmFpbmluZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQogewogCWludCBzdGF0dXMgPSAwOwogCWludCBtaW5fbGFuZV9jb3VudCA9IDE7Ci0JaW50 IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9OwogCWludCBsaW5rX3Jh dGVfaW5kZXgsIHRlc3RfbGlua19yYXRlOwogCXVpbnQ4X3QgdGVzdF9sYW5lX2NvdW50LCB0ZXN0 X2xpbmtfYnc7CiAJLyogKERQIENUUyAxLjIpCkBAIC0zOTc5LDcgKzM5ODksNiBAQCBzdGF0aWMg dWludDhfdCBpbnRlbF9kcF9hdXRvdGVzdF9saW5rX3RyYWluaW5nKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCiAJLyogVmFsaWRhdGUgdGhlIHJlcXVlc3RlZCBsaW5rIHJhdGUgKi8KIAl0ZXN0 X2xpbmtfcmF0ZSA9IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZSh0ZXN0X2xpbmtfYncpOwog CWxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwKLQkJ CQkJCSAgIGNvbW1vbl9yYXRlcywKIAkJCQkJCSAgIHRlc3RfbGlua19yYXRlKTsKIAlpZiAobGlu a19yYXRlX2luZGV4IDwgMCkKIAkJcmV0dXJuIERQX1RFU1RfTkFLOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAppbmRleCBmODE0MGIwNjY3OWQuLmVjODk4NWIyMDYxNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKQEAgLTk1Niw2ICs5NTYsOSBAQCBzdHJ1Y3QgaW50ZWxfZHAgewogCWludCBu dW1fc2lua19yYXRlczsKIAlpbnQgc2lua19yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXTsK IAlib29sIHVzZV9yYXRlX3NlbGVjdDsKKwkvKiBpbnRlcnNlY3Rpb24gb2Ygc291cmNlIGFuZCBz aW5rIHJhdGVzICovCisJaW50IG51bV9jb21tb25fcmF0ZXM7CisJaW50IGNvbW1vbl9yYXRlc1tE UF9NQVhfU1VQUE9SVEVEX1JBVEVTXTsKIAkvKiBNYXggbGFuZSBjb3VudCBmb3IgdGhlIHNpbmsg YXMgcGVyIERQQ0QgcmVnaXN0ZXJzICovCiAJdWludDhfdCBtYXhfc2lua19sYW5lX2NvdW50Owog CS8qIE1heCBsaW5rIEJXIGZvciB0aGUgc2luayBhcyBwZXIgRFBDRCByZWdpc3RlcnMgKi8KLS0g CjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK