From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 2/8] drm/i915: Introduce mode for asynchronous capture of OA counters Date: Mon, 22 Jun 2015 15:20:13 +0530 Message-ID: <1434966619-3979-3-git-send-email-sourab.gupta@intel.com> References: <1434966619-3979-1-git-send-email-sourab.gupta@intel.com> 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 ESMTP id BC8A86E5C7 for ; Mon, 22 Jun 2015 02:48:37 -0700 (PDT) In-Reply-To: <1434966619-3979-1-git-send-email-sourab.gupta@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: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhlIHBlcmYgZXZl bnQgZnJhbWV3b3JrIHN1cHBvcnRzIHBlcmlvZGljIGNhcHR1cmUgb2YgT0EgY291bnRlciBzbmFw c2hvdHMuIFRoZQpyYXcgT0EgcmVwb3J0cyBnZW5lcmF0ZWQgYnkgSFcgYXJlIGZvcndhcmRlZCB0 byB1c2Vyc3BhY2UgdXNpbmcgcGVyZiBhcGlzLiBUaGlzCnBhdGNoIGxvb2tzIHRvIGV4dGVuZCB0 aGUgcGVyZiBwbXUgaW50cm9kdWNlZCBlYXJsaWVyIHRvIHN1cHBvcnQgdGhlIGNhcHR1cmUgb2YK YXN5bmNocm9ub3VzIE9BIHNuYXBzaG90cyAoaW4gYWRkaXRpb24gdG8gcGVyaW9kaWMgc25hcHNo b3RzKS4gVGhlc2UKYXN5bmNocm9ub3VzIHNuYXBzaG90cyB3aWxsIGJlIGZvcndhcmRlZCBieSB0 aGUgcGVyZiBwbXUgdG8gdXNlcnNwYWNlIGFsb25nc2lkZQpwZXJpb2RpYyBzbmFwc2hvdHMgaW4g dGhlIHNhbWUgcGVyZiByaW5nYnVmZmVyLgpUaGlzIHBhdGNoIGludHJvZHVjZXMgZmllbGRzIGZv ciBlbmFibGluZyB0aGUgYXN5bmNocm9ub3VzIGNhcHR1cmUgbW9kZSBvZiBPQQpjb3VudGVyIHNu YXBzaG90cy4KClRoZXJlIG1heSBiZSB1c2VjYXNlcyB3aGVyZWluIHdlIG5lZWQgbW9yZSB0aGFu IHBlcmlvZGljIE9BIGNhcHR1cmUgbW9kZSB3aGljaAppcyBzdXBwb3J0ZWQgYnkgcGVyZl9ldmVu dCBjdXJyZW50bHkuIFdlIG1heSBuZWVkIHRvIGluc2VydCB0aGUgY29tbWFuZHMgaW50bwp0aGUg cmluZyB0byBkdW1wIHRoZSBPQSBjb3VudGVyIHNuYXBzaG90cyBhdCBzb21lIGFzeW5jaHJvbm91 cyBwb2ludHMgZHVyaW5nCndvcmtsb2FkIGV4ZWN1dGlvbi4KVGhpcyBtb2RlIGlzIHByaW1hcmls eSB1c2VkIGZvciB0d28gdXNlY2FzZXM6CiAgICAtIEFiaWxpdHkgdG8gY2FwdHVyZSBzeXN0ZW0g d2lkZSBtZXRyaWNzLiBUaGUgcmVwb3J0cyBjYXB0dXJlZCBzaG91bGQgYmUKICAgICAgYWJsZSB0 byBiZSBtYXBwZWQgYmFjayB0byBpbmRpdmlkdWFsIGNvbnRleHRzLgogICAgLSBBYmlsaXR5IHRv IGluamVjdCB0YWdzIGZvciB3b3JrLCBpbnRvIHRoZSByZXBvcnRzLiBUaGlzIHByb3ZpZGVzCiAg ICAgIHZpc2liaWxpdHkgaW50byB0aGUgbXVsdGlwbGUgc3RhZ2VzIG9mIHdvcmsgd2l0aGluIHNp bmdsZSBjb250ZXh0LgoKVGhlIGFzeW5jaHJvbm91cyByZXBvcnRzIGdlbmVyYXRlZCBpbiB0aGlz IHdheSAodXNpbmcgTUlfUkVQT1JUX1BFUkZfQ09VTlQKY29tbWFuZHMpLCB3aWxsIGJlIGZvcndh cmRlZCB0byB1c2Vyc3BhY2UgYWZ0ZXIgYXBwZW5kaW5nIGEgZm9vdGVyLCB3aGljaCB3aWxsCmhh dmUgdGhpcyBtZXRhZGF0YSBpbmZvcm1hdGlvbi4gVGhpcyB3aWxsIGVuYWJsZSB0aGUgdXNlY2Fz ZXMgbWVudGlvbmVkIGFib3ZlLgoKVGhpcyBtYXkgYWxzbyBiZSBzZWVuIGFzIGEgd2F5IHRvIG92 ZXJjb21lIGEgbGltaXRhdGlvbiBvZiBIYXN3ZWxsLCB3aGljaApkb2Vzbid0IHdyaXRlIG91dCBh IGNvbnRleHQgSUQgd2l0aCByZXBvcnRzIGFuZCBoYW5kbGluZyB0aGlzIGluIHRoZSBrZXJuZWwK bWFrZXMgc2Vuc2Ugd2hlbiB3ZSBwbGFuIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQnJvYWR3ZWxs IHdoaWNoIGRvZXNuJ3QgaW5jbHVkZQpjb250ZXh0IGlkIGluIHJlcG9ydHMuCgpUaGlzIHBhdGNo IGludHJvZHVjZXMgYW4gYWRkaXRpb25hbCBmaWVsZCBpbiB0aGUgb2EgYXR0ciBzdHJ1Y3R1cmUK Zm9yIHN1cHBvcnRpbmcgdGhpcyB0eXBlIG9mIGNhcHR1cmUuIFRoZSBkYXRhIHRodXMgY2FwdHVy ZWQgbmVlZHMgdG8gYmUgc3RvcmVkCmluIGEgc2VwYXJhdGUgYnVmZmVyLCB3aGljaCB3aWxsIGJl IGRpZmZlcmVudCBmcm9tIHRoZSBidWZmZXIgdXNlZCBvdGhlcndpc2UgZm9yCnBlcmlvZGljIE9B IGNhcHR1cmUgbW9kZS4gQWdhaW4gdGhpcyBidWZmZXIgYWRkcmVzcyB3aWxsIG5vdCBuZWVkIHRv IGJlIG1hcHBlZCB0bwpPQSB1bml0IHJlZ2lzdGVyIGFkZHJlc3NlcyBzdWNoIGFzIE9BU1RBVFVT MSwgT0FTVEFUVVMyIGFuZCBPQUJVRkZFUi4KClRoZSBzdWJzZXF1ZW50IHBhdGNoZXMgaW4gdGhl IHNlcmllcyBpbnRyb2R1Y2UgdGhlIGRhdGEgc3RydWN0dXJlcyBhbmQgbWVjaGFuaXNtCmZvciBm b3J3YXJkaW5nIHJlcG9ydHMgdG8gdXNlcnNwYWNlLCBhbmQgbWVjaGFuaXNtIGZvciBpbnNlcnRp bmcgY29ycmVzcG9uZGluZwpjb21tYW5kcyBpbnRvIHRoZSByaW5nYnVmZmVyLgoKU2lnbmVkLW9m Zi1ieTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgIDExICsrKysKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2FfcGVyZi5jIHwgMTIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgfCAgIDQgKy0KIDMgZmls ZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IGJhYTAyMzQuLmVlNGE1ZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaApAQCAtMTkzMyw2ICsxOTMzLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQl1 MzIgcGVyaW9kX2V4cG9uZW50OwogCiAJCXUzMiBtZXRyaWNzX3NldDsKKwkJYm9vbCBhc3luY19z YW1wbGVfbW9kZTsKIAogCQlzdHJ1Y3QgewogCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iajsKQEAgLTE5NDQsNiArMTk0NSwxNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJ CQlpbnQgZm9ybWF0X3NpemU7CiAJCQlzcGlubG9ja190IGZsdXNoX2xvY2s7CiAJCX0gb2FfYnVm ZmVyOworCisJCS8qIEZpZWxkcyBmb3IgYXN5bmNocm9ub3VzIE9BIHNuYXBzaG90IGNhcHR1cmUg Ki8KKwkJc3RydWN0IHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJCQl1 OCAqYWRkcjsKKwkJCXUzMiBoZWFkOworCQkJdTMyIHRhaWw7CisJCQlpbnQgZm9ybWF0OworCQkJ aW50IGZvcm1hdF9zaXplOworCQl9IG9hX2FzeW5jX2J1ZmZlcjsKIAl9IG9hX3BtdTsKICNlbmRp ZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCmluZGV4IGU3ZTBiMmIuLjQxOWI2YTUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCkBAIC0xNjYsNiArMTY2LDIwIEBAIHN0 YXRpYyB2b2lkIGZsdXNoX29hX3NuYXBzaG90cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiB9CiAKIHN0YXRpYyB2b2lkCitvYV9hc3luY19idWZmZXJfZGVzdHJveShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwltdXRleF9sb2NrKCZpOTE1LT5kZXYtPnN0cnVj dF9tdXRleCk7CisKKwl2dW5tYXAoaTkxNS0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5hZGRyKTsK KwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihpOTE1LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVy Lm9iaik7CisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmk5MTUtPm9hX3BtdS5vYV9hc3lu Y19idWZmZXIub2JqLT5iYXNlKTsKKworCWk5MTUtPm9hX3BtdS5vYV9hc3luY19idWZmZXIub2Jq ID0gTlVMTDsKKwlpOTE1LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLmFkZHIgPSBOVUxMOworCW11 dGV4X3VubG9jaygmaTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworfQorCitzdGF0aWMgdm9pZAog b2FfYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJbXV0 ZXhfbG9jaygmaTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMjA3LDYgKzIyMSw5IEBAIHN0 YXRpYyB2b2lkIGk5MTVfb2FfZXZlbnRfZGVzdHJveShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQp CiAJSTkxNV9XUklURShHRFRfQ0hJQ0tFTl9CSVRTLCAoSTkxNV9SRUFEKEdEVF9DSElDS0VOX0JJ VFMpICYKIAkJCQkgICAgICB+R1RfTk9BX0VOQUJMRSkpOwogCisJaWYgKGRldl9wcml2LT5vYV9w bXUuYXN5bmNfc2FtcGxlX21vZGUpCisJCW9hX2FzeW5jX2J1ZmZlcl9kZXN0cm95KGRldl9wcml2 KTsKKwogCW9hX2J1ZmZlcl9kZXN0cm95KGRldl9wcml2KTsKIAogCUJVR19PTihkZXZfcHJpdi0+ b2FfcG11LmV4Y2x1c2l2ZV9ldmVudCAhPSBldmVudCk7CkBAIC0yNDcsMjEgKzI2NCwxMSBAQCBm aW5pc2g6CiAJcmV0dXJuIGFkZHI7CiB9CiAKLXN0YXRpYyBpbnQgaW5pdF9vYV9idWZmZXIoc3Ry dWN0IHBlcmZfZXZlbnQgKmV2ZW50KQorc3RhdGljIGludCBhbGxvY19vYV9vYmooc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICoqb2JqKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCWNvbnRh aW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11LnBtdSk7CiAJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJvOwotCWludCByZXQ7Ci0KLQlCVUdfT04oIUlTX0hB U1dFTEwoZGV2X3ByaXYtPmRldikpOwotCUJVR19PTihkZXZfcHJpdi0+b2FfcG11Lm9hX2J1ZmZl ci5vYmopOwotCi0JcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2X3ByaXYt PmRldik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXNwaW5fbG9ja19pbml0KCZkZXZf cHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5mbHVzaF9sb2NrKTsKKwlpbnQgcmV0ID0gMDsKIAogCS8q IE5COiBXZSBvdmVyIGFsbG9jYXRlIHRoZSBPQSBidWZmZXIgZHVlIHRvIHRoZSB3YXkgcmF3IHNh bXBsZSBkYXRhCiAJICogZ2V0cyBjb3BpZWQgZnJvbSB0aGUgZ3B1IG1hcHBlZCBjaXJjdWxhciBi dWZmZXIgaW50byB0aGUgcGVyZgpAQCAtMjc3LDEzICsyODQsMTMgQEAgc3RhdGljIGludCBpbml0 X29hX2J1ZmZlcihzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJICogd2hlbiBhIHJlcG9ydCBp cyBhdCB0aGUgZW5kIG9mIHRoZSBncHUgbWFwcGVkIGJ1ZmZlciB3ZSBuZWVkIHRvCiAJICogcmVh ZCA0IGJ5dGVzIHBhc3QgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLgogCSAqLworCWludGVsX3J1bnRp bWVfcG1fZ2V0KGRldl9wcml2KTsKIAlibyA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXZfcHJp di0+ZGV2LCBPQV9CVUZGRVJfU0laRSArIFBBR0VfU0laRSk7CiAJaWYgKGJvID09IE5VTEwpIHsK IAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgT0EgYnVmZmVyXG4iKTsKIAkJcmV0ID0g LUVOT01FTTsKLQkJZ290byB1bmxvY2s7CisJCWdvdG8gb3V0OwogCX0KLQlkZXZfcHJpdi0+b2Ff cG11Lm9hX2J1ZmZlci5vYmogPSBibzsKIAogCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfY2Fj aGVfbGV2ZWwoYm8sIEk5MTVfQ0FDSEVfTExDKTsKIAlpZiAocmV0KQpAQCAtMjk0LDYgKzMwMSwz OCBAQCBzdGF0aWMgaW50IGluaXRfb2FfYnVmZmVyKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkK IAlpZiAocmV0KQogCQlnb3RvIGVycl91bnJlZjsKIAorCSpvYmogPSBibzsKKwlnb3RvIG91dDsK KworZXJyX3VucmVmOgorCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZiby0+ YmFzZSk7CitvdXQ6CisJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOworCXJldHVybiBy ZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF9vYV9idWZmZXIoc3RydWN0IHBlcmZfZXZlbnQgKmV2 ZW50KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CisJCWNvbnRhaW5l cl9vZihldmVudC0+cG11LCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11LnBtdSk7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKmJvOworCWludCByZXQ7CisKKwlCVUdfT04oIUlTX0hBU1dF TEwoZGV2X3ByaXYtPmRldikpOworCUJVR19PTihkZXZfcHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5v YmopOworCisJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2X3ByaXYtPmRl dik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXNwaW5fbG9ja19pbml0KCZkZXZfcHJp di0+b2FfcG11Lm9hX2J1ZmZlci5mbHVzaF9sb2NrKTsKKworCXJldCA9IGFsbG9jX29hX29iaihk ZXZfcHJpdiwgJmJvKTsKKwlpZiAocmV0KQorCQlnb3RvIHVubG9jazsKKworCWRldl9wcml2LT5v YV9wbXUub2FfYnVmZmVyLm9iaiA9IGJvOworCiAJZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIu Z3R0X29mZnNldCA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChibyk7CiAJZGV2X3ByaXYtPm9h X3BtdS5vYV9idWZmZXIuYWRkciA9IHZtYXBfb2FfYnVmZmVyKGJvKTsKIApAQCAtMzA5LDEwICsz NDgsMzUgQEAgc3RhdGljIGludCBpbml0X29hX2J1ZmZlcihzdHJ1Y3QgcGVyZl9ldmVudCAqZXZl bnQpCiAJCQkgZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuZ3R0X29mZnNldCwKIAkJCSBkZXZf cHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5hZGRyKTsKIAotCWdvdG8gdW5sb2NrOwordW5sb2NrOgor CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKKwlyZXR1cm4gcmV0 OworfQogCi1lcnJfdW5yZWY6Ci0JZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmJvLT5iYXNl KTsKK3N0YXRpYyBpbnQgaW5pdF9hc3luY19vYV9idWZmZXIoc3RydWN0IHBlcmZfZXZlbnQgKmV2 ZW50KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CisJCWNvbnRhaW5l cl9vZihldmVudC0+cG11LCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11LnBtdSk7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKmJvOworCWludCByZXQ7CisKKwlCVUdfT04oIUlTX0hBU1dF TEwoZGV2X3ByaXYtPmRldikpOworCUJVR19PTihkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1 ZmZlci5vYmopOworCisJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2X3By aXYtPmRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGFsbG9jX29hX29i aihkZXZfcHJpdiwgJmJvKTsKKwlpZiAocmV0KQorCQlnb3RvIHVubG9jazsKKworCWRldl9wcml2 LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLm9iaiA9IGJvOworCisJZGV2X3ByaXYtPm9hX3BtdS5v YV9hc3luY19idWZmZXIuYWRkciA9IHZtYXBfb2FfYnVmZmVyKGJvKTsKKworCURSTV9ERUJVR19E UklWRVIoIk9BIEFzeW5jIEJ1ZmZlciBpbml0aWFsaXplZCwgdmFkZHIgPSAlcCIsCisJCQkgZGV2 X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIuYWRkcik7CiAKIHVubG9jazoKIAltdXRleF91 bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CkBAIC00NDQsNiArNTA4LDkgQEAg c3RhdGljIGludCBpOTE1X29hX2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQog CiAJcmVwb3J0X2Zvcm1hdCA9IG9hX2F0dHIuZm9ybWF0OwogCWRldl9wcml2LT5vYV9wbXUub2Ff YnVmZmVyLmZvcm1hdCA9IHJlcG9ydF9mb3JtYXQ7CisJaWYgKG9hX2F0dHIuYmF0Y2hfYnVmZmVy X3NhbXBsZSkKKwkJZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIuZm9ybWF0ID0gcmVw b3J0X2Zvcm1hdDsKKwogCWRldl9wcml2LT5vYV9wbXUubWV0cmljc19zZXQgPSBvYV9hdHRyLm1l dHJpY3Nfc2V0OwogCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYtPmRldikpIHsKQEAgLTQ1Nyw2 ICs1MjQsOSBAQCBzdGF0aWMgaW50IGk5MTVfb2FfZXZlbnRfaW5pdChzdHJ1Y3QgcGVyZl9ldmVu dCAqZXZlbnQpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQlkZXZfcHJpdi0+b2FfcG11Lm9hX2J1 ZmZlci5mb3JtYXRfc2l6ZSA9IHNuYXBzaG90X3NpemU7CisJCWlmIChvYV9hdHRyLmJhdGNoX2J1 ZmZlcl9zYW1wbGUpCisJCQlkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5mb3JtYXRf c2l6ZSA9CisJCQkJc25hcHNob3Rfc2l6ZTsKIAogCQlpZiAob2FfYXR0ci5tZXRyaWNzX3NldCA+ IEk5MTVfT0FfTUVUUklDU19TRVRfTUFYKQogCQkJcmV0dXJuIC1FSU5WQUw7CkBAIC00NjUsNiAr NTM1LDE2IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50 ICpldmVudCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCisJLyoKKwkgKiBJbiBjYXNlIG9mIHBl ciBiYXRjaCBidWZmZXIgc2FtcGxpbmcsIHdlIG5lZWQgdG8gY2hlY2sgZm9yCisJICogQ0FQX1NZ U19BRE1JTiBjYXBhYmlsaXR5IGFzIHdlIHByb2ZpbGUgYWxsIHRoZSBydW5uaW5nIGNvbnRleHRz CisJICovCisJaWYgKG9hX2F0dHIuYmF0Y2hfYnVmZmVyX3NhbXBsZSkgeworCQlpZiAoIWNhcGFi bGUoQ0FQX1NZU19BRE1JTikpCisJCQlyZXR1cm4gLUVBQ0NFUzsKKwkJZGV2X3ByaXYtPm9hX3Bt dS5hc3luY19zYW1wbGVfbW9kZSA9IHRydWU7CisJfQorCiAJLyogU2luY2Ugd2UgYXJlIGxpbWl0 ZWQgdG8gYW4gZXhwb25lbnRpYWwgc2NhbGUgZm9yCiAJICogcHJvZ3JhbW1pbmcgdGhlIE9BIHNh bXBsaW5nIHBlcmlvZCB3ZSBkb24ndCBhbGxvdyB1c2Vyc3BhY2UKIAkgKiB0byBwYXNzIGEgcHJl Y2lzZSBhdHRyLnNhbXBsZV9wZXJpb2QuICovCkBAIC01MjgsNiArNjA4LDEyIEBAIHN0YXRpYyBp bnQgaTkxNV9vYV9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCisJaWYgKG9hX2F0dHIuYmF0Y2hfYnVmZmVyX3NhbXBsZSkgewor CQlyZXQgPSBpbml0X2FzeW5jX29hX2J1ZmZlcihldmVudCk7CisJCWlmIChyZXQpCisJCQlyZXR1 cm4gcmV0OworCX0KKwogCUJVR19PTihkZXZfcHJpdi0+b2FfcG11LmV4Y2x1c2l2ZV9ldmVudCk7 CiAJZGV2X3ByaXYtPm9hX3BtdS5leGNsdXNpdmVfZXZlbnQgPSBldmVudDsKIApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oCmluZGV4IDk5MmUxZTkuLjM1NGRjM2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTkyLDcgKzky LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1X29hX2F0dHIgewogCV9fdTMyIGN0eF9pZDsK IAogCV9fdTY0IHNpbmdsZV9jb250ZXh0IDogMSwKLQkgICAgICBfX3Jlc2VydmVkXzEgOiA2MzsK KwlfX3Jlc2VydmVkXzEgOiAzMTsKKwlfX3UzMiBiYXRjaF9idWZmZXJfc2FtcGxlOjEsCisJX19y ZXNlcnZlZF8yOjMxOwogfSBkcm1faTkxNV9vYV9hdHRyX3Q7CiAKIC8qIEhlYWRlciBmb3IgUEVS Rl9SRUNPUkRfREVWSUNFIHR5cGUgZXZlbnRzICovCi0tIAoxLjguNS4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=