From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kumar, Mahesh" Subject: [PATCH v3 5/9] drm/i915/gen9: WM memory bandwidth related workaround Date: Fri, 9 Sep 2016 13:31:02 +0530 Message-ID: <20160909080106.17506-6-mahesh1.kumar@intel.com> References: <20160909080106.17506-1-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id B64656E728 for ; Fri, 9 Sep 2016 07:57:36 +0000 (UTC) In-Reply-To: <20160909080106.17506-1-mahesh1.kumar@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 Cc: paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KClRoaXMgcGF0Y2gg aW1wbGVtbmV0cyBXb3JrYXJvdW5kcyByZWxhdGVkIHRvIGRpc3BsYXkgYXJiaXRyYXRlZCBtZW1v cnkKYmFuZHdpZHRoLiBUaGVzZSBXQSBhcmUgYXBwbGljYWJlIGZvciBhbGwgZ2VuLTkgYmFzZWQg cGxhdGZvcm1zLgoKQ2hhbmdlcyBzaW5jZSB2MToKIC0gUmViYXNlIG9uIHRvcCBvZiBQYXVsbydz IHBhdGNoIHNlcmllcwoKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFy QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAgOSAr KysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgIDExICsrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgfCAxNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2NSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKaW5kZXggNDMxMzk5Mi4uNDczN2EwZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC0xMDc0LDYgKzEwNzQsMTMgQEAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24g ewogCVNCSV9NUEhZLAogfTsKIAorLyogU0tMKyBXYXRlcm1hcmsgYXJiaXRyYXRlZCBkaXNwbGF5 IGJhbmR3aWR0aCBXb3JrYXJvdW5kcyAqLworZW51bSB3YXRlcm1hcmtfbWVtb3J5X3dhIHsKKwlX QVRFUk1BUktfV0FfTk9ORSwKKwlXQVRFUk1BUktfV0FfWF9USUxFRCwKKwlXQVRFUk1BUktfV0Ff WV9USUxFRCwKK307CisKICNkZWZpbmUgUVVJUktfUElQRUFfRk9SQ0UgKDE8PDApCiAjZGVmaW5l IFFVSVJLX0xWRFNfU1NDX0RJU0FCTEUgKDE8PDEpCiAjZGVmaW5lIFFVSVJLX0lOVkVSVF9CUklH SFRORVNTICgxPDwyKQpAQCAtMTYyMyw2ICsxNjMwLDggQEAgc3RydWN0IHNrbF9kZGJfYWxsb2Nh dGlvbiB7CiAKIHN0cnVjdCBza2xfd21fdmFsdWVzIHsKIAl1bnNpZ25lZCBkaXJ0eV9waXBlczsK KwkvKiBhbnkgV2F0ZXJNYXJrIG1lbW9yeSB3b3JrYXJvdW5kIFJlcXVpcmVkICovCisJZW51bSB3 YXRlcm1hcmtfbWVtb3J5X3dhIG1lbV93YTsKIAlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIGRk YjsKIAl1aW50MzJfdCB3bV9saW5ldGltZVtJOTE1X01BWF9QSVBFU107CiAJdWludDMyX3QgcGxh bmVbSTkxNV9NQVhfUElQRVNdW0k5MTVfTUFYX1BMQU5FU11bOF07CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCmluZGV4IDZjZDdlOGEuLjY2Y2I0NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CkBAIC0xODAwLDYgKzE4MDAsMTcgQEAgaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlyZXR1cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShj cnRjX3N0YXRlKTsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq CitpbnRlbF9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlLAorCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKworCWNydGNfc3RhdGUgPSBkcm1fYXRv bWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLCAmY3J0Yy0+YmFzZSk7CisKKwlyZXR1 cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKK30KKwogc3RhdGljIGlubGluZSBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKgogaW50ZWxfYXRvbWljX2dldF9leGlzdGluZ19wbGFu ZV9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgICAgc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDdjNzBlMDcu LjBlYzMyOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzU4OSw2ICszNTg5LDggQEAg c3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiB7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlID0gJmlu dGVsX3BzdGF0ZS0+YmFzZTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBzdGF0ZS0+ ZmI7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQorCQkJdG9faW50 ZWxfYXRvbWljX3N0YXRlKGNzdGF0ZS0+YmFzZS5zdGF0ZSk7CiAJdWludDMyX3QgbGF0ZW5jeSA9 IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAJdWludDMyX3QgbWV0aG9kMSwgbWV0 aG9kMjsKIAl1aW50MzJfdCBwbGFuZV9ieXRlc19wZXJfbGluZSwgcGxhbmVfYmxvY2tzX3Blcl9s aW5lOwpAQCAtMzYwMiwxMCArMzYwNCwxNyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5l X3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1Y3Qgc2ts X3dtX2xldmVsICpyZXN1bHQgPSAmcGlwZV93bS0+d21bbGV2ZWxdOwogCXVpbnQxNl90ICpvdXRf YmxvY2tzID0gJnJlc3VsdC0+cGxhbmVfcmVzX2JbaWRdOwogCXVpbnQ4X3QgKm91dF9saW5lcyA9 ICZyZXN1bHQtPnBsYW5lX3Jlc19sW2lkXTsKKwllbnVtIHdhdGVybWFya19tZW1vcnlfd2EgbWVt X3dhOwogCiAJaWYgKGxhdGVuY3kgPT0gMCB8fCAhY3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCAhaW50 ZWxfcHN0YXRlLT5iYXNlLnZpc2libGUpCiAJCXJldHVybiAwOwogCisJbWVtX3dhID0gaW50ZWxf c3RhdGUgPyBpbnRlbF9zdGF0ZS0+d21fcmVzdWx0cy5tZW1fd2EgOiBXQVRFUk1BUktfV0FfTk9O RTsKKwlpZiAobWVtX3dhICE9IFdBVEVSTUFSS19XQV9OT05FKSB7CisJCWlmIChmYi0+bW9kaWZp ZXJbMF0gPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpCisJCQlsYXRlbmN5ICs9IDE1OworCX0K KwogCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJmludGVsX3BzdGF0ZS0+YmFzZS5zcmMpID4+IDE2 OwogCWhlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4g MTY7CiAKQEAgLTM2MzcsNiArMzY0Niw5IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVf d20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQl5X21pbl9zY2Fu bGluZXMgPSA0OwogCX0KIAorCWlmIChtZW1fd2EgPT0gV0FURVJNQVJLX1dBX1lfVElMRUQpCisJ CXlfbWluX3NjYW5saW5lcyAqPSAyOworCiAJcGxhbmVfYnl0ZXNfcGVyX2xpbmUgPSB3aWR0aCAq IGNwcDsKIAlpZiAoZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8 CiAJICAgIGZiLT5tb2RpZmllclswXSA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQpIHsKQEAg LTQwNDEsNiArNDA1MywxNSBAQCBza2xfaW5jbHVkZV9hZmZlY3RlZF9waXBlcyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCWludGVsX3N0YXRlLT53bV9yZXN1bHRzLmRpcnR5X3Bp cGVzID0gfjA7CiAJfQogCisJLyoKKwkgKiBJZiBXYXRlcm1hcmsgd29ya2Fyb3VuZCBpcyBjaGFu Z2VkIHdlIG5lZWQgdG8gcmVjYWxjdWxhdGUKKwkgKiB3YXRlcm1hcmsgdmFsdWVzIGZvciBhbGwg YWN0aXZlIHBpcGVzCisJICovCisJaWYgKGludGVsX3N0YXRlLT53bV9yZXN1bHRzLm1lbV93YSAh PSBkZXZfcHJpdi0+d20uc2tsX2h3Lm1lbV93YSkgeworCQlyZWFsbG9jX3BpcGVzID0gfjA7CisJ CWludGVsX3N0YXRlLT53bV9yZXN1bHRzLmRpcnR5X3BpcGVzID0gfjA7CisJfQorCiAJZm9yX2Vh Y2hfaW50ZWxfY3J0Y19tYXNrKGRldiwgaW50ZWxfY3J0YywgcmVhbGxvY19waXBlcykgewogCQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlOwogCkBAIC00MDU3LDYgKzQwNzgsMTI4IEBA IHNrbF9pbmNsdWRlX2FmZmVjdGVkX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIH0KIAogc3RhdGljIHZvaWQKK3NrbF9zZXRfbWVtb3J5X2JhbmR3aWR0aF93bV93YShzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IHN0YXRlLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOworCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmlu dGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKKwlpbnQgbnVtX2FjdGl2 ZV9wbGFuZSwgbnVtX2FjdGl2ZV9waXBlOworCXVpbnQzMl90IHBsYW5lX2J3LCBtYXhfcGxhbmVf YncsIHBpcGVfYncsIG1heF9waXBlX2J3OworCXVpbnQzMl90IHRvdGFsX3BpcGVfYnc7CisJdWlu dDMyX3Qgc3lzdGVtX2J3ID0gMDsKKwl1aW50OF90IG51bV9jaGFubmVsLCBkYXRhX3dpZHRoLCBy YW5rOworCWludCB4X3RpbGVfcGVyOworCWludCBkaXNwbGF5X2J3X3BlcjsKKwlib29sIHlfdGls ZV9lbmFibGVkID0gZmFsc2U7CisKKwlpZiAoIWRldl9wcml2LT5tZW1kZXZfaW5mby52YWxpZCkK KwkJZ290byBleGl0OworCisJbnVtX2NoYW5uZWwgPSBkZXZfcHJpdi0+bWVtZGV2X2luZm8ubnVt X2NoYW5uZWw7CisJZGF0YV93aWR0aCA9IGRldl9wcml2LT5tZW1kZXZfaW5mby5kYXRhX3dpZHRo OworCXN5c3RlbV9idyA9IGRldl9wcml2LT5tZW1kZXZfaW5mby5tZW1fc3BlZWQgKiBudW1fY2hh bm5lbCAqIGRhdGFfd2lkdGg7CisKKwlpZiAoIXN5c3RlbV9idykKKwkJZ290byBleGl0OworCisJ bWF4X3BpcGVfYncgPSAwOworCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBpbnRlbF9jcnRjKSB7 CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGU7CisJCXN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmU7CisKKwkJLyoKKwkJICogSWYgQ1JUQyBpcyBwYXJ0IG9mIGN1cnJlbnQgYXRvbWlj IGNvbW1pdCwgZ2V0IGNydGMgc3RhdGUgZnJvbQorCQkgKiBleGlzdGluZyBDUlRDIHN0YXRlLiBl bHNlIHRha2UgdGhlIGNhY2hlZCBDUlRDIHN0YXRlCisJCSAqLworCQljc3RhdGUgPSBOVUxMOwor CQlpZiAoc3RhdGUpCisJCQljc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNf c3RhdGUoc3RhdGUsCisJCQkJCWludGVsX2NydGMpOworCQlpZiAoIWNzdGF0ZSkKKwkJCWNzdGF0 ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSk7CisKKwkJaWYg KCFjc3RhdGUtPmJhc2UuYWN0aXZlKQorCQkJY29udGludWU7CisKKwkJbnVtX2FjdGl2ZV9wbGFu ZSA9IDA7CisJCW1heF9wbGFuZV9idyA9IDA7CisJCWZvcl9lYWNoX2ludGVsX3BsYW5lX21hc2so ZGV2LCBwbGFuZSwgY3N0YXRlLT5iYXNlLnBsYW5lX21hc2spIHsKKwkJCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gTlVMTDsKKworCQkJaW50ZWxfcHN0YXRlID0gTlVMTDsKKwkJCWlmIChz dGF0ZSkKKwkJCQlpbnRlbF9wc3RhdGUgPQorCQkJCWludGVsX2F0b21pY19nZXRfZXhpc3Rpbmdf cGxhbmVfc3RhdGUoc3RhdGUsCisJCQkJCQkJCQlwbGFuZSk7CisJCQlpZiAoIWludGVsX3BzdGF0 ZSkKKwkJCQlpbnRlbF9wc3RhdGUgPQorCQkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+ YmFzZS5zdGF0ZSk7CisKKwkJCVdBUk5fT04oIWludGVsX3BzdGF0ZS0+YmFzZS5mYik7CisKKwkJ CWlmICghaW50ZWxfcHN0YXRlLT5iYXNlLnZpc2libGUpCisJCQkJY29udGludWU7CisKKwkJCWZi ID0gaW50ZWxfcHN0YXRlLT5iYXNlLmZiOworCQkJaWYgKGZiICYmIChmYi0+bW9kaWZpZXJbMF0g PT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKKwkJCQlmYi0+bW9kaWZpZXJbMF0gPT0gSTkx NV9GT1JNQVRfTU9EX1lmX1RJTEVEKSkKKwkJCQl5X3RpbGVfZW5hYmxlZCA9IHRydWU7CisKKwkJ CXBsYW5lX2J3ID0gc2tsX2FkanVzdGVkX3BsYW5lX3BpeGVsX3JhdGUoY3N0YXRlLAorCQkJCQkJ CQlpbnRlbF9wc3RhdGUpOworCQkJbWF4X3BsYW5lX2J3ID0gbWF4KHBsYW5lX2J3LCBtYXhfcGxh bmVfYncpOworCQkJbnVtX2FjdGl2ZV9wbGFuZSsrOworCQl9CisJCXBpcGVfYncgPSBtYXhfcGxh bmVfYncgKiBudW1fYWN0aXZlX3BsYW5lOworCQltYXhfcGlwZV9idyA9IG1heChwaXBlX2J3LCBt YXhfcGlwZV9idyk7CisJfQorCisJaWYgKGludGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2Vz KQorCQludW1fYWN0aXZlX3BpcGUgPSBod2VpZ2h0MzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRj cyk7CisJZWxzZQorCQludW1fYWN0aXZlX3BpcGUgPSBod2VpZ2h0MzIoZGV2X3ByaXYtPmFjdGl2 ZV9jcnRjcyk7CisKKwl0b3RhbF9waXBlX2J3ID0gbWF4X3BpcGVfYncgKiBudW1fYWN0aXZlX3Bp cGU7CisKKwlkaXNwbGF5X2J3X3BlciA9IERJVl9ST1VORF9VUF9VTEwodG90YWxfcGlwZV9idyAq IDEwMCwgc3lzdGVtX2J3ICogMTAwMCk7CisKKwkvKgorCSAqIElmIHRoZXJlIGlzIGFueSBZdGls ZSBwbGFuZSBlbmFibGVkIGFuZCBhcmJpdHJhdGVkIGRpc3BsYXkKKwkgKiBiYW5kd2lkdGggPiAy MCUgb2YgcmF3IHN5c3RlbSBtZW1vcnkgYmFuZHdpZHRoCisJICogRW5hbGUgWS10aWxlIHJlbGF0 ZWQgV0EKKwkgKgorCSAqIElmIG1lbW9yeSBpcyBkdWFsIGNoYW5uZWwgc2luZ2xlIHJhbmssIFh0 aWxlIGxpbWl0ID0gMzUlLCBlbHNlIFh0aWxlCisJICogbGltaXQgPSA2MCUKKwkgKiBJZiB0aGVy ZSBpcyBubyBZdGlsZSBwbGFuZSBlbmFibGVkIGFuZAorCSAqIGFyYml0cmF0ZWQgZGlzcGxheSBi YW5kd2lkdGggPiBYdGlsZSBsaW1pdAorCSAqIEVuYWJsZSBYLXRpbGUgcmVhbGF0ZWQgV0EKKwkg Ki8KKwlpZiAoeV90aWxlX2VuYWJsZWQgJiYgKGRpc3BsYXlfYndfcGVyID4gMjApKQorCQlpbnRl bF9zdGF0ZS0+d21fcmVzdWx0cy5tZW1fd2EgPSBXQVRFUk1BUktfV0FfWV9USUxFRDsKKwllbHNl IHsKKworCQlpZiAoZGV2X3ByaXYtPm1lbWRldl9pbmZvLnJhbmtfdmFsaWQpCisJCQlyYW5rID0g ZGV2X3ByaXYtPm1lbWRldl9pbmZvLnJhbms7CisJCWVsc2UKKwkJCXJhbmsgPSBEUkFNX0RVQUxf UkFOSzsgLyogQXNzdW1lIHdlIGFyZSBkdWFsIHJhbmsgKi8KKworCQlpZiAoKHJhbmsgPT0gRFJB TV9TSU5HTEVfUkFOSykgJiYgKG51bV9jaGFubmVsID09IDIpKQorCQkJeF90aWxlX3BlciA9IDM1 OworCQllbHNlCisJCQl4X3RpbGVfcGVyID0gNjA7CisKKwkJaWYgKGRpc3BsYXlfYndfcGVyID4g eF90aWxlX3BlcikKKwkJCWludGVsX3N0YXRlLT53bV9yZXN1bHRzLm1lbV93YSA9IFdBVEVSTUFS S19XQV9YX1RJTEVEOworCX0KKwlyZXR1cm47CisKK2V4aXQ6CisJaW50ZWxfc3RhdGUtPndtX3Jl c3VsdHMubWVtX3dhID0gV0FURVJNQVJLX1dBX05PTkU7Cit9CisKK3N0YXRpYyB2b2lkCiBza2xf Y29weV93bV9mb3JfcGlwZShzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqZHN0LAogCQkgICAgIHN0cnVj dCBza2xfd21fdmFsdWVzICpzcmMsCiAJCSAgICAgZW51bSBwaXBlIHBpcGUpCkBAIC00MTAxLDYg KzQyNDQsOCBAQCBza2xfY29tcHV0ZV93bShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp CiAJLyogQ2xlYXIgYWxsIGRpcnR5IGZsYWdzICovCiAJcmVzdWx0cy0+ZGlydHlfcGlwZXMgPSAw OwogCisJc2tsX3NldF9tZW1vcnlfYmFuZHdpZHRoX3dtX3dhKHN0YXRlKTsKKwogCXJldCA9IHNr bF9pbmNsdWRlX2FmZmVjdGVkX3BpcGVzKHN0YXRlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwotLSAKMi44LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=