From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kim, Jonathan" Subject: [PATCH] drm/amdgpu: add pmu counters Date: Tue, 18 Jun 2019 21:34:05 +0000 Message-ID: <20190618213348.4572-1-jonathan.kim@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kim, Jonathan" djI6IGZpeGVkIG1pc3NpbmcgYnJlYWsgaW4gc3dpdGNoIHN0YXRlbWVudA0KDQphZGQgcG11IGNv dW50ZXJzDQoNCkNoYW5nZS1JZDogSTFhY2EyNzFmZDEyY2FiY2UwY2NmYzA3NmY3NzFjZGUyZDRj YWRkNTQNClNpZ25lZC1vZmYtYnk6IEpvbmF0aGFuIEtpbSA8Sm9uYXRoYW4uS2ltQGFtZC5jb20+ DQotLS0NCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZSAgICAgICAgfCAgIDIg Ky0NCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgfCAgIDMgKw0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8ICAgNiArDQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtdS5jICAgIHwgMzAyICsrKysrKysrKysr KysrKysrKysrKw0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbXUuaCAgICB8 ICAzNyArKysNCiA1IGZpbGVzIGNoYW5nZWQsIDM0OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9wbXUuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfcG11LmgNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01h a2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUNCmluZGV4IDU3Y2U0 NGNjMzIyNi4uNGM5ZmQyNjQ1ZjY0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvTWFrZWZpbGUNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxl DQpAQCAtNTQsNyArNTQsNyBAQCBhbWRncHUteSArPSBhbWRncHVfZGV2aWNlLm8gYW1kZ3B1X2tt cy5vIFwNCiAJYW1kZ3B1X2d0dF9tZ3IubyBhbWRncHVfdnJhbV9tZ3IubyBhbWRncHVfdmlydC5v IGFtZGdwdV9hdG9tZmlybXdhcmUubyBcDQogCWFtZGdwdV92Zl9lcnJvci5vIGFtZGdwdV9zY2hl ZC5vIGFtZGdwdV9kZWJ1Z2ZzLm8gYW1kZ3B1X2lkcy5vIFwNCiAJYW1kZ3B1X2dtYy5vIGFtZGdw dV94Z21pLm8gYW1kZ3B1X2NzYS5vIGFtZGdwdV9yYXMubyBhbWRncHVfdm1fY3B1Lm8gXA0KLQlh bWRncHVfdm1fc2RtYS5vDQorCWFtZGdwdV92bV9zZG1hLm8gYW1kZ3B1X3BtdS5vDQogDQogIyBh ZGQgYXNpYyBzcGVjaWZpYyBibG9jaw0KIGFtZGdwdS0kKENPTkZJR19EUk1fQU1ER1BVX0NJSykr PSBjaWsubyBjaWtfaWgubyBrdl9zbWMubyBrdl9kcG0ubyBcDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHUuaA0KaW5kZXggNDk0NmQ5ZWNjM2UzLi44ZWYyYWM1OWZmMDQgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaA0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgNCkBAIC05NjIsNiArOTYyLDkgQEAgc3RydWN0IGFtZGdw dV9kZXZpY2Ugew0KIAlsb25nCQkJCWNvbXB1dGVfdGltZW91dDsNCiANCiAJdWludDY0X3QJCQl1 bmlxdWVfaWQ7DQorDQorCS8qIHNwaW4gbG9jayBmb3IgcG11IHZpYSBwZXJmIGV2ZW50cyAqLw0K KwlyYXdfc3BpbmxvY2tfdAlwbXVfbG9jazsNCiB9Ow0KIA0KIHN0YXRpYyBpbmxpbmUgc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFtZGdwdV90dG1fYWRldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl dikNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCmluZGV4IDlk MWI4ZDY0NjY2MS4uNzY2M2M1ZDRkMGUxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZGV2aWNlLmMNCkBAIC02MSw2ICs2MSw3IEBADQogDQogI2luY2x1ZGUgImFtZGdw dV94Z21pLmgiDQogI2luY2x1ZGUgImFtZGdwdV9yYXMuaCINCisjaW5jbHVkZSAiYW1kZ3B1X3Bt dS5oIg0KIA0KIE1PRFVMRV9GSVJNV0FSRSgiYW1kZ3B1L3ZlZ2ExMF9ncHVfaW5mby5iaW4iKTsN CiBNT0RVTEVfRklSTVdBUkUoImFtZGdwdS92ZWdhMTJfZ3B1X2luZm8uYmluIik7DQpAQCAtMjc0 Niw2ICsyNzQ3LDEwIEBAIGludCBhbWRncHVfZGV2aWNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsDQogCQlyZXR1cm4gcjsNCiAJfQ0KIA0KKwlyID0gYW1kZ3B1X3BtdV9pbml0KGFk ZXYpOw0KKwlpZiAocikNCisJCWRldl9lcnIoYWRldi0+ZGV2LCAiYW1kZ3B1X3BtdV9pbml0IGZh aWxlZFxuIik7DQorDQogCXJldHVybiAwOw0KIA0KIGZhaWxlZDoNCkBAIC0yODE0LDYgKzI4MTks NyBAQCB2b2lkIGFtZGdwdV9kZXZpY2VfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikN CiAJYW1kZ3B1X2RlYnVnZnNfcmVnc19jbGVhbnVwKGFkZXYpOw0KIAlkZXZpY2VfcmVtb3ZlX2Zp bGUoYWRldi0+ZGV2LCAmZGV2X2F0dHJfcGNpZV9yZXBsYXlfY291bnQpOw0KIAlhbWRncHVfdWNv ZGVfc3lzZnNfZmluaShhZGV2KTsNCisJYW1kZ3B1X3BtdV9maW5pKGFkZXYpOw0KIH0NCiANCiAN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG11LmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG11LmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLmNkNDUwOTViZDgxNQ0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtdS5jDQpAQCAtMCwwICsxLDMw MiBAQA0KKy8qDQorICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j Lg0KKyAqDQorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGENCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLA0KKyAqIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24NCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwNCisgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUNCisg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOg0KKyAqDQorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4NCisgKiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4NCisgKg0KKyAqIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SDQorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQorICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMDQor ICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SDQorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsDQorICogQVJJU0lORyBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SDQor ICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLg0KKyAqDQorICogQXV0aG9yOiBKb25h dGhhbiBLaW0gPGpvbmF0aGFuLmtpbUBhbWQuY29tPg0KKyAqDQorICovDQorDQorI2luY2x1ZGUg PGxpbnV4L3BlcmZfZXZlbnQuaD4NCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPg0KKyNpbmNsdWRl ICJhbWRncHUuaCINCisjaW5jbHVkZSAiYW1kZ3B1X3BtdS5oIg0KKyNpbmNsdWRlICJkZl92M182 LmgiDQorDQorI2RlZmluZSBQTVVfTkFNRV9TSVpFIDMyDQorDQorLyogcmVjb3JkIHRvIGtlZXAg dHJhY2sgb2YgcG11IGVudHJ5IHBlciBwbXUgdHlwZSBwZXIgZGV2aWNlICovDQorc3RydWN0IGFt ZGdwdV9wbXVfZW50cnkgew0KKwlzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5Ow0KKwlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldjsNCisJc3RydWN0IHBtdSBwbXU7DQorCXVuc2lnbmVkIGludCBwbXVf cGVyZl90eXBlOw0KK307DQorDQorc3RhdGljIExJU1RfSEVBRChhbWRncHVfcG11X2xpc3QpOw0K Kw0KKw0KKy8qIGluaXRpYWxpemUgcGVyZiBjb3VudGVyICovDQorc3RhdGljIGludCBhbWRncHVf cGVyZl9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCit7DQorCXN0cnVjdCBo d19wZXJmX2V2ZW50ICpod2MgPSAmZXZlbnQtPmh3Ow0KKw0KKwkvKiB0ZXN0IHRoZSBldmVudCBh dHRyIHR5cGUgY2hlY2sgZm9yIFBNVSBlbnVtZXJhdGlvbiAqLw0KKwlpZiAoZXZlbnQtPmF0dHIu dHlwZSAhPSBldmVudC0+cG11LT50eXBlKQ0KKwkJcmV0dXJuIC1FTk9FTlQ7DQorDQorCS8qIHVw ZGF0ZSB0aGUgaHdfcGVyZl9ldmVudCBzdHJ1Y3Qgd2l0aCBjb25maWcgZGF0YSAqLw0KKwlod2Mt PmNvbmYgPSBldmVudC0+YXR0ci5jb25maWc7DQorDQorCXJldHVybiAwOw0KK30NCisNCisvKiBz dGFydCBwZXJmIGNvdW50ZXIgKi8NCitzdGF0aWMgdm9pZCBhbWRncHVfcGVyZl9zdGFydChzdHJ1 Y3QgcGVyZl9ldmVudCAqZXZlbnQsIGludCBmbGFncykNCit7DQorCXVuc2lnbmVkIGxvbmcgbGZs YWdzOw0KKwlzdHJ1Y3QgaHdfcGVyZl9ldmVudCAqaHdjID0gJmV2ZW50LT5odzsNCisJc3RydWN0 IGFtZGdwdV9wbXVfZW50cnkgKnBlID0gY29udGFpbmVyX29mKGV2ZW50LT5wbXUsDQorCQkJCQkJ ICBzdHJ1Y3QgYW1kZ3B1X3BtdV9lbnRyeSwNCisJCQkJCQkgIHBtdSk7DQorDQorCWlmIChXQVJO X09OX09OQ0UoIShod2MtPnN0YXRlICYgUEVSRl9IRVNfU1RPUFBFRCkpKQ0KKwkJcmV0dXJuOw0K Kw0KKwlXQVJOX09OX09OQ0UoIShod2MtPnN0YXRlICYgUEVSRl9IRVNfVVBUT0RBVEUpKTsNCisJ aHdjLT5zdGF0ZSA9IDA7DQorDQorCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcGUtPmFkZXYtPnBt dV9sb2NrLCBsZmxhZ3MpOw0KKw0KKwlpZiAoIShmbGFncyAmIFBFUkZfRUZfUkVMT0FEKSkNCisJ CXBlLT5hZGV2LT5kZl9mdW5jcy0+cG1jX3N0YXJ0KHBlLT5hZGV2LCBod2MtPmNvbmYsIDEpOw0K Kw0KKwlwZS0+YWRldi0+ZGZfZnVuY3MtPnBtY19zdGFydChwZS0+YWRldiwgaHdjLT5jb25mLCAw KTsNCisNCisJcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBlLT5hZGV2LT5wbXVfbG9jaywg bGZsYWdzKTsNCisNCisJcGVyZl9ldmVudF91cGRhdGVfdXNlcnBhZ2UoZXZlbnQpOw0KKw0KK30N CisNCisvKiByZWFkIHBlcmYgY291bnRlciAqLw0KK3N0YXRpYyB2b2lkIGFtZGdwdV9wZXJmX3Jl YWQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQ0KK3sNCisJdW5zaWduZWQgbG9uZyBsZmxhZ3M7 DQorCXN0cnVjdCBod19wZXJmX2V2ZW50ICpod2MgPSAmZXZlbnQtPmh3Ow0KKwlzdHJ1Y3QgYW1k Z3B1X3BtdV9lbnRyeSAqcGUgPSBjb250YWluZXJfb2YoZXZlbnQtPnBtdSwNCisJCQkJCQkgIHN0 cnVjdCBhbWRncHVfcG11X2VudHJ5LA0KKwkJCQkJCSAgcG11KTsNCisNCisJdTY0IGNvdW50LCBw cmV2Ow0KKw0KKwlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJnBlLT5hZGV2LT5wbXVfbG9jaywgbGZs YWdzKTsNCisNCisJc3dpdGNoIChwZS0+cG11X3BlcmZfdHlwZSkgew0KKwljYXNlIFBFUkZfVFlQ RV9BTURHUFVfREY6DQorCQlwZS0+YWRldi0+ZGZfZnVuY3MtPnBtY19nZXRfY291bnQocGUtPmFk ZXYsIGh3Yy0+Y29uZiwgJmNvdW50KTsNCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJY291bnQg PSAwOw0KKwkJYnJlYWs7DQorCX07DQorDQorCXByX2luZm8oImV2ZW50ICV4IGhhcyBjb3VudCAl ZFxuIiwgaHdjLT5jb25mLCBjb3VudCk7DQorDQorCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3Jl KCZwZS0+YWRldi0+cG11X2xvY2ssIGxmbGFncyk7DQorDQorCXByZXYgPSBsb2NhbDY0X3JlYWQo Jmh3Yy0+cHJldl9jb3VudCk7DQorCWlmIChsb2NhbDY0X2NtcHhjaGcoJmh3Yy0+cHJldl9jb3Vu dCwgcHJldiwgY291bnQpICE9IHByZXYpDQorCQlyZXR1cm47DQorDQorCWxvY2FsNjRfYWRkKGNv dW50IC0gcHJldiwgJmV2ZW50LT5jb3VudCk7DQorfQ0KKw0KKy8qIHN0b3AgcGVyZiBjb3VudGVy ICovDQorc3RhdGljIHZvaWQgYW1kZ3B1X3BlcmZfc3RvcChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZl bnQsIGludCBmbGFncykNCit7DQorCXVuc2lnbmVkIGxvbmcgbGZsYWdzOw0KKwlzdHJ1Y3QgaHdf cGVyZl9ldmVudCAqaHdjID0gJmV2ZW50LT5odzsNCisJc3RydWN0IGFtZGdwdV9wbXVfZW50cnkg KnBlID0gY29udGFpbmVyX29mKGV2ZW50LT5wbXUsDQorCQkJCQkJICBzdHJ1Y3QgYW1kZ3B1X3Bt dV9lbnRyeSwNCisJCQkJCQkgIHBtdSk7DQorDQorCWlmIChod2MtPnN0YXRlICYgUEVSRl9IRVNf VVBUT0RBVEUpDQorCQlyZXR1cm47DQorDQorCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcGUtPmFk ZXYtPnBtdV9sb2NrLCBsZmxhZ3MpOw0KKw0KKwlzd2l0Y2ggKHBlLT5wbXVfcGVyZl90eXBlKSB7 DQorCWNhc2UgUEVSRl9UWVBFX0FNREdQVV9ERjoNCisJCXBlLT5hZGV2LT5kZl9mdW5jcy0+cG1j X3N0b3AocGUtPmFkZXYsIGh3Yy0+Y29uZiwgMCk7DQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJ CWJyZWFrOw0KKwl9Ow0KKw0KKwlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGUtPmFkZXYt PnBtdV9sb2NrLCBsZmxhZ3MpOw0KKw0KKwlXQVJOX09OX09OQ0UoaHdjLT5zdGF0ZSAmIFBFUkZf SEVTX1NUT1BQRUQpOw0KKwlod2MtPnN0YXRlIHw9IFBFUkZfSEVTX1NUT1BQRUQ7DQorDQorCWlm IChod2MtPnN0YXRlICYgUEVSRl9IRVNfVVBUT0RBVEUpDQorCQlyZXR1cm47DQorDQorCWFtZGdw dV9wZXJmX3JlYWQoZXZlbnQpOw0KKwlod2MtPnN0YXRlIHw9IFBFUkZfSEVTX1VQVE9EQVRFOw0K K30NCisNCisvKiBhZGQgcGVyZiBjb3VudGVyICAqLw0KK3N0YXRpYyBpbnQgYW1kZ3B1X3BlcmZf YWRkKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCwgaW50IGZsYWdzKQ0KK3sNCisJdW5zaWduZWQg bG9uZyBsZmxhZ3M7DQorCXN0cnVjdCBod19wZXJmX2V2ZW50ICpod2MgPSAmZXZlbnQtPmh3Ow0K KwlpbnQgcmV0dmFsOw0KKw0KKwlzdHJ1Y3QgYW1kZ3B1X3BtdV9lbnRyeSAqcGUgPSBjb250YWlu ZXJfb2YoZXZlbnQtPnBtdSwNCisJCQkJCQkgIHN0cnVjdCBhbWRncHVfcG11X2VudHJ5LA0KKwkJ CQkJCSAgcG11KTsNCisNCisJZXZlbnQtPmh3LnN0YXRlID0gUEVSRl9IRVNfVVBUT0RBVEUgfCBQ RVJGX0hFU19TVE9QUEVEOw0KKw0KKwlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJnBlLT5hZGV2LT5w bXVfbG9jaywgbGZsYWdzKTsNCisNCisJc3dpdGNoIChwZS0+cG11X3BlcmZfdHlwZSkgew0KKwlj YXNlIFBFUkZfVFlQRV9BTURHUFVfREY6DQorCQlyZXR2YWwgPSBwZS0+YWRldi0+ZGZfZnVuY3Mt PnBtY19zdGFydChwZS0+YWRldiwgaHdjLT5jb25mLCAxKTsNCisJCWJyZWFrOw0KKwlkZWZhdWx0 Og0KKwkJcmV0dXJuIDA7DQorCX07DQorDQorCXJhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZw ZS0+YWRldi0+cG11X2xvY2ssIGxmbGFncyk7DQorDQorCWlmIChyZXR2YWwpDQorCQlyZXR1cm4g cmV0dmFsOw0KKw0KKwlpZiAoZmxhZ3MgJiBQRVJGX0VGX1NUQVJUKQ0KKwkJYW1kZ3B1X3BlcmZf c3RhcnQoZXZlbnQsIFBFUkZfRUZfUkVMT0FEKTsNCisNCisJcmV0dXJuIHJldHZhbDsNCisNCit9 DQorDQorLyogZGVsZXRlIHBlcmYgY291bnRlciAgKi8NCitzdGF0aWMgdm9pZCBhbWRncHVfcGVy Zl9kZWwoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LCBpbnQgZmxhZ3MpDQorew0KKwl1bnNpZ25l ZCBsb25nIGxmbGFnczsNCisJc3RydWN0IGh3X3BlcmZfZXZlbnQgKmh3YyA9ICZldmVudC0+aHc7 DQorCXN0cnVjdCBhbWRncHVfcG11X2VudHJ5ICpwZSA9IGNvbnRhaW5lcl9vZihldmVudC0+cG11 LA0KKwkJCQkJCSAgc3RydWN0IGFtZGdwdV9wbXVfZW50cnksDQorCQkJCQkJICBwbXUpOw0KKw0K KwlhbWRncHVfcGVyZl9zdG9wKGV2ZW50LCBQRVJGX0VGX1VQREFURSk7DQorDQorCXJhd19zcGlu X2xvY2tfaXJxc2F2ZSgmcGUtPmFkZXYtPnBtdV9sb2NrLCBsZmxhZ3MpOw0KKw0KKwlzd2l0Y2gg KHBlLT5wbXVfcGVyZl90eXBlKSB7DQorCWNhc2UgUEVSRl9UWVBFX0FNREdQVV9ERjoNCisJCXBl LT5hZGV2LT5kZl9mdW5jcy0+cG1jX3N0b3AocGUtPmFkZXYsIGh3Yy0+Y29uZiwgMSk7DQorCQli cmVhazsNCisJZGVmYXVsdDoNCisJCWJyZWFrOw0KKwl9Ow0KKw0KKwlyYXdfc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmcGUtPmFkZXYtPnBtdV9sb2NrLCBsZmxhZ3MpOw0KKw0KKwlwZXJmX2V2ZW50 X3VwZGF0ZV91c2VycGFnZShldmVudCk7DQorfQ0KKw0KKy8qIHZlZ2EyMCBwbXVzICovDQorDQor LyogaW5pdCBwbXUgdHJhY2tpbmcgcGVyIHBtdSB0eXBlICovDQoraW50IGluaXRfcG11X2J5X3R5 cGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQorCQkgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1 dGVfZ3JvdXAgKmF0dHJfZ3JvdXBzW10sDQorCQkgIGNoYXIgKnBtdV90eXBlX25hbWUsIGNoYXIg KnBtdV9maWxlX3ByZWZpeCwNCisJCSAgdW5zaWduZWQgaW50IHBtdV9wZXJmX3R5cGUpDQorew0K KwljaGFyIHBtdV9uYW1lW1BNVV9OQU1FX1NJWkVdOw0KKwlzdHJ1Y3QgYW1kZ3B1X3BtdV9lbnRy eSAqcG11X2VudHJ5Ow0KKwlpbnQgcmV0ID0gMDsNCisNCisJcG11X2VudHJ5ID0ga3phbGxvYyhz aXplb2Yoc3RydWN0IGFtZGdwdV9wbXVfZW50cnkpLCBHRlBfS0VSTkVMKTsNCisNCisJaWYgKCFw bXVfZW50cnkpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJcG11X2VudHJ5LT5hZGV2ID0gYWRl djsNCisJcG11X2VudHJ5LT5wbXUgPSAoc3RydWN0IHBtdSl7DQorCQkuZXZlbnRfaW5pdCA9IGFt ZGdwdV9wZXJmX2V2ZW50X2luaXQsDQorCQkuYWRkID0gYW1kZ3B1X3BlcmZfYWRkLA0KKwkJLmRl bCA9IGFtZGdwdV9wZXJmX2RlbCwNCisJCS5zdGFydCA9IGFtZGdwdV9wZXJmX3N0YXJ0LA0KKwkJ LnN0b3AgPSBhbWRncHVfcGVyZl9zdG9wLA0KKwkJLnJlYWQgPSBhbWRncHVfcGVyZl9yZWFkLA0K KwkJLnRhc2tfY3R4X25yID0gcGVyZl9pbnZhbGlkX2NvbnRleHQsDQorCX07DQorDQorCXBtdV9l bnRyeS0+cG11LmF0dHJfZ3JvdXBzID0gYXR0cl9ncm91cHM7DQorCXBtdV9lbnRyeS0+cG11X3Bl cmZfdHlwZSA9IHBtdV9wZXJmX3R5cGU7DQorCXNucHJpbnRmKHBtdV9uYW1lLCBQTVVfTkFNRV9T SVpFLCAiJXNfJWQiLA0KKwkJCQlwbXVfZmlsZV9wcmVmaXgsIGFkZXYtPmRkZXYtPnByaW1hcnkt PmluZGV4KTsNCisNCisJcmV0ID0gcGVyZl9wbXVfcmVnaXN0ZXIoJnBtdV9lbnRyeS0+cG11LCBw bXVfbmFtZSwgLTEpOw0KKw0KKwlpZiAocmV0KSB7DQorCQlrZnJlZShwbXVfZW50cnkpOw0KKwkJ cHJfd2FybigiRXJyb3IgaW5pdGlhbGl6aW5nIEFNREdQVSAlcyBQTVVzLlxuIiwgcG11X3R5cGVf bmFtZSk7DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXJhd19zcGluX2xvY2tfaW5pdCgmcG11 X2VudHJ5LT5hZGV2LT5wbXVfbG9jayk7DQorDQorCXByX2luZm8oIkRldGVjdGVkIEFNREdQVSAl cyBDb3VudGVycy4gIyBvZiBDb3VudGVycyA9ICVkLlxuIiwNCisJCQlwbXVfdHlwZV9uYW1lLCBE Rl9WM182X01BWF9DT1VOVEVSUyk7DQorDQorCWxpc3RfYWRkX3RhaWwoJnBtdV9lbnRyeS0+ZW50 cnksICZhbWRncHVfcG11X2xpc3QpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorLyogaW5pdCBh bWRncHVfcG11ICovDQoraW50IGFtZGdwdV9wbXVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikNCit7DQorDQorCWludCByZXQgPSAwOw0KKw0KKwlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlw ZSkgew0KKwljYXNlIENISVBfVkVHQTIwOg0KKwkJLyogaW5pdCBkZiAqLw0KKwkJcmV0ID0gaW5p dF9wbXVfYnlfdHlwZShhZGV2LCBkZl92M182X2F0dHJfZ3JvdXBzLA0KKwkJCQkiREYiLCAiYW1k Z3B1X2RmIiwgUEVSRl9UWVBFX0FNREdQVV9ERik7DQorDQorCQkvKiBvdGhlciBwbXUgdHlwZXMg Z28gaGVyZSovDQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJCXJldHVybiAwOw0KKwl9DQorDQor CXJldHVybiAwOw0KKw0KK30NCisNCisNCisvKiBkZXN0cm95IGFsbCBwbXUgZGF0YSBhc3NvY2lh dGVkIHdpdGggdGFyZ2V0IGRldmljZSAqLw0KK3ZvaWQgYW1kZ3B1X3BtdV9maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQ0KK3sNCisJc3RydWN0IGFtZGdwdV9wbXVfZW50cnkgKnBlLCAq dGVtcDsNCisNCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBlLCB0ZW1wLCAmYW1kZ3B1X3Bt dV9saXN0LCBlbnRyeSkgew0KKwkJaWYgKHBlLT5hZGV2ID09IGFkZXYpIHsNCisJCQlsaXN0X2Rl bCgmcGUtPmVudHJ5KTsNCisJCQlwZXJmX3BtdV91bnJlZ2lzdGVyKCZ0ZW1wLT5wbXUpOw0KKwkJ CWtmcmVlKHRlbXApOw0KKwkJfQ0KKwl9DQorfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9wbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9wbXUuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uN2Rk ZGI3MTYwYTExDQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfcG11LmgNCkBAIC0wLDAgKzEsMzcgQEANCisvKg0KKyAqIENvcHlyaWdodCAyMDE5 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCisgKg0KKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhDQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwNCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uDQorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsDQorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlDQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCisgKg0KKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl IGluY2x1ZGVkIGluDQorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuDQorICoNCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KKyAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLA0KKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTA0KKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9S IEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUg0KKyAqIE9USEVS IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLA0KKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUg0KKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZU V0FSRS4NCisgKg0KKyAqIEF1dGhvcjogSm9uYXRoYW4gS2ltIDxqb25hdGhhbi5raW1AYW1kLmNv bT4NCisgKg0KKyAqLw0KKw0KKyNpZm5kZWYgX0FNREdQVV9QTVVfSF8NCisjZGVmaW5lIF9BTURH UFVfUE1VX0hfDQorDQorZW51bSBhbWRncHVfcG11X3BlcmZfdHlwZSB7DQorCVBFUkZfVFlQRV9B TURHUFVfREYgPSAwLA0KKwlQRVJGX1RZUEVfQU1ER1BVX01BWA0KK307DQorDQoraW50IGFtZGdw dV9wbXVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQordm9pZCBhbWRncHVfcG11 X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KKw0KKyNlbmRpZiAvKiBfQU1ER1BV X1BNVV9IXyAqLw0KLS0gDQoyLjE3LjENCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4