From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 7/7] drm/i915: Add support for retrieving MMIO register values in Gen Perf PMU Date: Mon, 22 Jun 2015 15:25:09 +0530 Message-ID: <1434966909-4113-8-git-send-email-sourab.gupta@intel.com> References: <1434966909-4113-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 48DC96E73C for ; Mon, 22 Jun 2015 02:53:32 -0700 (PDT) In-Reply-To: <1434966909-4113-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 RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBh ZGRzIHN1cHBvcnQgZm9yIHJldHJpZXZpbmcgTU1JTyByZWdpc3RlciB2YWx1ZXMgdGhyb3VnaCBH ZW4gUGVyZiBQTVUKaW50ZXJmYWNlLiBUaHJvdWdoIHRoaXMgaW50ZXJmYWNlLCBub3cgdGhlIHVz ZXJzcGFjZSBjYW4gcmVxdWVzdCB1cHRvIDggTU1JTwpyZWdpc3RlciB2YWx1ZXMgdG8gYmUgZHVt cGVkLCBhbG9uZ3dpdGggdGhlIHRpbWVzdGFtcCB2YWx1ZXMgd2hpY2ggd2VyZSBkdW1wZWQKZWFy bGllciBhY3Jvc3MgdGhlIGJhdGNoYnVmZmVyIGJvdW5kYXJpZXMuClVzZXJzcGFjZSBjYW4gcGFz cyB0aGUgYWRkcmVzc2VzIG9mIHVwdG8gOCBNTUlPIHJlZ2lzdGVycyB0aHJvdWdoIHBlcmYgYXR0 cgpjb25maWcuIFRoZSBjb21tYW5kcyB0byBkdW1wIHRoZSB2YWx1ZXMgb2YgdGhlc2UgTU1JTyBy ZWdpc3RlcnMgYXJlIHRoZW4KaW5zZXJ0ZWQgaW50byB0aGUgcmluZyBhbG9uZ3dpdGggY29tbWFu ZHMgdG8gZHVtcCB0aGUgdGltZXN0YW1wcy4KClNpZ25lZC1vZmYtYnk6IFNvdXJhYiBHdXB0YSA8 c291cmFiLmd1cHRhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMgfCAx MTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmggICAgICAgICB8ICAgOSArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2Vy dGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGEw ZTFkMTcuLjFmODYzNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTcxOCw5ICsxNzE4 LDEwIEBAIHN0cnVjdCBkcm1faTkxNV90c19ub2RlX2luZm8gewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxOwogfTsKIAotc3RydWN0IGRybV9pOTE1X3RzX25vZGUgeworc3RydWN0 IGRybV9pOTE1X3RzX21taW9fbm9kZSB7CiAJLyogZW5zdXJlIHRpbWVzdGFtcCBzdGFydHMgb24g YSBxd29yZCBib3VuZGFyeSAqLwogCXN0cnVjdCBkcm1faTkxNV90c19kYXRhIHRpbWVzdGFtcDsK KwlfX3UzMiBtbWlvWzhdOwogCXN0cnVjdCBkcm1faTkxNV90c19ub2RlX2luZm8gbm9kZV9pbmZv OwogfTsKICNlbmRpZgpAQCAtMjAyNCw2ICsyMDI1LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgewogCQlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29ya190aW1lcjsKIAkJc3RydWN0IHdvcmtfc3Ry dWN0IHdvcmtfZXZlbnRfc3RvcDsKIAkJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGU7CisJCXUz MiBtbWlvX2xpc3RbOF07CiAJfSBnZW5fcG11OwogCiAJc3RydWN0IGxpc3RfaGVhZCBwcm9maWxl X2NtZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMKaW5kZXggZWQwYmRjOS4uNDY1ZTgy MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMKQEAgLTExMywxMCArMTEzLDEwIEBA IHZvaWQgaTkxNV9nZW5faW5zZXJ0X2NtZF90cyhzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZiwgdTMyIGN0eF9pZCwKIAkJCWRldl9wcml2LT5nZW5fcG11LmJ1ZmZlci5hZGRyOwogCXZv aWQgKmRhdGFfcHRyID0gKHU4ICopcXVldWVfaGRyICsgcXVldWVfaGRyLT5kYXRhX29mZnNldDsK IAlpbnQgZGF0YV9zaXplID0JKHF1ZXVlX2hkci0+c2l6ZV9pbl9ieXRlcyAtIHF1ZXVlX2hkci0+ ZGF0YV9vZmZzZXQpOwotCXUzMiBub2RlX29mZnNldCwgdGltZXN0YW1wX29mZnNldCwgYWRkciA9 IDA7Ci0JaW50IHJldDsKKwl1MzIgbm9kZV9vZmZzZXQsIHRpbWVzdGFtcF9vZmZzZXQsIG1taW9f b2Zmc2V0LCBhZGRyID0gMDsKKwlpbnQgcmV0LCBpID0gMDsKIAotCXN0cnVjdCBkcm1faTkxNV90 c19ub2RlICpub2RlcyA9IGRhdGFfcHRyOworCXN0cnVjdCBkcm1faTkxNV90c19tbWlvX25vZGUg Km5vZGVzID0gZGF0YV9wdHI7CiAJaW50IG51bV9ub2RlcyA9IDA7CiAJaW50IGluZGV4ID0gMDsK IApAQCAtMTI0LDEyICsxMjQsMTQgQEAgdm9pZCBpOTE1X2dlbl9pbnNlcnRfY21kX3RzKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCB1MzIgY3R4X2lkLAogCWluZGV4ID0gcXVldWVf aGRyLT5ub2RlX2NvdW50ICUgbnVtX25vZGVzOwogCiAJdGltZXN0YW1wX29mZnNldCA9IG9mZnNl dG9mKHN0cnVjdCBkcm1faTkxNV90c19kYXRhLCB0c19sb3cpOworCW1taW9fb2Zmc2V0ID0KKwkJ b2Zmc2V0b2Yoc3RydWN0IGRybV9pOTE1X3RzX21taW9fbm9kZSwgbW1pbyk7CiAKIAlub2RlX29m ZnNldCA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChkZXZfcHJpdi0+Z2VuX3BtdS5idWZmZXIu b2JqKSArCiAJCQlxdWV1ZV9oZHItPmRhdGFfb2Zmc2V0ICsKLQkJCWluZGV4ICogc2l6ZW9mKHN0 cnVjdCBkcm1faTkxNV90c19ub2RlKTsKKwkJCWluZGV4ICogc2l6ZW9mKHN0cnVjdCBkcm1faTkx NV90c19tbWlvX25vZGUpOwogCWFkZHIgPSBub2RlX29mZnNldCArCi0JCW9mZnNldG9mKHN0cnVj dCBkcm1faTkxNV90c19ub2RlLCB0aW1lc3RhbXApICsKKwkJb2Zmc2V0b2Yoc3RydWN0IGRybV9p OTE1X3RzX21taW9fbm9kZSwgdGltZXN0YW1wKSArCiAJCXRpbWVzdGFtcF9vZmZzZXQ7CiAKIAlp ZiAocmluZy0+aWQgPT0gUkNTKSB7CkBAIC0xNTgsNiArMTYwLDI3IEBAIHZvaWQgaTkxNV9nZW5f aW5zZXJ0X2NtZF90cyhzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgdTMyIGN0eF9p ZCwKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOyAvKiBpbW0gaGlnaCwgbXVzdCBiZSB6ZXJv ICovCiAJCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAl9CisKKwlmb3IgKGkgPSAwOyBpIDwg ODsgaSsrKSB7CisJCWlmICgwID09IGRldl9wcml2LT5nZW5fcG11Lm1taW9fbGlzdFtpXSkKKwkJ CWJyZWFrOworCisJCWFkZHIgPSBub2RlX29mZnNldCArIG1taW9fb2Zmc2V0ICsKKwkJCWkgKiBz aXplb2YoZGV2X3ByaXYtPmdlbl9wbXUubW1pb19saXN0W2ldKTsKKworCQlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHJpbmcsIDQpOworCQlpZiAocmV0KQorCQkJcmV0dXJuOworCisJCWludGVsX3Jp bmdfZW1pdChyaW5nLAorCQkJCU1JX1NUT1JFX1JFR0lTVEVSX01FTSgxKSB8CisJCQkJTUlfU1JN X0xSTV9HTE9CQUxfR1RUKTsKKwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGRldl9wcml2LT5nZW5f cG11Lm1taW9fbGlzdFtpXSk7CisJCWludGVsX3JpbmdfZW1pdChyaW5nLCBhZGRyKTsKKwkJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOworCQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7 CisJfQorCiAJbm9kZV9pbmZvID0gJm5vZGVzW2luZGV4XS5ub2RlX2luZm87CiAJaTkxNV9nZW1f cmVxdWVzdF9hc3NpZ24oJm5vZGVfaW5mby0+cmVxLAogCQkJCXJpbmctPm91dHN0YW5kaW5nX2xh enlfcmVxdWVzdCk7CkBAIC0zMTQsMTEgKzMzNywxMSBAQCBzdGF0aWMgdm9pZCBpbml0X2dlbl9w bXVfYnVmX3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogc3Rh dGljIHZvaWQgZm9yd2FyZF9vbmVfZ2VuX3BtdV9zYW1wbGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAotCQkJCXN0cnVjdCBkcm1faTkxNV90c19ub2RlICpub2RlKQorCQkJCXN0 cnVjdCBkcm1faTkxNV90c19tbWlvX25vZGUgKm5vZGUpCiB7CiAJc3RydWN0IHBlcmZfc2FtcGxl X2RhdGEgZGF0YTsKIAlzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQgPSBkZXZfcHJpdi0+Z2VuX3Bt dS5leGNsdXNpdmVfZXZlbnQ7Ci0JaW50IHNuYXBzaG90X3NpemUgPSBzaXplb2Yoc3RydWN0IGRy bV9pOTE1X3RzX3VzZXJub2RlKTsKKwlpbnQgc25hcHNob3Rfc2l6ZSA9IHNpemVvZihzdHJ1Y3Qg ZHJtX2k5MTVfdHNfbW1pb191c2Vybm9kZSk7CiAJc3RydWN0IHBlcmZfcmF3X3JlY29yZCByYXc7 CiAKIAlwZXJmX3NhbXBsZV9kYXRhX2luaXQoJmRhdGEsIDAsIGV2ZW50LT5ody5sYXN0X3Blcmlv ZCk7CkBAIC0zMzgsMTEgKzM2MSwxMSBAQCB2b2lkIGk5MTVfZ2VuX3BtdV93YWl0X2dwdShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGRybV9pOTE1X3RzX3F1ZXVl X2hlYWRlciAqaGRyID0KIAkJKHN0cnVjdCBkcm1faTkxNV90c19xdWV1ZV9oZWFkZXIgKikKIAkJ ZGV2X3ByaXYtPmdlbl9wbXUuYnVmZmVyLmFkZHI7Ci0Jc3RydWN0IGRybV9pOTE1X3RzX25vZGUg KmZpcnN0X25vZGUsICpub2RlOworCXN0cnVjdCBkcm1faTkxNV90c19tbWlvX25vZGUgKmZpcnN0 X25vZGUsICpub2RlOwogCWludCBoZWFkLCB0YWlsLCBudW1fbm9kZXMsIHJldDsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCWZpcnN0X25vZGUgPSAoc3RydWN0IGRybV9p OTE1X3RzX25vZGUgKikKKwlmaXJzdF9ub2RlID0gKHN0cnVjdCBkcm1faTkxNV90c19tbWlvX25v ZGUgKikKIAkJCSgoY2hhciAqKWhkciArIGhkci0+ZGF0YV9vZmZzZXQpOwogCW51bV9ub2RlcyA9 IChoZHItPnNpemVfaW5fYnl0ZXMgLSBoZHItPmRhdGFfb2Zmc2V0KSAvCiAJCQlzaXplb2YoKm5v ZGUpOwpAQCAtMzc1LDE0ICszOTgsMTQgQEAgdm9pZCBmb3J3YXJkX2dlbl9wbXVfc25hcHNob3Rz X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJc3RydWN0IGRybV9pOTE1X3RzX3F1 ZXVlX2hlYWRlciAqaGRyID0KIAkJKHN0cnVjdCBkcm1faTkxNV90c19xdWV1ZV9oZWFkZXIgKikK IAkJZGV2X3ByaXYtPmdlbl9wbXUuYnVmZmVyLmFkZHI7Ci0Jc3RydWN0IGRybV9pOTE1X3RzX25v ZGUgKmZpcnN0X25vZGUsICpub2RlOworCXN0cnVjdCBkcm1faTkxNV90c19tbWlvX25vZGUgKmZp cnN0X25vZGUsICpub2RlOwogCWludCBoZWFkLCB0YWlsLCBudW1fbm9kZXMsIHJldDsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAogCWlmIChkZXZfcHJpdi0+Z2VuX3BtdS5l dmVudF9hY3RpdmUgPT0gZmFsc2UpCiAJCXJldHVybjsKIAotCWZpcnN0X25vZGUgPSAoc3RydWN0 IGRybV9pOTE1X3RzX25vZGUgKikKKwlmaXJzdF9ub2RlID0gKHN0cnVjdCBkcm1faTkxNV90c19t bWlvX25vZGUgKikKIAkJCSgoY2hhciAqKWhkciArIGhkci0+ZGF0YV9vZmZzZXQpOwogCW51bV9u b2RlcyA9IChoZHItPnNpemVfaW5fYnl0ZXMgLSBoZHItPmRhdGFfb2Zmc2V0KSAvCiAJCQlzaXpl b2YoKm5vZGUpOwpAQCAtNDIxLDExICs0NDQsMTEgQEAgdm9pZCBpOTE1X2dlbl9wbXVfc3RvcF93 b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCXN0cnVjdCBkcm1faTkxNV90c19x dWV1ZV9oZWFkZXIgKmhkciA9CiAJCShzdHJ1Y3QgZHJtX2k5MTVfdHNfcXVldWVfaGVhZGVyICop CiAJCWRldl9wcml2LT5nZW5fcG11LmJ1ZmZlci5hZGRyOwotCXN0cnVjdCBkcm1faTkxNV90c19u b2RlICpmaXJzdF9ub2RlLCAqbm9kZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfdHNfbW1pb19ub2RlICpm aXJzdF9ub2RlLCAqbm9kZTsKIAlpbnQgaGVhZCwgdGFpbCwgbnVtX25vZGVzLCByZXQ7CiAJc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQlmaXJzdF9ub2RlID0gKHN0cnVjdCBk cm1faTkxNV90c19ub2RlICopCisJZmlyc3Rfbm9kZSA9IChzdHJ1Y3QgZHJtX2k5MTVfdHNfbW1p b19ub2RlICopCiAJCQkoKGNoYXIgKiloZHIgKyBoZHItPmRhdGFfb2Zmc2V0KTsKIAludW1fbm9k ZXMgPSAoaGRyLT5zaXplX2luX2J5dGVzIC0gaGRyLT5kYXRhX29mZnNldCkgLwogCQkJc2l6ZW9m KCpub2RlKTsKQEAgLTE0NjcsMTUgKzE0OTAsODUgQEAgc3RhdGljIGludCBpOTE1X29hX2V2ZW50 X2V2ZW50X2lkeChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJcmV0dXJuIDA7CiB9CiAKK3N0 YXRpYyBpbnQgaTkxNV9nZW5fcG11X2NvcHlfYXR0cihzdHJ1Y3QgZHJtX2k5MTVfZ2VuX3BtdV9h dHRyIF9fdXNlciAqdWF0dHIsCisJCQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW5fcG11X2F0dHIg KmF0dHIpCit7CisJdTMyIHNpemU7CisJaW50IHJldDsKKworCWlmICghYWNjZXNzX29rKFZFUklG WV9XUklURSwgdWF0dHIsIEk5MTVfR0VOX1BNVV9BVFRSX1NJWkVfVkVSMCkpCisJCXJldHVybiAt RUZBVUxUOworCisJLyoKKwkgKiB6ZXJvIHRoZSBmdWxsIHN0cnVjdHVyZSwgc28gdGhhdCBhIHNo b3J0IGNvcHkgd2lsbCBiZSBuaWNlLgorCSAqLworCW1lbXNldChhdHRyLCAwLCBzaXplb2YoKmF0 dHIpKTsKKworCXJldCA9IGdldF91c2VyKHNpemUsICZ1YXR0ci0+c2l6ZSk7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKworCWlmIChzaXplID4gUEFHRV9TSVpFKQkvKiBzaWxseSBsYXJnZSAq LworCQlnb3RvIGVycl9zaXplOworCisJaWYgKHNpemUgPCBJOTE1X0dFTl9QTVVfQVRUUl9TSVpF X1ZFUjApCisJCWdvdG8gZXJyX3NpemU7CisKKwkvKgorCSAqIElmIHdlJ3JlIGhhbmRlZCBhIGJp Z2dlciBzdHJ1Y3QgdGhhbiB3ZSBrbm93IG9mLAorCSAqIGVuc3VyZSBhbGwgdGhlIHVua25vd24g Yml0cyBhcmUgMCAtIGkuZS4gbmV3CisJICogdXNlci1zcGFjZSBkb2VzIG5vdCByZWx5IG9uIGFu eSBrZXJuZWwgZmVhdHVyZQorCSAqIGV4dGVuc2lvbnMgd2UgZG9udCBrbm93IGFib3V0IHlldC4K KwkgKi8KKwlpZiAoc2l6ZSA+IHNpemVvZigqYXR0cikpIHsKKwkJdW5zaWduZWQgY2hhciBfX3Vz ZXIgKmFkZHI7CisJCXVuc2lnbmVkIGNoYXIgX191c2VyICplbmQ7CisJCXVuc2lnbmVkIGNoYXIg dmFsOworCisJCWFkZHIgPSAodm9pZCBfX3VzZXIgKil1YXR0ciArIHNpemVvZigqYXR0cik7CisJ CWVuZCAgPSAodm9pZCBfX3VzZXIgKil1YXR0ciArIHNpemU7CisKKwkJZm9yICg7IGFkZHIgPCBl bmQ7IGFkZHIrKykgeworCQkJcmV0ID0gZ2V0X3VzZXIodmFsLCBhZGRyKTsKKwkJCWlmIChyZXQp CisJCQkJcmV0dXJuIHJldDsKKwkJCWlmICh2YWwpCisJCQkJZ290byBlcnJfc2l6ZTsKKwkJfQor CQlzaXplID0gc2l6ZW9mKCphdHRyKTsKKwl9CisKKwlyZXQgPSBjb3B5X2Zyb21fdXNlcihhdHRy LCB1YXR0ciwgc2l6ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKK291dDoKKwly ZXR1cm4gcmV0OworCitlcnJfc2l6ZToKKwlwdXRfdXNlcihzaXplb2YoKmF0dHIpLCAmdWF0dHIt PnNpemUpOworCXJldCA9IC1FMkJJRzsKKwlnb3RvIG91dDsKK30KKwogc3RhdGljIGludCBpOTE1 X2dlbl9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCQljb250YWluZXJfb2YoZXZlbnQtPnBtdSwgdHlw ZW9mKCpkZXZfcHJpdiksIGdlbl9wbXUucG11KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VuX3BtdV9h dHRyIGdlbl9hdHRyOwogCWludCByZXQgPSAwOwogCiAJaWYgKGV2ZW50LT5hdHRyLnR5cGUgIT0g ZXZlbnQtPnBtdS0+dHlwZSkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKKwlyZXQgPSBpOTE1X2dlbl9w bXVfY29weV9hdHRyKHRvX3VzZXJfcHRyKGV2ZW50LT5hdHRyLmNvbmZpZyksCisJCQkJJmdlbl9h dHRyKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJbWVtY3B5KGRldl9wcml2LT5nZW5f cG11Lm1taW9fbGlzdCwgZ2VuX2F0dHIubW1pb19saXN0LAorCQkJc2l6ZW9mKGRldl9wcml2LT5n ZW5fcG11Lm1taW9fbGlzdCkpOworCiAJLyogVG8gYXZvaWQgdGhlIGNvbXBsZXhpdHkgb2YgaGF2 aW5nIHRvIGFjY3VyYXRlbHkgZmlsdGVyCiAJICogZGF0YSBhbmQgbWFyc2hhbCB0byB0aGUgYXBw cm9wcmlhdGUgY2xpZW50CiAJICogd2UgY3VycmVudGx5IG9ubHkgYWxsb3cgZXhjbHVzaXZlIGFj Y2VzcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IGE3ZGE0MjEuLjhkNGRlZWMgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmgKQEAgLTgwLDYgKzgwLDcgQEAKICNkZWZpbmUgSTkxNV9PQV9NRVRSSUNTX1NFVF9NQVgJ CQlJOTE1X09BX01FVFJJQ1NfU0VUX1NBTVBMRVJfQkFMQU5DRQogCiAjZGVmaW5lIEk5MTVfT0Ff QVRUUl9TSVpFX1ZFUjAJCTMyICAvKiBzaXplb2YgZmlyc3QgcHVibGlzaGVkIHN0cnVjdCAqLwor I2RlZmluZSBJOTE1X0dFTl9QTVVfQVRUUl9TSVpFX1ZFUjAJMzYgIC8qIHNpemVvZiBmaXJzdCBw dWJsaXNoZWQgc3RydWN0ICovCiAKIHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9vYV9hdHRyIHsK IAlfX3UzMiBzaXplOwpAQCAtOTcsNiArOTgsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1 X29hX2F0dHIgewogCV9fcmVzZXJ2ZWRfMjozMTsKIH0gZHJtX2k5MTVfb2FfYXR0cl90OwogCitz dHJ1Y3QgZHJtX2k5MTVfZ2VuX3BtdV9hdHRyIHsKKwlfX3UzMiBzaXplOworCV9fdTMyIG1taW9f bGlzdFs4XTsKK307CisKIC8qIEhlYWRlciBmb3IgUEVSRl9SRUNPUkRfREVWSUNFIHR5cGUgZXZl bnRzICovCiB0eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfb2FfZXZlbnRfaGVhZGVyIHsKIAlfX3Uz MiB0eXBlOwpAQCAtMTQzLDkgKzE0OSwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfdHNfZGF0YSB7CiAJ X191MzIgdHNfaGlnaDsKIH07CiAKLXN0cnVjdCBkcm1faTkxNV90c191c2Vybm9kZSB7CitzdHJ1 Y3QgZHJtX2k5MTVfdHNfbW1pb191c2Vybm9kZSB7CiAJLyogZW5zdXJlIHRpbWVzdGFtcCBzdGFy dHMgb24gYSBxd29yZCBib3VuZGFyeSAqLwogCXN0cnVjdCBkcm1faTkxNV90c19kYXRhIHRpbWVz dGFtcDsKKwlfX3UzMiBtbWlvWzhdOwogCXN0cnVjdCBkcm1faTkxNV90c19ub2RlX2Zvb3RlciBu b2RlX2luZm87CiB9OwogCi0tIAoxLjguNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=