From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ankit Navik Subject: [PATCH v4 3/3] drm/i915: Predictive governor to control eu/slice/subslice Date: Thu, 14 Mar 2019 14:06:55 +0530 Message-ID: <1552552615-6703-4-git-send-email-ankit.p.navik@intel.com> References: <1552552615-6703-1-git-send-email-ankit.p.navik@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 907486E231 for ; Thu, 14 Mar 2019 08:39:04 +0000 (UTC) In-Reply-To: <1552552615-6703-1-git-send-email-ankit.p.navik@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: ankit.p.navik@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUHJhdmVlbiBEaXdha2FyIDxwcmF2ZWVuLmRpd2FrYXJAaW50ZWwuY29tPgoKSGlnaCBy ZXNvbHV0aW9uIHRpbWVyIGlzIHVzZWQgZm9yIHByZWRpY3RpdmUgZ292ZXJub3IgdG8gY29udHJv bApldS9zbGljZS9zdWJzbGljZSBiYXNlZCBvbiB3b3JrbG9hZHMuCgpEZWJ1Z2ZzIGlzIHByb3Zp ZGVkIHRvIGVuYWJsZS9kaXNhYmxlL3VwZGF0ZSB0aW1lciBjb25maWd1cmF0aW9uCgpWMjoKICog Rml4IGNvZGUgc3R5bGUuCiAqIE1vdmUgcHJlZGljdGl2ZV9sb2FkX3RpbWVyIGludG8gYSBkcm1f aTkxNV9wcml2YXRlCiAgIHN0cnVjdHVyZS4KICogTWFrZSBnZW5lcmljIGZ1bmN0aW9uIHRvIHNl dCBvcHRpbXVtIGNvbmZpZy4gKFR2cnRrbyBVcnN1bGluKQoKVjM6CiAqIFJlYmFzZS4KICogRml4 IHJhY2UgY29uZGl0aW9uIGZvciBwcmVkaWN0aXZlIGxvYWQgc2V0LgogKiBBZGQgc2xhY2sgdG8g c3RhcnQgaHJ0aW1lciBmb3IgbW9yZSBwb3dlciBlZmZpY2llbnQuIChUdnJ0a28gVXJzdWxpbikK ClY0OgogKiBGaXggZGF0YSB0eXBlIGFuZCBpbml0aWFsaXphdGlvbiBvZiBtdXRleCB0byBwcm90 ZWN0IHByZWRpY3RpdmUgbG9hZCBzdGF0ZS4KICogTW92ZSBwcmVkaWN0aXZlIHRpbWVyIGluaXQg dG8gaTkxNV9nZW1faW5pdF9lYXJseS4gKFR2cnRrbyBVcnN1bGluKQogKiBNb3ZlIGRlYnVnZnMg dG8ga2VybmVsIHBhcmFtZXRlci4KCkNjOiBBcmF2aW5kYW4gTXV0aHVrdW1hciA8YXJhdmluZGFu Lm11dGh1a3VtYXJAaW50ZWwuY29tPgpDYzogWW9nZXNoIE1hcmF0aGUgPHlvZ2VzaC5tYXJhdGhl QGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUHJhdmVlbiBEaXdha2FyIDxwcmF2ZWVuLmRpd2Fr YXJAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBLZWRhciBKIEthcmFuamUgPGtlZGFyLmoua2Fy YW5qZUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFua2l0IE5hdmlrIDxhbmtpdC5wLm5hdmlr QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICB8ICAg MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8ICAgMSArCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAgNCArKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJh bXMuYyAgfCAgIDQgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldS5jICAgIHwgMTA5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgfCAgIDMgKwogOCBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldS5jCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZQppbmRleCAxNzg3ZTEyLi5iOWVhYWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAt MTE5LDYgKzExOSw3IEBAIGk5MTUteSArPSBpbnRlbF9hdWRpby5vIFwKIAkgIGludGVsX2NvbG9y Lm8gXAogCSAgaW50ZWxfY29tYm9fcGh5Lm8gXAogCSAgaW50ZWxfY29ubmVjdG9yLm8gXAorCSAg aW50ZWxfZGV1Lm8gXAogCSAgaW50ZWxfZGlzcGxheS5vIFwKIAkgIGludGVsX2RwaW9fcGh5Lm8g XAogCSAgaW50ZWxfZHBsbF9tZ3IubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmlu ZGV4IGNhOGZhNDQuLjFiOGY2MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBA IC00NjEyLDYgKzQ2MTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pbmZvX2xpc3QgaTkx NV9kZWJ1Z2ZzX2xpc3RbXSA9IHsKIAl7Imk5MTVfZHJyc19zdGF0dXMiLCBpOTE1X2RycnNfc3Rh dHVzLCAwfSwKIAl7Imk5MTVfcnBzX2Jvb3N0X2luZm8iLCBpOTE1X3Jwc19ib29zdF9pbmZvLCAw fSwKIH07CisKICNkZWZpbmUgSTkxNV9ERUJVR0ZTX0VOVFJJRVMgQVJSQVlfU0laRShpOTE1X2Rl YnVnZnNfbGlzdCkKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X2RlYnVnZnNfZmlsZXMgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggOTdjYjM2Yi4uZGZlODBkOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCkBAIC0xNTk2LDYgKzE1OTYsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSB7CiAJLyogb3B0aW1hbCBzbGljZS9zdWJzbGljZS9FVSBjb25maWdyYXRpb24gc3RhdGUgKi8K IAlzdHJ1Y3QgaTkxNV9zc2V1X29wdGltdW1fY29uZmlnICpvcHRfY29uZmlnOwogCisJLyogcHJv dGVjdHMgcHJlZGljdGl2ZSBsb2FkIHN0YXRlICovCisJc3RydWN0IG11dGV4IHByZWRfbXV0ZXg7 CisJc3RydWN0IGhydGltZXIgcHJlZF90aW1lcjsKIAlpbnQgcHJlZGljdGl2ZV9sb2FkX2VuYWJs ZTsKIAogCXVuc2lnbmVkIGludCBmc2JfZnJlcSwgbWVtX2ZyZXEsIGlzX2RkcjM7CkBAIC0yNjQ2 LDYgKzI2NDksNyBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBpOTE1X2NoaXBzZXRfdmFsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBpOTE1 X21jaF92YWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiB1bnNp Z25lZCBsb25nIGk5MTVfZ2Z4X3ZhbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp OwogZXh0ZXJuIHZvaWQgaTkxNV91cGRhdGVfZ2Z4X3ZhbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOworZXh0ZXJuIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHByZWRpY3RpdmVfbG9h ZF9jYihzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcik7CiBpbnQgdmx2X2ZvcmNlX2dmeF9jbG9jayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgb24pOwogCiBpbnQgaW50ZWxf ZW5naW5lc19pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDVjMWI5ZDQuLjE4YzUxOTUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwpAQCAtNTI2Nyw2ICs1MjY3LDkgQEAgaW50IGk5MTVfZ2VtX2luaXRfZWFybHko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJc3Bpbl9sb2NrX2luaXQoJmRl dl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKIAorCS8qIER5bmFtaWMgRVUgdGltZXIgaW5pdGlh bGl6YXRpb24gZm9yIHByZWRpY3RpdmUgbG9hZCAqLworCWludGVsX2RldV9pbml0KGRldl9wcml2 KTsKKwogCWVyciA9IGk5MTVfZ2VtZnNfaW5pdChkZXZfcHJpdik7CiAJaWYgKGVycikKIAkJRFJN X05PVEUoIlVuYWJsZSB0byBjcmVhdGUgYSBwcml2YXRlIHRtcGZzIG1vdW50LCBodWdlcGFnZSBz dXBwb3J0IHdpbGwgYmUgZGlzYWJsZWQoJWQpLlxuIiwgZXJyKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BhcmFtcy5jCmluZGV4IGI1YmUwYWIuLjc4NTdlOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w YXJhbXMuYwpAQCAtOTcsNiArOTcsMTAgQEAgaTkxNV9wYXJhbV9uYW1lZF91bnNhZmUoZGlzYWJs ZV9wb3dlcl93ZWxsLCBpbnQsIDA0MDAsCiAKIGk5MTVfcGFyYW1fbmFtZWRfdW5zYWZlKGVuYWJs ZV9pcHMsIGludCwgMDYwMCwgIkVuYWJsZSBJUFMgKGRlZmF1bHQ6IHRydWUpIik7CiAKK2k5MTVf cGFyYW1fbmFtZWRfdW5zYWZlKGRldV90aW1lcl9lbmFibGUsIGludCwgMDYwMCwKKwkiRW5hYmxl IGR5bmFtaWMgRVUgY29udHJvbCBmb3IgcG93ZXIgc2F2aW5ncyAiCisJIigwPWRpc2FibGUgZGV1 IHByZWRpY3RpdmUgdGltZXIgW2RlZmF1bHRdLCAxNTA9b3B0aW1hbCBkZXUgcHJlZGljdGl2ZSB0 aW1lcikiKTsKKwogaTkxNV9wYXJhbV9uYW1lZChmYXN0Ym9vdCwgaW50LCAwNjAwLAogCSJUcnkg dG8gc2tpcCB1bm5lY2Vzc2FyeSBtb2RlIHNldHMgYXQgYm9vdCB0aW1lICIKIAkiKDA9ZGlzYWJs ZWQsIDE9ZW5hYmxlZCkgIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w YXJhbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKaW5kZXggM2YxNGU5 OC4uYzUxZjU2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCkBAIC01NCw2ICs1NCw3 IEBAIHN0cnVjdCBkcm1fcHJpbnRlcjsKIAlwYXJhbShpbnQsIGRpc2FibGVfcG93ZXJfd2VsbCwg LTEpIFwKIAlwYXJhbShpbnQsIGVuYWJsZV9pcHMsIDEpIFwKIAlwYXJhbShpbnQsIGludmVydF9i cmlnaHRuZXNzLCAwKSBcCisJcGFyYW0oaW50LCBkZXVfdGltZXJfZW5hYmxlLCAwKSBcCiAJcGFy YW0oaW50LCBlbmFibGVfZ3VjLCAwKSBcCiAJcGFyYW0oaW50LCBndWNfbG9nX2xldmVsLCAtMSkg XAogCXBhcmFtKGNoYXIgKiwgZ3VjX2Zpcm13YXJlX3BhdGgsIE5VTEwpIFwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGV1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ2NTRkNQot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldS5jCkBAIC0w LDAgKzEsMTA5IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0 aG9yczoKKyAqICAgIEFua2l0IE5hdmlrIDxhbmtpdC5wLm5hdmlrQGludGVsLmNvbT4KKyAqLwor CisvKioKKyAqIERPQzogRHluYW1pYyBFVSBDb250cm9sIChERVVDKQorICoKKyAqIERFVUMgdHJp ZXMgdG8gcmUtY29uZmlndXJlIEVVIGFsbG9jYXRpb24gZHVyaW5nIHJ1bnRpbWUgYnkgcHJlZGlj dGl2ZSBsb2FkCisgKiBjYWxjdWxhdGlvbiBvZiBjb21tYW5kIHF1ZXVlIHRvIGdhaW4gcG93ZXIg c2F2aW5nLgorICogSXQgaXMgdHJhbnNwYXJlbnQgdG8gdXNlciBzcGFjZSBhbmQgY29tcGxldGVs eSBoYW5kbGVkIGluIHRoZSBrZXJuZWwuCisgKi8KKworI2luY2x1ZGUgImludGVsX2Rydi5oIgor I2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKy8qCisgKiBBbnl0aGluZyBhYm92ZSB0aHJlc2hvbGQg aXMgY29uc2lkZXJlZCBhcyBISUdIIGxvYWQsIGxlc3MgaXMgY29uc2lkZXJlZAorICogYXMgTE9X IGxvYWQgYW5kIGVxdWFsIGlzIGNvbnNpZGVyZWQgYXMgTUVESVVNIGxvYWQuCisgKgorICogVGhl IHRocmVzaG9sZCB2YWx1ZSBvZiB0aHJlZSBhY3RpdmUgcmVxdWVzdHMgcGVuZGluZy4KKyAqLwor I2RlZmluZSBQRU5ESU5HX1RIUkVTSE9MRF9NRURJVU0gMworCisjZGVmaW5lIFNMQUNLX1RJTUVS X05TRUMgMTAwMDAwMCAvKiBUaW1lciByYW5nZSBpbiBuYW5vIHNlY29uZCAqLworCitlbnVtIGhy dGltZXJfcmVzdGFydCBwcmVkaWN0aXZlX2xvYWRfY2Ioc3RydWN0IGhydGltZXIgKmhydGltZXIp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KKwkJCWNvbnRhaW5lcl9v ZihocnRpbWVyLCB0eXBlb2YoKmRldl9wcml2KSwgcHJlZF90aW1lcik7CisJc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eDsKKwllbnVtIGdlbV9sb2FkX3R5cGUgbG9hZF90eXBlOworCXVuc2ln bmVkIGludCByZXFfcGVuZGluZzsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3R4LCAmZGV2X3By aXYtPmNvbnRleHRzLmxpc3QsIGxpbmspIHsKKworCQlyZXFfcGVuZGluZyA9IGF0b21pY19yZWFk KCZjdHgtPnJlcV9jbnQpOworCisJCS8qCisJCSAqIFRyYW5zaXRpb25pbmcgdG8gbG93IHN0YXRl IHdoZW5ldmVyIHBlbmRpbmcgcmVxdWVzdCBpcyB6ZXJvCisJCSAqIHdvdWxkIGNhdXNlIHZhY2ls bGF0aW9uIGJldHdlZW4gbG93IGFuZCBoaWdoIHN0YXRlLgorCQkgKi8KKwkJaWYgKHJlcV9wZW5k aW5nID09IDApCisJCQljb250aW51ZTsKKworCQlpZiAocmVxX3BlbmRpbmcgPiBQRU5ESU5HX1RI UkVTSE9MRF9NRURJVU0pCisJCQlsb2FkX3R5cGUgPSBMT0FEX1RZUEVfSElHSDsKKwkJZWxzZSBp ZiAocmVxX3BlbmRpbmcgPT0gUEVORElOR19USFJFU0hPTERfTUVESVVNKQorCQkJbG9hZF90eXBl ID0gTE9BRF9UWVBFX01FRElVTTsKKwkJZWxzZQorCQkJbG9hZF90eXBlID0gTE9BRF9UWVBFX0xP VzsKKworCQlpOTE1X2dlbV9jb250ZXh0X3NldF9sb2FkX3R5cGUoY3R4LCBsb2FkX3R5cGUpOwor CX0KKworCWhydGltZXJfZm9yd2FyZF9ub3coaHJ0aW1lciwKKwkJCW1zX3RvX2t0aW1lKGRldl9w cml2LT5wcmVkaWN0aXZlX2xvYWRfZW5hYmxlKSk7CisKKwlyZXR1cm4gSFJUSU1FUl9SRVNUQVJU OworfQorCisvKioKKyAqIGludGVsX2RldV9pbml0IC0gSW5pdGlhbGl6ZSBkeW5hbWljIEVVCisg KiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKgorICogVGhpcyBmdWN0aW9uIGlz IGNhbGxlZCBhdCBkcml2ZXIgbG9hZAorICovCit2b2lkIGludGVsX2RldV9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlkZXZfcHJpdi0+cHJlZGljdGl2ZV9sb2Fk X2VuYWJsZSA9IGk5MTVfbW9kcGFyYW1zLmRldV90aW1lcl9lbmFibGU7CisJaHJ0aW1lcl9pbml0 KCZkZXZfcHJpdi0+cHJlZF90aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVfUkVM KTsKKwlkZXZfcHJpdi0+cHJlZF90aW1lci5mdW5jdGlvbiA9IHByZWRpY3RpdmVfbG9hZF9jYjsK KwltdXRleF9pbml0KCZkZXZfcHJpdi0+cHJlZF9tdXRleCk7CisKKwltdXRleF9sb2NrKCZkZXZf cHJpdi0+cHJlZF9tdXRleCk7CisKKwlpZiAoZGV2X3ByaXYtPnByZWRpY3RpdmVfbG9hZF9lbmFi bGUpIHsKKwkJaWYgKCFocnRpbWVyX2FjdGl2ZSgmZGV2X3ByaXYtPnByZWRfdGltZXIpKQorCQkJ aHJ0aW1lcl9zdGFydF9yYW5nZV9ucygmZGV2X3ByaXYtPnByZWRfdGltZXIsCisJCQltc190b19r dGltZShkZXZfcHJpdi0+cHJlZGljdGl2ZV9sb2FkX2VuYWJsZSksCisJCQlTTEFDS19USU1FUl9O U0VDLAorCQkJSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQpOworCX0gZWxzZSB7CisJCWhydGltZXJf Y2FuY2VsKCZkZXZfcHJpdi0+cHJlZF90aW1lcik7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+cHJlZF9tdXRleCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGI0ZTI5 YjguLjhlNmMxZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xOTkwLDYgKzE5OTAs OSBAQCB2b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9mYmNfaGFuZGxlX2ZpZm9fdW5kZXJydW5faXJxKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfZmJjX3Jlc2V0X3VuZGVy cnVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAKKy8qIGludGVsX2RldS5j ICovCit2b2lkIGludGVsX2RldV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7CisKIC8qIGludGVsX2hkbWkuYyAqLwogdm9pZCBpbnRlbF9oZG1pX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpOTE1X3JlZ190IGhkbWlfcmVnLAogCQkgICAgIGVu dW0gcG9ydCBwb3J0KTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZng=