From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id A8DFB8952F for ; Wed, 13 Mar 2019 12:56:22 +0000 (UTC) From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Date: Wed, 13 Mar 2019 13:53:32 +0100 Message-ID: <20190313125332.12471-7-michal.winiarski@intel.com> In-Reply-To: <20190313125332.12471-1-michal.winiarski@intel.com> References: <20190313125332.12471-1-michal.winiarski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 6/6] lib/igt_device: Move intel_get_pci_device under igt_device List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: SXQgYWxsb3dzIHVzIHRvIG1ha2UgdGhpbmdzIGEgbGl0dGxlIGJpdCBtb3JlIGdlbmVyaWMuIEFs c28sIHdlIG5vdwpyZXF1aXJlIGZkIHJhdGhlciB0aGFuIGRvaW5nIGd1ZXNzd29yayB3aGVuIGl0 IGNvbWVzIHRvIHBjaSBhZGRyZXNzLgoKU2lnbmVkLW9mZi1ieTogTWljaGHFgiBXaW5pYXJza2kg PG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgotLS0KIGJlbmNobWFya3MvZ2VtX2xhdGVuY3ku YyAgICAgICAgfCAgNCArLQogYmVuY2htYXJrcy9nZW1fd3NpbS5jICAgICAgICAgICB8ICA0ICst CiBkZWJ1Z2dlci9kZWJ1Z19yZGF0YS5jICAgICAgICAgIHwgIDcgKystCiBkZWJ1Z2dlci9ldWRi LmMgICAgICAgICAgICAgICAgIHwgIDggKystLQogbGliL2lndF9kZXZpY2UuYyAgICAgICAgICAg ICAgICB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2lndF9kZXZp Y2UuaCAgICAgICAgICAgICAgICB8ICAxICsKIGxpYi9pbnRlbF9jaGlwc2V0LmMgICAgICAgICAg ICAgfCA1MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGxpYi9pbnRlbF9jaGlwc2V0LmggICAgICAg ICAgICAgfCAgMSAtCiBsaWIvaW50ZWxfbW1pby5jICAgICAgICAgICAgICAgIHwgIDQgKy0KIGxp Yi9pb2N0bF93cmFwcGVycy5jICAgICAgICAgICAgfCAgNSArKy0KIGxpYi9pb2N0bF93cmFwcGVy cy5oICAgICAgICAgICAgfCAgMiArLQogdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYyB8 IDEyICsrLS0tCiB0ZXN0cy9pOTE1L2dlbV9jcHVfcmVsb2MuYyAgICAgIHwgIDQgKy0KIHRlc3Rz L2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jICAgfCAgMyArLQogdGVzdHMvaTkxNS9nZW1fZXhlY19w YXJzZS5jICAgICB8ICA0ICstCiB0ZXN0cy9pOTE1L2dlbV9tbWFwLmMgICAgICAgICAgIHwgIDQg Ky0KIHRlc3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMgICAgICAgfCAxMCArKy0tLQogdGVzdHMvaTkx NS9nZW1fcHdyaXRlLmMgICAgICAgICB8ICA0ICstCiB0ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYyAg ICAgICAgIHwgIDIgKy0KIHRlc3RzL2k5MTUvaTkxNV9wbV9scHNwLmMgICAgICAgfCAgMyArLQog dGVzdHMvaTkxNS9pOTE1X3BtX3JwbS5jICAgICAgICB8ICA0ICstCiB0ZXN0cy9rbXNfZmxpcC5j ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRlc3RzL3ByaW1lX21tYXAuYyAgICAgICAgICAgICAg fCAgNCArLQogdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jICAgICAgICB8ICA5ICsrKy0KIHRvb2xz L2ludGVsX2JhY2tsaWdodC5jICAgICAgICAgfCAgOCArKystCiB0b29scy9pbnRlbF9kaXNwbGF5 X3BvbGxlci5jICAgIHwgIDggKysrLQogdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jICAgICAgICB8 IDEwICsrKy0tCiB0b29scy9pbnRlbF9ncHVfdGltZS5jICAgICAgICAgIHwgIDggKysrLQogdG9v bHMvaW50ZWxfZ3R0LmMgICAgICAgICAgICAgICB8ICA4ICsrKy0KIHRvb2xzL2ludGVsX2luZm9m cmFtZXMuYyAgICAgICAgfCAgNyArKy0KIHRvb2xzL2ludGVsX2wzX3Bhcml0eS5jICAgICAgICAg fCAgMyArLQogdG9vbHMvaW50ZWxfbGlkLmMgICAgICAgICAgICAgICB8ICA5ICsrKy0KIHRvb2xz L2ludGVsX3BhbmVsX2ZpdHRlci5jICAgICAgfCAgOCArKystCiB0b29scy9pbnRlbF9wZXJmX2Nv dW50ZXJzLmMgICAgIHwgIDMgKy0KIHRvb2xzL2ludGVsX3JlZy5jICAgICAgICAgICAgICAgfCAy MyArKysrKy0tLS0tCiB0b29scy9pbnRlbF9yZWdfY2hlY2tlci5jICAgICAgIHwgIDggKysrLQog dG9vbHMvaW50ZWxfd2F0ZXJtYXJrLmMgICAgICAgICB8IDIzICsrKysrKy0tLS0KIDM3IGZpbGVz IGNoYW5nZWQsIDIyNiBpbnNlcnRpb25zKCspLCAxMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvYmVuY2htYXJrcy9nZW1fbGF0ZW5jeS5jIGIvYmVuY2htYXJrcy9nZW1fbGF0ZW5jeS5jCmlu ZGV4IGMzZmM0YmYwLi4wOWJlNjhmNyAxMDA2NDQKLS0tIGEvYmVuY2htYXJrcy9nZW1fbGF0ZW5j eS5jCisrKyBiL2JlbmNobWFya3MvZ2VtX2xhdGVuY3kuYwpAQCAtNDQsNiArNDQsOCBAQAogI2lu Y2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgImRybS5oIgogCisjaW5jbHVkZSAiaWd0 X2RldmljZS5oIgorCiAjZGVmaW5lIExPQ0FMX0k5MTVfRVhFQ19GRU5DRV9JTiAgICAgICAgICAg ICAgKDE8PDE2KQogI2RlZmluZSBMT0NBTF9JOTE1X0VYRUNfRkVOQ0VfT1VUICAgICAgICAgICAg ICgxPDwxNykKIApAQCAtNDU2LDcgKzQ1OCw3IEBAIHN0YXRpYyBpbnQgcnVuKGludCBzZWNvbmRz LAogCWlmIChnZW4gPCA2KQogCQlyZXR1cm4gSUdUX0VYSVRfU0tJUDsgLyogTmVlZHMgQkNTIHRp bWVzdGFtcCAqLwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9k ZXZpY2UoKSwgZmFsc2UsIGZkKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2 aWNlX2dldF9wY2lfZGV2KGZkKSwgZmFsc2UsIGZkKTsKIAogCWlmIChnZW4gPT0gNikKIAkJdGlt ZXN0YW1wX3JlZyA9IFJFRyhSQ1NfVElNRVNUQU1QKTsKZGlmZiAtLWdpdCBhL2JlbmNobWFya3Mv Z2VtX3dzaW0uYyBiL2JlbmNobWFya3MvZ2VtX3dzaW0uYwppbmRleCBhZmI5NjQ0ZC4uYWU1ODVi OGMgMTAwNjQ0Ci0tLSBhL2JlbmNobWFya3MvZ2VtX3dzaW0uYworKysgYi9iZW5jaG1hcmtzL2dl bV93c2ltLmMKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRl IDxwdGhyZWFkLmg+CiAKLQogI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJp bnRlbF9yZWcuaCIKICNpbmNsdWRlICJkcm0uaCIKQEAgLTUwLDYgKzQ5LDcgQEAKIAogI2luY2x1 ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaWd0X2F1eC5oIgorI2luY2x1ZGUgImlndF9kZXZp Y2UuaCIKICNpbmNsdWRlICJpZ3RfcmFuZC5oIgogI2luY2x1ZGUgImlndF9wZXJmLmgiCiAjaW5j bHVkZSAic3dfc3luYy5oIgpAQCAtMjIyMyw3ICsyMjIzLDcgQEAgc3RhdGljIHZvaWQgaW5pdF9j bG9ja3Modm9pZCkKIAl1aW50MzJfdCByY3Nfc3RhcnQsIHJjc19lbmQ7CiAJZG91YmxlIG92ZXJo ZWFkLCB0OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZp Y2UoKSwgZmFsc2UsIGZkKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNl X2dldF9wY2lfZGV2KGZkKSwgZmFsc2UsIGZkKTsKIAogCWlmICh2ZXJib3NlIDw9IDEpCiAJCXJl dHVybjsKZGlmZiAtLWdpdCBhL2RlYnVnZ2VyL2RlYnVnX3JkYXRhLmMgYi9kZWJ1Z2dlci9kZWJ1 Z19yZGF0YS5jCmluZGV4IDYxZDgyZDllLi5kYjhhMTVkYSAxMDA2NDQKLS0tIGEvZGVidWdnZXIv ZGVidWdfcmRhdGEuYworKysgYi9kZWJ1Z2dlci9kZWJ1Z19yZGF0YS5jCkBAIC0yOSw3ICsyOSw2 IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlICJp bnRlbF9pby5oIgotI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKIAogc3RydWN0IGV1X3JkYXRh IHsKIAl1bmlvbiB7CkBAIC0xMzMsNyArMTMyLDExIEBAIGZpbmRfc3R1Y2tfdGhyZWFkcyh2b2lk KQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CiAJc3RydWN0IHBjaV9kZXZp Y2UgKnBjaV9kZXY7Ci0JcGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CisJaW50IGZk OworCisJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKKwlwY2lfZGV2ID0gaWd0 X2RldmljZV9nZXRfcGNpX2RldihmZCk7CisJY2xvc2UoZmQpOwogCiAJaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQocGNpX2RldiwgMSk7CiAJZmluZF9zdHVja190aHJlYWRzKCk7CmRpZmYgLS1n aXQgYS9kZWJ1Z2dlci9ldWRiLmMgYi9kZWJ1Z2dlci9ldWRiLmMKaW5kZXggODY2ZDRiNTIuLjZi ZDU0NzI3IDEwMDY0NAotLS0gYS9kZWJ1Z2dlci9ldWRiLmMKKysrIGIvZGVidWdnZXIvZXVkYi5j CkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiZHJtLmgiCiAjaW5jbHVkZSAiaTkxNV9kcm0u aCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCi0jaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogI2lu Y2x1ZGUgImludGVsX2J1Zm1nci5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAi aW50ZWxfYmF0Y2hidWZmZXIuaCIKQEAgLTUwNiw3ICs1MDUsNyBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciogYXJndltdKSB7CiAJc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXY7CiAJdm9sYXRp bGUgdWludDhfdCAqc2NyYXRjaCA9IE5VTEw7CiAJaW50IGJpdHNbNjRdOwotCWludCBkZXZpZCA9 IC0xLCBvcHQ7CisJaW50IGRldmlkID0gLTEsIG9wdCwgZmQ7CiAKIAl3aGlsZSAoKG9wdCA9IGdl dG9wdChhcmdjLCBhcmd2LCAiY2RyOnBmP2giKSkgIT0gLTEpIHsKIAkJc3dpdGNoIChvcHQpIHsK QEAgLTUzMyw3ICs1MzIsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewog CQl9CiAJfQogCi0JcGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CisJZmQgPSBkcm1f b3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKKwlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNp X2RldihmZCk7CisJY2xvc2UoZmQpOworCiAJaWYgKGRldmlkID09IC0xKQogCQlkZXZpZCA9IHBj aV9kZXYtPmRldmljZV9pZDsKIAlpZiAoaWRlbnRpZnlfZGV2aWNlKGRldmlkKSkgewpkaWZmIC0t Z2l0IGEvbGliL2lndF9kZXZpY2UuYyBiL2xpYi9pZ3RfZGV2aWNlLmMKaW5kZXggMDhmMzljOGIu LmViNDRiYzdjIDEwMDY0NAotLS0gYS9saWIvaWd0X2RldmljZS5jCisrKyBiL2xpYi9pZ3RfZGV2 aWNlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+CiAjaW5j bHVkZSAiaWd0LmgiCiAjaW5jbHVkZSAiaWd0X2RldmljZS5oIgorI2luY2x1ZGUgImlndF9zeXNm cy5oIgogCiBpbnQgX19pZ3RfZGV2aWNlX3NldF9tYXN0ZXIoaW50IGZkKQogewpAQCAtMTAzLDMg KzEwNCw4MSBAQCBpbnQgaWd0X2RldmljZV9nZXRfY2FyZF9pbmRleChpbnQgZmQpCiAKIAlyZXR1 cm4gbWlub3Ioc3Quc3RfcmRldik7CiB9CisKKyNkZWZpbmUgSUdUX0RFVl9QQVRIX0xFTiA4MAor CitzdGF0aWMgYm9vbCBpZ3RfZGV2aWNlX2lzX3BjaShpbnQgZmQpCit7CisJY2hhciBwYXRoW0lH VF9ERVZfUEFUSF9MRU5dOworCWNoYXIgbGlua1tJR1RfREVWX1BBVEhfTEVOXTsKKwljaGFyICpz dWJzeXN0ZW07CisJaW50IGxlbjsKKworCWlndF9hc3NlcnRfZihpZ3Rfc3lzZnNfcGF0aChmZCwg cGF0aCwgc2l6ZW9mKHBhdGgpKSwKKwkJICAgICAiRmFpbGVkIHRvIGZpbmQgZGV2aWNlIHN5c2Zz IHBhdGguXG4iKTsKKworCXN0cmNhdChwYXRoLCAiL2RldmljZS9zdWJzeXN0ZW0iKTsKKworCWlm ICgobGVuID0gcmVhZGxpbmsocGF0aCwgbGluaywgc2l6ZW9mKGxpbmspIC0gMSkpID09IC0xKQor CQlyZXR1cm4gZmFsc2U7CisJbGlua1tsZW5dID0gJ1wwJzsKKworCXN1YnN5c3RlbSA9IHN0cnJj aHIobGluaywgJy8nKSArIDE7CisKKwlyZXR1cm4gc3RyY21wKHN1YnN5c3RlbSwgInBjaSIpID09 IDA7Cit9CisKK3N0YXRpYyB2b2lkIGlndF9kZXZpY2VfZ2V0X3BjaV9hZGRyKGludCBmZCwgY2hh ciAqYnVmLCBpbnQgbGVuKQoreworCWNoYXIgcGF0aFtJR1RfREVWX1BBVEhfTEVOXTsKKwljaGFy IGxpbmtbSUdUX0RFVl9QQVRIX0xFTl07CisJY2hhciAqcGNpX2FkZHI7CisJaW50IGxpbmtfbGVu OworCisJaWd0X2Fzc2VydF9mKGlndF9kZXZpY2VfaXNfcGNpKGZkKSwgIlRoaXMgaXMgbm90IGEg UENJIGRldmljZS4iKTsKKworCWlndF9hc3NlcnRfZihpZ3Rfc3lzZnNfcGF0aChmZCwgcGF0aCwg c2l6ZW9mKHBhdGgpKSwKKwkJICAgICAiRmFpbGVkIHRvIGZpbmQgZGV2aWNlIHN5c2ZzIHBhdGgu XG4iKTsKKworCXN0cmNhdChwYXRoLCAiL2RldmljZSIpOworCisJaWd0X2Fzc2VydF9mKChsaW5r X2xlbiA9IHJlYWRsaW5rKHBhdGgsIGxpbmssIHNpemVvZihsaW5rKSAtIDEpKSAhPSAtMSwKKwkJ ICAgICAiRmFpbGVkIHRvIGZpbmQgZGV2aWNlIHN5c2ZzIHBhdGguXG4iKTsKKwlpZiAobGlua19s ZW4pCisJCWxpbmtbbGlua19sZW5dID0gJ1wwJzsKKworCXBjaV9hZGRyID0gc3RycmNocihsaW5r LCAnLycpICsgMTsKKworCXN0cm5jcHkoYnVmLCBwY2lfYWRkciwgbGVuIC0gMSk7CisJaWYgKGxl bikKKwkJYnVmW2xlbl0gPSAnXDAnOworfQorCitzdHJ1Y3QgcGNpX2RldmljZSAqaWd0X2Rldmlj ZV9nZXRfcGNpX2RldihpbnQgZmQpCit7CisJY2hhciBwY2lfYWRkcltJR1RfREVWX1BBVEhfTEVO XTsKKwlzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsKKwl1bnNpZ25lZCBpbnQgZG9tYWluLCBi dXMsIGRldmljZSwgZnVuY3Rpb247CisJaW50IGVycjsKKworCWlndF9kZXZpY2VfZ2V0X3BjaV9h ZGRyKGZkLCBwY2lfYWRkciwgc2l6ZW9mKHBjaV9hZGRyKSk7CisKKwllcnIgPSBzc2NhbmYocGNp X2FkZHIsICIlNHg6JTJ4OiUyeC4lMngiLAorCQkgICAgICZkb21haW4sICZidXMsICZkZXZpY2Us ICZmdW5jdGlvbik7CisJaWd0X2Fzc2VydF9mKGVyciA9PSA0LCAiVW5hYmxlIHRvIGZpbmQgZGV2 aWNlIFBDSSBhZGRyZXNzLiIpOworCisJZXJyID0gcGNpX3N5c3RlbV9pbml0KCk7CisJaWd0X2Zh aWxfb25fZihlcnIgIT0gMCwgIkNvdWxkbid0IGluaXRpYWxpemUgUENJIHN5c3RlbVxuIik7CisK KwlwY2lfZGV2ID0gcGNpX2RldmljZV9maW5kX2J5X3Nsb3QoZG9tYWluLAorCQkJCQkgIGJ1cywK KwkJCQkJICBkZXZpY2UsCisJCQkJCSAgZnVuY3Rpb24pOworCWlndF9hc3NlcnRfZihwY2lfZGV2 LCAiQ291bGRuJ3QgZmluZCBJbnRlbCBncmFwaGljcyBjYXJkXG4iKTsKKworCWVyciA9IHBjaV9k ZXZpY2VfcHJvYmUocGNpX2Rldik7CisJaWd0X2ZhaWxfb25fZihlcnIgIT0gMCwKKwkJICAgICAg IkNvdWxkbid0IHByb2JlIGdyYXBoaWNzIGNhcmRcbiIpOworCisJcmV0dXJuIHBjaV9kZXY7Cit9 CmRpZmYgLS1naXQgYS9saWIvaWd0X2RldmljZS5oIGIvbGliL2lndF9kZXZpY2UuaAppbmRleCA5 ZDdkYzJjMy4uZGI1M2I3NGMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZGV2aWNlLmgKKysrIGIvbGli L2lndF9kZXZpY2UuaApAQCAtMzIsNSArMzIsNiBAQCBpbnQgX19pZ3RfZGV2aWNlX2Ryb3BfbWFz dGVyKGludCBmZCk7CiB2b2lkIGlndF9kZXZpY2VfZHJvcF9tYXN0ZXIoaW50IGZkKTsKIAogaW50 IGlndF9kZXZpY2VfZ2V0X2NhcmRfaW5kZXgoaW50IGZkKTsKK3N0cnVjdCBwY2lfZGV2aWNlICpp Z3RfZGV2aWNlX2dldF9wY2lfZGV2KGludCBmZCk7CiAKICNlbmRpZiAvKiBfX0lHVF9ERVZJQ0Vf SF9fICovCmRpZmYgLS1naXQgYS9saWIvaW50ZWxfY2hpcHNldC5jIGIvbGliL2ludGVsX2NoaXBz ZXQuYwppbmRleCA0NzQ4YTNmYi4uMDU3N2Y3N2EgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9jaGlw c2V0LmMKKysrIGIvbGliL2ludGVsX2NoaXBzZXQuYwpAQCAtNjEsNTcgKzYxLDYgQEAKICAqLwog ZW51bSBwY2hfdHlwZSBpbnRlbF9wY2g7CiAKLS8qKgotICogaW50ZWxfZ2V0X3BjaV9kZXZpY2U6 Ci0gKgotICogTG9va3MgdXAgdGhlIG1haW4gZ3JhcGhpY3MgcGNpIGRldmljZSB1c2luZyBsaWJw Y2lhY2Nlc3MuCi0gKgotICogUmV0dXJuczoKLSAqIFRoZSBwY2lfZGV2aWNlLCBleGl0cyB0aGUg cHJvZ3JhbSBvbiBhbnkgZmFpbHVyZXMuCi0gKi8KLXN0cnVjdCBwY2lfZGV2aWNlICoKLWludGVs X2dldF9wY2lfZGV2aWNlKHZvaWQpCi17Ci0Jc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXY7Ci0J aW50IGVycm9yOwotCi0JZXJyb3IgPSBwY2lfc3lzdGVtX2luaXQoKTsKLQlpZ3RfZmFpbF9vbl9m KGVycm9yICE9IDAsCi0JCSAgICAgICJDb3VsZG4ndCBpbml0aWFsaXplIFBDSSBzeXN0ZW1cbiIp OwotCi0JLyogR3JhYiB0aGUgZ3JhcGhpY3MgY2FyZC4gVHJ5IHRoZSBjYW5vbmljYWwgc2xvdCBm aXJzdCwgdGhlbgotCSAqIHdhbGsgdGhlIGVudGlyZSBQQ0kgYnVzIGZvciBhIG1hdGNoaW5nIGRl dmljZS4gKi8KLQlwY2lfZGV2ID0gcGNpX2RldmljZV9maW5kX2J5X3Nsb3QoMCwgMCwgMiwgMCk7 Ci0JaWYgKHBjaV9kZXYgPT0gTlVMTCB8fCBwY2lfZGV2LT52ZW5kb3JfaWQgIT0gMHg4MDg2KSB7 Ci0JCXN0cnVjdCBwY2lfZGV2aWNlX2l0ZXJhdG9yICppdGVyOwotCQlzdHJ1Y3QgcGNpX2lkX21h dGNoIG1hdGNoOwotCi0JCW1hdGNoLnZlbmRvcl9pZCA9IDB4ODA4NjsgLyogSW50ZWwgKi8KLQkJ bWF0Y2guZGV2aWNlX2lkID0gUENJX01BVENIX0FOWTsKLQkJbWF0Y2guc3VidmVuZG9yX2lkID0g UENJX01BVENIX0FOWTsKLQkJbWF0Y2guc3ViZGV2aWNlX2lkID0gUENJX01BVENIX0FOWTsKLQot CQltYXRjaC5kZXZpY2VfY2xhc3MgPSAweDMgPDwgMTY7Ci0JCW1hdGNoLmRldmljZV9jbGFzc19t YXNrID0gMHhmZiA8PCAxNjsKLQotCQltYXRjaC5tYXRjaF9kYXRhID0gMDsKLQotCQlpdGVyID0g cGNpX2lkX21hdGNoX2l0ZXJhdG9yX2NyZWF0ZSgmbWF0Y2gpOwotCQlwY2lfZGV2ID0gcGNpX2Rl dmljZV9uZXh0KGl0ZXIpOwotCQlwY2lfaXRlcmF0b3JfZGVzdHJveShpdGVyKTsKLQl9Ci0JaWd0 X3JlcXVpcmVfZihwY2lfZGV2LCAiQ291bGRuJ3QgZmluZCBJbnRlbCBncmFwaGljcyBjYXJkXG4i KTsKLQotCWVycm9yID0gcGNpX2RldmljZV9wcm9iZShwY2lfZGV2KTsKLQlpZ3RfZmFpbF9vbl9m KGVycm9yICE9IDAsCi0JCSAgICAgICJDb3VsZG4ndCBwcm9iZSBncmFwaGljcyBjYXJkXG4iKTsK LQotCWlmIChwY2lfZGV2LT52ZW5kb3JfaWQgIT0gMHg4MDg2KQotCQllcnJ4KDEsICJHcmFwaGlj cyBjYXJkIGlzIG5vbi1pbnRlbCIpOwotCi0JcmV0dXJuIHBjaV9kZXY7Ci19Ci0KIC8qKgogICog aW50ZWxfZ2V0X2RybV9kZXZpZDoKICAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0 b3IKZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9jaGlwc2V0LmggYi9saWIvaW50ZWxfY2hpcHNldC5o CmluZGV4IDQwMTcwYjdiLi5kZDMxZDNmYiAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2NoaXBzZXQu aAorKysgYi9saWIvaW50ZWxfY2hpcHNldC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSA8 cGNpYWNjZXNzLmg+CiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogCi1zdHJ1Y3QgcGNpX2RldmljZSAq aW50ZWxfZ2V0X3BjaV9kZXZpY2Uodm9pZCk7CiB1aW50MzJfdCBpbnRlbF9nZXRfZHJtX2Rldmlk KGludCBmZCk7CiAKIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7CmRpZmYgLS1naXQgYS9saWIv aW50ZWxfbW1pby5jIGIvbGliL2ludGVsX21taW8uYwppbmRleCBhNTQ1OGFlYi4uNTUwOWM2MDIg MTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9tbWlvLmMKKysrIGIvbGliL2ludGVsX21taW8uYwpAQCAt MTEyLDcgKzExMiw3IEBAIGludGVsX21taW9fdXNlX2R1bXBfZmlsZShjaGFyICpmaWxlKQogICoK ICAqIFNldHMgdXAgI2lndF9nbG9iYWxfbW1pbyB0byBwb2ludCBhdCB0aGUgbW1pbyBiYXIuCiAg KgotICogQHBjaV9kZXYgY2FuIGJlIG9idGFpbmVkIGZyb20gaW50ZWxfZ2V0X3BjaV9kZXZpY2Uo KS4KKyAqIEBwY2lfZGV2IGNhbiBiZSBvYnRhaW5lZCBmcm9tIGlndF9kZXZpY2VfZ2V0X3BjaV9k ZXYoKS4KICAqLwogdm9pZAogaW50ZWxfbW1pb191c2VfcGNpX2JhcihzdHJ1Y3QgcGNpX2Rldmlj ZSAqcGNpX2RldikKQEAgLTE2Miw3ICsxNjIsNyBAQCByZWxlYXNlX2ZvcmNld2FrZV9sb2NrKGlu dCBmZCkKICAqCiAgKiBJdCBhbHNvIGluaXRpYWxpemVzICNpZ3RfZ2xvYmFsX21taW8gbGlrZSBp bnRlbF9tbWlvX3VzZV9wY2lfYmFyKCkuCiAgKgotICogQHBjaV9kZXYgY2FuIGJlIG9idGFpbmVk IGZyb20gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKS4KKyAqIEBwY2lfZGV2IGNhbiBiZSBvYnRhaW5l ZCBmcm9tIGlndF9kZXZpY2VfZ2V0X3BjaV9kZXYoKS4KICAqLwogaW50CiBpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfaW5pdChzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldiwgaW50IHNhZmUsIGludCBm ZCkKZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFwcGVycy5jIGIvbGliL2lvY3RsX3dyYXBwZXJz LmMKaW5kZXggMzk5MjBmODcuLjBjNDNlYjNiIDEwMDY0NAotLS0gYS9saWIvaW9jdGxfd3JhcHBl cnMuYworKysgYi9saWIvaW9jdGxfd3JhcHBlcnMuYwpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1 ZGUgImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgogI2luY2x1ZGUgImln dF9kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUgImlndF9zeXNm cy5oIgogI2luY2x1ZGUgImNvbmZpZy5oIgogCkBAIC0xMDk2LDkgKzEwOTcsOSBAQCB1aW50NjRf dCBnZW1fYXBlcnR1cmVfc2l6ZShpbnQgZmQpCiAgKgogICogUmV0dXJuczogVGhlIG1hcHBhYmxl IGd0dCBhZGRyZXNzIHNwYWNlIHNpemUuCiAgKi8KLXVpbnQ2NF90IGdlbV9tYXBwYWJsZV9hcGVy dHVyZV9zaXplKHZvaWQpCit1aW50NjRfdCBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShpbnQg ZmQpCiB7Ci0Jc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXYgPSBpbnRlbF9nZXRfcGNpX2Rldmlj ZSgpOworCXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2Rl dihmZCk7CiAJaW50IGJhcjsKIAogCWlmIChpbnRlbF9nZW4ocGNpX2Rldi0+ZGV2aWNlX2lkKSA8 IDMpCmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuaCBiL2xpYi9pb2N0bF93cmFwcGVy cy5oCmluZGV4IGYwYmUyNjA4Li5hZDkzZGFmZiAxMDA2NDQKLS0tIGEvbGliL2lvY3RsX3dyYXBw ZXJzLmgKKysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKQEAgLTEzNiw3ICsxMzYsNyBAQCB1aW50 NjRfdCBnZW1fdG90YWxfc3RvbGVuX3NpemUoaW50IGZkKTsKIHVpbnQ2NF90IGdlbV9hdmFpbGFi bGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwogdWludDY0X3QgZ2VtX2FwZXJ0dXJlX3NpemUoaW50 IGZkKTsKIHVpbnQ2NF90IGdlbV9nbG9iYWxfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwotdWludDY0 X3QgZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUodm9pZCk7Cit1aW50NjRfdCBnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwogYm9vbCBnZW1faGFzX3NvZnRwaW4oaW50IGZkKTsK IGJvb2wgZ2VtX2hhc19leGVjX2ZlbmNlKGludCBmZCk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5 MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMgYi90ZXN0cy9pOTE1L2dlbV9jb25jdXJyZW50X2FsbC5j CmluZGV4IDYwNDkzNzJkLi5mNzE5YjBhMSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fY29u Y3VycmVudF9hbGwuYworKysgYi90ZXN0cy9pOTE1L2dlbV9jb25jdXJyZW50X2FsbC5jCkBAIC0x ODUwLDcgKzE4NTAsNyBAQCBpZ3RfbWFpbgogCQkJCSBjLT5uYW1lLCBzLT5uYW1lLCAic21hbGwi KTsKIAkJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQlpZ3RfZml4dHVyZSB7Ci0JCQkJCWNvdW50 ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKS80LAorCQkJCQljb3Vu dCA9IG51bV9idWZmZXJzKGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKS80LAogCQkJCQkJ CSAgICBzLCBjLCBDSEVDS19SQU0pOwogCQkJCX0KIAkJCQlydW5fbW9kZXMobmFtZSwgYywgbW9k ZXMsIHMsIGNvdW50KTsKQEAgLTE4NjEsNyArMTg2MSw3IEBAIGlndF9tYWluCiAJCQkJIGMtPm5h bWUsIHMtPm5hbWUsICJ0aHJhc2giKTsKIAkJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQlpZ3Rf Zml4dHVyZSB7Ci0JCQkJCWNvdW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0dXJl X3NpemUoKSwKKwkJCQkJY291bnQgPSBudW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1cmVf c2l6ZShmZCksCiAJCQkJCQkJICAgIHMsIGMsIENIRUNLX1JBTSk7CiAJCQkJfQogCQkJCXJ1bl9t b2RlcyhuYW1lLCBjLCBtb2RlcywgcywgY291bnQpOwpAQCAtMTg5Myw3ICsxODkzLDcgQEAgaWd0 X21haW4KIAkJCQkgYy0+bmFtZSwgcy0+bmFtZSwgInNocmluayIpOwogCQkJaWd0X3N1YnRlc3Rf Z3JvdXAgewogCQkJCWlndF9maXh0dXJlIHsKLQkJCQkJY291bnQgPSBudW1fYnVmZmVycyhnZW1f bWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpLAorCQkJCQljb3VudCA9IG51bV9idWZmZXJzKGdlbV9t YXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKSwKIAkJCQkJCQkgICAgcywgYywgQ0hFQ0tfUkFNKTsK IAogCQkJCQlpZ3RfZm9ya19zaHJpbmtfaGVscGVyKGZkKTsKQEAgLTE5MDksOCArMTkwOSw4IEBA IGlndF9tYWluCiAJCQkJIGMtPm5hbWUsIHMtPm5hbWUsICJzd2FwIik7CiAJCQlpZ3Rfc3VidGVz dF9ncm91cCB7CiAJCQkJaWd0X2ZpeHR1cmUgewotCQkJCQlpZiAoaW50ZWxfZ2V0X2F2YWlsX3Jh bV9tYigpID4gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKS8oMTAyNCoxMDI0KSkgewotCQkJ CQkJcGluX3N6ID0gaW50ZWxfZ2V0X2F2YWlsX3JhbV9tYigpIC0gZ2VtX21hcHBhYmxlX2FwZXJ0 dXJlX3NpemUoKS8oMTAyNCoxMDI0KTsKKwkJCQkJaWYgKGludGVsX2dldF9hdmFpbF9yYW1fbWIo KSA+IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKS8oMTAyNCoxMDI0KSkgeworCQkJCQkJ cGluX3N6ID0gaW50ZWxfZ2V0X2F2YWlsX3JhbV9tYigpIC0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJl X3NpemUoZmQpLygxMDI0KjEwMjQpOwogCiAJCQkJCQlpZ3RfZGVidWcoIlBpbm5pbmcgJWxsZCBN aUJcbiIsIChsb25nIGxvbmcpcGluX3N6KTsKIAkJCQkJCXBpbl9zeiAqPSAxMDI0ICogMTAyNDsK QEAgLTE5MjQsNyArMTkyNCw3IEBAIGlndF9tYWluCiAJCQkJCQlpZ3RfcmVxdWlyZShwaW5uZWQp OwogCQkJCQl9CiAKLQkJCQkJY291bnQgPSBudW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1 cmVfc2l6ZSgpLAorCQkJCQljb3VudCA9IG51bV9idWZmZXJzKGdlbV9tYXBwYWJsZV9hcGVydHVy ZV9zaXplKGZkKSwKIAkJCQkJCQkgICAgcywgYywgQ0hFQ0tfUkFNIHwgQ0hFQ0tfU1dBUCk7CiAJ CQkJfQogCQkJCXJ1bl9tb2RlcyhuYW1lLCBjLCBtb2RlcywgcywgY291bnQpOwpkaWZmIC0tZ2l0 IGEvdGVzdHMvaTkxNS9nZW1fY3B1X3JlbG9jLmMgYi90ZXN0cy9pOTE1L2dlbV9jcHVfcmVsb2Mu YwppbmRleCA0NzA5OTg2Mi4uMTdjMmZlMTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2Nw dV9yZWxvYy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2NwdV9yZWxvYy5jCkBAIC0yODMsNyArMjgz LDcgQEAgaWd0X21haW4KIAkJcnVuX3Rlc3QoaTkxNSwgMSk7CiAKIAlpZ3Rfc3VidGVzdCgiZnVs bCIpIHsKLQkJdWludDY0X3QgYXBlcl9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUo KTsKKwkJdWludDY0X3QgYXBlcl9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoaTkx NSk7CiAJCXVuc2lnbmVkIGxvbmcgY291bnQgPSBhcGVyX3NpemUgLyA0MDk2ICsgMTsKIAogCQlp bnRlbF9yZXF1aXJlX21lbW9yeShjb3VudCwgNDA5NiwgQ0hFQ0tfUkFNKTsKQEAgLTI5Miw3ICsy OTIsNyBAQCBpZ3RfbWFpbgogCX0KIAogCWlndF9zdWJ0ZXN0KCJmb3JrZWQiKSB7Ci0JCXVpbnQ2 NF90IGFwZXJfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCk7CisJCXVpbnQ2NF90 IGFwZXJfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGk5MTUpOwogCQl1bnNpZ25l ZCBsb25nIGNvdW50ID0gYXBlcl9zaXplIC8gNDA5NiArIDE7CiAJCWludCBuY3B1cyA9IHN5c2Nv bmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9l eGVjX2xhdGVuY3kuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCmluZGV4IDZkZDE5 MWVjLi4xYjdiNjZmMSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMK KysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKQEAgLTQwLDYgKzQwLDcgQEAKIAog I2luY2x1ZGUgImRybS5oIgogCisjaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUgImln dF9zeXNmcy5oIgogI2luY2x1ZGUgImlndF92Z2VtLmgiCiAjaW5jbHVkZSAiaWd0X2R1bW15bG9h ZC5oIgpAQCAtNjc5LDcgKzY4MCw3IEBAIGlndF9tYWluCiAJCWlmIChyaW5nX3NpemUgPiAxMDI0 KQogCQkJcmluZ19zaXplID0gMTAyNDsKIAotCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChp bnRlbF9nZXRfcGNpX2RldmljZSgpLCBmYWxzZSwgZGV2aWNlKTsKKwkJaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQoaWd0X2RldmljZV9nZXRfcGNpX2RldihkZXZpY2UpLCBmYWxzZSwgZGV2aWNl KTsKIAkJcmNzX2Nsb2NrID0gY2xvY2tyYXRlKGRldmljZSwgUkNTX1RJTUVTVEFNUCk7CiAJCWln dF9pbmZvKCJSQ1MgdGltZXN0YW1wIGNsb2NrOiAlLjBmS0h6LCAlLjFmbnNcbiIsCiAJCQkgcmNz X2Nsb2NrIC8gMWUzLCAxZTkgLyByY3NfY2xvY2spOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fZXhlY19wYXJzZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19wYXJzZS5jCmluZGV4IDYyZThk MGE1Li5mOWU5M2JhMSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19wYXJzZS5jCisr KyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfcGFyc2UuYwpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5j bHVkZSA8ZHJtLmg+CiAKKyNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCisKICNpZm5kZWYgSTkxNV9Q QVJBTV9DTURfUEFSU0VSX1ZFUlNJT04KICNkZWZpbmUgSTkxNV9QQVJBTV9DTURfUEFSU0VSX1ZF UlNJT04gICAgICAgMjgKICNlbmRpZgpAQCAtNTMwLDcgKzUzMiw3IEBAIGlndF9tYWluCiAjdW5k ZWYgUkVHCiAKIAkJaWd0X2ZpeHR1cmUgewotCQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo aW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgZmQpOworCQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2luaXQoaWd0X2RldmljZV9nZXRfcGNpX2RldihmZCksIDAsIGZkKTsKIAkJfQogCiAJCWZvciAo aW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShscmlzKTsgaSsrKSB7CmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2dlbV9tbWFwLmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwLmMKaW5kZXggMGVkMTU4Nzgu LjRlMzBmZWMxIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9tbWFwLmMKKysrIGIvdGVzdHMv aTkxNS9nZW1fbW1hcC5jCkBAIC01MywxMCArNTMsMTAgQEAgdGVzdF9odWdlX2JvKGludCBodWdl KQogCiAJc3dpdGNoIChodWdlKSB7CiAJY2FzZSAtMToKLQkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdl bV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkgLyAyOworCQlodWdlX29iamVjdF9zaXplID0gZ2Vt X21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQpIC8gMjsKIAkJYnJlYWs7CiAJY2FzZSAwOgotCQlo dWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSArIFBBR0VfU0la RTsKKwkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKSAr IFBBR0VfU0laRTsKIAkJYnJlYWs7CiAJY2FzZSAxOgogCQlodWdlX29iamVjdF9zaXplID0gZ2Vt X2FwZXJ0dXJlX3NpemUoZmQpICsgUEFHRV9TSVpFOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fbW1hcF9ndHQuYyBiL3Rlc3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMKaW5kZXggZjZmYmJlMTku LjYwYzE5ZDYxIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9tbWFwX2d0dC5jCisrKyBiL3Rl c3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMKQEAgLTUyNyw3ICs1MjcsNyBAQCB0ZXN0X2h1Z2VfYm8o aW50IGZkLCBpbnQgaHVnZSwgaW50IHRpbGluZykKIAogCXN3aXRjaCAoaHVnZSkgewogCWNhc2Ug LTE6Ci0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpIC8gMjsKKwkJc2l6ZSA9 IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKSAvIDI7CiAKIAkJLyogUG93ZXIgb2YgdHdv IGZlbmNlIHNpemUsIG5hdHVyYWwgZmVuY2UKIAkJICogYWxpZ25tZW50LCBhbmQgdGhlIGd1YXJk IHBhZ2UgYXQgdGhlIGVuZApAQCAtNTQyLDcgKzU0Miw3IEBAIHRlc3RfaHVnZV9ibyhpbnQgZmQs IGludCBodWdlLCBpbnQgdGlsaW5nKQogCQkJc2l6ZSAvPSAyOwogCQlicmVhazsKIAljYXNlIDA6 Ci0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpICsgUEFHRV9TSVpFOworCQlz aXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQpICsgUEFHRV9TSVpFOwogCQlicmVh azsKIAlkZWZhdWx0OgogCQlzaXplID0gZ2VtX2dsb2JhbF9hcGVydHVyZV9zaXplKGZkKSArIFBB R0VfU0laRTsKQEAgLTYyMywxMyArNjIzLDEzIEBAIHRlc3RfaHVnZV9jb3B5KGludCBmZCwgaW50 IGh1Z2UsIGludCB0aWxpbmdfYSwgaW50IHRpbGluZ19iLCBpbnQgbmNwdXMpCiAKIAlzd2l0Y2gg KGh1Z2UpIHsKIAljYXNlIC0yOgotCQlodWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2Fw ZXJ0dXJlX3NpemUoKSAvIDQ7CisJCWh1Z2Vfb2JqZWN0X3NpemUgPSBnZW1fbWFwcGFibGVfYXBl cnR1cmVfc2l6ZShmZCkgLyA0OwogCQlicmVhazsKIAljYXNlIC0xOgotCQlodWdlX29iamVjdF9z aXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSAvIDI7CisJCWh1Z2Vfb2JqZWN0X3Np emUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgLyAyOwogCQlicmVhazsKIAljYXNl IDA6Ci0JCWh1Z2Vfb2JqZWN0X3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpICsg UEFHRV9TSVpFOworCQlodWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3Np emUoZmQpICsgUEFHRV9TSVpFOwogCQlicmVhazsKIAljYXNlIDE6CiAJCWh1Z2Vfb2JqZWN0X3Np emUgPSBnZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUoZmQpICsgUEFHRV9TSVpFOwpkaWZmIC0tZ2l0 IGEvdGVzdHMvaTkxNS9nZW1fcHdyaXRlLmMgYi90ZXN0cy9pOTE1L2dlbV9wd3JpdGUuYwppbmRl eCA2OTZiZDMxNi4uNWNhZTEyMWEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3B3cml0ZS5j CisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3B3cml0ZS5jCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyB2 b2lkIHRlc3RfYmlnX2NwdShpbnQgZmQsIGludCBzY2FsZSwgdW5zaWduZWQgZmxhZ3MpCiAKIAlz d2l0Y2ggKHNjYWxlKSB7CiAJY2FzZSAwOgotCQlzaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJl X3NpemUoKSArIDQwOTY7CisJCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkg KyA0MDk2OwogCQlicmVhazsKIAljYXNlIDE6CiAJCXNpemUgPSBnZW1fZ2xvYmFsX2FwZXJ0dXJl X3NpemUoZmQpICsgNDA5NjsKQEAgLTE1MSw3ICsxNTEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Jp Z19ndHQoaW50IGZkLCBpbnQgc2NhbGUsIHVuc2lnbmVkIGZsYWdzKQogCWlndF9yZXF1aXJlKGdl bV9tbWFwX19oYXNfd2MoZmQpKTsKIAlzd2l0Y2ggKHNjYWxlKSB7CiAJY2FzZSAwOgotCQlzaXpl ID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSArIDQwOTY7CisJCXNpemUgPSBnZW1fbWFw cGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKyA0MDk2OwogCQlicmVhazsKIAljYXNlIDE6CiAJCXNp emUgPSBnZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUoZmQpICsgNDA5NjsKZGlmZiAtLWdpdCBhL3Rl c3RzL2k5MTUvZ2VtX3Nocmluay5jIGIvdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMKaW5kZXggYzhl MDU4MTQuLjczYjZiZTcyIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYworKysg Yi90ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYwpAQCAtNDA5LDcgKzQwOSw3IEBAIGlndF9tYWluCiAJ CSAqIHdlIGV4cGVjdCB0aGUgc2hyaW5rZXIgdG8gc3RhcnQgcHVyZ2luZyBvYmplY3RzLAogCQkg KiBhbmQgcG9zc2libHkgZmFpbC4KIAkJICovCi0JCWFsbG9jX3NpemUgPSBnZW1fbWFwcGFibGVf YXBlcnR1cmVfc2l6ZSgpIC8gMjsKKwkJYWxsb2Nfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVy ZV9zaXplKGZkKSAvIDI7CiAJCW51bV9wcm9jZXNzZXMgPSAxICsgKG1lbV9zaXplIC8gKGFsbG9j X3NpemUgPj4gMjApKTsKIAogCQlpZ3RfaW5mbygiVXNpbmcgJWQgcHJvY2Vzc2VzIGFuZCAlJ2xs dU1pQiBwZXIgcHJvY2Vzc1xuIiwKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9scHNw LmMgYi90ZXN0cy9pOTE1L2k5MTVfcG1fbHBzcC5jCmluZGV4IGIzMTlkYmU5Li4yODk3Yzk0OSAx MDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9pOTE1X3BtX2xwc3AuYworKysgYi90ZXN0cy9pOTE1L2k5 MTVfcG1fbHBzcC5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNs dWRlIDx1bmlzdGQuaD4KIAorI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKIAogc3RhdGljIGJvb2wg c3VwcG9ydHNfbHBzcCh1aW50MzJfdCBkZXZpZCkKIHsKQEAgLTIxMCw3ICsyMTEsNyBAQCBpZ3Rf bWFpbgogCiAJCWlndF9yZXF1aXJlKHN1cHBvcnRzX2xwc3AoZGV2aWQpKTsKIAotCQlpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBkcm1fZmQpOwor CQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2KGRybV9m ZCksIDAsIGRybV9mZCk7CiAKIAkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwogCX0K ZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9ycG0uYyBiL3Rlc3RzL2k5MTUvaTkxNV9w bV9ycG0uYwppbmRleCAwM2RlNjA5Yy4uZTgyZmEwNjggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUv aTkxNV9wbV9ycG0uYworKysgYi90ZXN0cy9pOTE1L2k5MTVfcG1fcnBtLmMKQEAgLTEzNjgsNyAr MTM2OCw3IEBAIHN0YXRpYyB2b2lkIGdlbV9ldmljdF9wd3JpdGVfc3VidGVzdCh2b2lkKQogCXVu c2lnbmVkIGludCBudW1fdHJhc2hfYm9zLCBuOwogCXVpbnQzMl90IGJ1ZjsKIAotCW51bV90cmFz aF9ib3MgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpIC8gKDEwMjQqMTAyNCkgKyAxOwor CW51bV90cmFzaF9ib3MgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShkcm1fZmQpIC8gKDEw MjQqMTAyNCkgKyAxOwogCXRyYXNoX2JvcyA9IG1hbGxvYyhudW1fdHJhc2hfYm9zICogc2l6ZW9m KCp0cmFzaF9ib3MpKTsKIAlpZ3RfYXNzZXJ0KHRyYXNoX2Jvcyk7CiAKQEAgLTE0MTIsNyArMTQx Miw3IEBAIHN0YXRpYyBib29sIGRldmljZV9pbl9wY2lfZDModm9pZCkKIAl1aW50MTZfdCB2YWw7 CiAJaW50IHJjOwogCi0JcmMgPSBwY2lfZGV2aWNlX2NmZ19yZWFkX3UxNihpbnRlbF9nZXRfcGNp X2RldmljZSgpLCAmdmFsLCAweGQ0KTsKKwlyYyA9IHBjaV9kZXZpY2VfY2ZnX3JlYWRfdTE2KGln dF9kZXZpY2VfZ2V0X3BjaV9kZXYoZHJtX2ZkKSwgJnZhbCwgMHhkNCk7CiAJaWd0X2Fzc2VydF9l cShyYywgMCk7CiAKIAlpZ3RfZGVidWcoIiVzOiBQQ0kgRDMgc3RhdGU9JWRcbiIsIF9fZnVuY19f LCB2YWwgJiAweDMpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZsaXAuYyBiL3Rlc3RzL2ttc19m bGlwLmMKaW5kZXggZGZhNWE2OWUuLjZlY2UxZTUzIDEwMDc1NQotLS0gYS90ZXN0cy9rbXNfZmxp cC5jCisrKyBiL3Rlc3RzL2ttc19mbGlwLmMKQEAgLTEyMjQsNyArMTIyNCw3IEBAIHN0YXRpYyB2 b2lkIHJ1bl90ZXN0X29uX2NydGNfc2V0KHN0cnVjdCB0ZXN0X291dHB1dCAqbywgaW50ICpjcnRj X2lkeHMsCiAJLyogMjU2IE1CIGlzIHVzdWFsbHkgdGhlIG1heGltdW0gbWFwcGFibGUgYXBlcnR1 cmUsCiAJICogKG1ha2UgaXQgNHggdGltZXMgdGhhdCB0byBlbnN1cmUgZmFpbHVyZSkgKi8KIAlp ZiAoby0+ZmxhZ3MgJiBURVNUX0JPX1RPT0JJRykgewotCQlib19zaXplID0gNCpnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZSgpOworCQlib19zaXplID0gNCpnZW1fbWFwcGFibGVfYXBlcnR1cmVf c2l6ZShkcm1fZmQpOwogCQlpZ3RfcmVxdWlyZShib19zaXplIDwgZ2VtX2dsb2JhbF9hcGVydHVy ZV9zaXplKGRybV9mZCkpOwogCX0KIApkaWZmIC0tZ2l0IGEvdGVzdHMvcHJpbWVfbW1hcC5jIGIv dGVzdHMvcHJpbWVfbW1hcC5jCmluZGV4IGZjOTg1Nzg0Li4wNmE2NmNhYiAxMDA2NDQKLS0tIGEv dGVzdHMvcHJpbWVfbW1hcC5jCisrKyBiL3Rlc3RzL3ByaW1lX21tYXAuYwpAQCAtNDQ3LDggKzQ0 Nyw4IEBAIHRlc3RfYXBlcnR1cmVfbGltaXQodm9pZCkKIAljaGFyICpwdHIxLCAqcHRyMjsKIAl1 aW50MzJfdCBoYW5kbGUxLCBoYW5kbGUyOwogCS8qIFR3byBidWZmZXJzIHRoZSBzdW0gb2Ygd2hp Y2ggPiBtYXBwYWJsZSBhcGVydHVyZSAqLwotCXVpbnQ2NF90IHNpemUxID0gKGdlbV9tYXBwYWJs ZV9hcGVydHVyZV9zaXplKCkgKiA3KSAvIDg7Ci0JdWludDY0X3Qgc2l6ZTIgPSAoZ2VtX21hcHBh YmxlX2FwZXJ0dXJlX3NpemUoKSAqIDMpIC8gODsKKwl1aW50NjRfdCBzaXplMSA9IChnZW1fbWFw cGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKiA3KSAvIDg7CisJdWludDY0X3Qgc2l6ZTIgPSAoZ2Vt X21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQpICogMykgLyA4OwogCiAJaGFuZGxlMSA9IGdlbV9j cmVhdGUoZmQsIHNpemUxKTsKIAlmaWxsX2JvKGhhbmRsZTEsIEJPX1NJWkUpOwpkaWZmIC0tZ2l0 IGEvdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jIGIvdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jCmlu ZGV4IDkwMjYwYTJmLi4yMmM5MWEwNiAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfYXVkaW9fZHVt cC5jCisrKyBiL3Rvb2xzL2ludGVsX2F1ZGlvX2R1bXAuYwpAQCAtMzIsNiArMzIsNyBAQAogI2lu Y2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPGVyci5oPgogI2luY2x1ZGUgPGFycGEvaW5ldC5o PgorI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgogI2luY2x1 ZGUgImludGVsX3JlZy5oIgogI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKQEAgLTI0NjQsOCAr MjQ2NSwxMiBAQCBzdGF0aWMgdm9pZCBkdW1wX2JyYXN3ZWxsKHZvaWQpCiBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXY7CisJaW50 IGZkOworCisJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKKwlwY2lfZGV2ID0g aWd0X2RldmljZV9nZXRfcGNpX2RldihmZCk7CisJY2xvc2UoZmQpOwogCi0JcGNpX2RldiA9IGlu dGVsX2dldF9wY2lfZGV2aWNlKCk7CiAJZGV2aWQgPSBwY2lfZGV2LT5kZXZpY2VfaWQ7IC8qIFhY WCBub3QgdHJ1ZSB3aGVuIG1hcHBpbmchICovCiAKIAlkb19zZWxmX3Rlc3RzKCk7CkBAIC0yNDkz LDUgKzI0OTgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWR1bXBfZWFn bGVsYWtlKCk7CiAJfQogCisJY2xvc2UoZmQpOworCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQg YS90b29scy9pbnRlbF9iYWNrbGlnaHQuYyBiL3Rvb2xzL2ludGVsX2JhY2tsaWdodC5jCmluZGV4 IDA2N2ZkNDE4Li44Mjc1MTJiZSAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfYmFja2xpZ2h0LmMK KysrIGIvdG9vbHMvaW50ZWxfYmFja2xpZ2h0LmMKQEAgLTMwLDggKzMwLDkgQEAKICNpbmNsdWRl IDxzdGRpby5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCisjaW5jbHVkZSAiZHJtdGVzdC5oIgor I2luY2x1ZGUgImlndF9kZXZpY2UuaCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgotI2luY2x1ZGUg ImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJpbnRlbF9yZWcuaCIKIAogLyogWFhYIFBDSCBv bmx5IHRvZGF5ICovCkBAIC0zOSw4ICs0MCwxMSBAQAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq KiBhcmd2KQogewogCXVpbnQzMl90IGN1cnJlbnQsIG1heDsKKwlpbnQgZmQ7CiAKLQlpbnRlbF9t bWlvX3VzZV9wY2lfYmFyKGludGVsX2dldF9wY2lfZGV2aWNlKCkpOworCWZkID0gZHJtX29wZW5f ZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJaW50ZWxfbW1pb191c2VfcGNpX2JhcihpZ3RfZGV2aWNl X2dldF9wY2lfZGV2KGZkKSk7CisJY2xvc2UoZmQpOwogCiAJY3VycmVudCA9IElOUkVHKEJMQ19Q V01fQ1BVX0NUTCkgJiBCQUNLTElHSFRfRFVUWV9DWUNMRV9NQVNLOwogCW1heCA9IElOUkVHKEJM Q19QV01fUENIX0NUTDIpID4+IDE2OwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZGlzcGxheV9w b2xsZXIuYyBiL3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMKaW5kZXggNTFmNWI5YTUuLjJj YWU4OGRkIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jCisrKyBiL3Rv b2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJp bnRlbF9pby5oIgogI2luY2x1ZGUgImludGVsX3JlZy5oIgogI2luY2x1ZGUgImlndF9kZWJ1Z2Zz LmgiCisjaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNs dWRlICJpZ3RfYXV4LmgiCiAKQEAgLTk3MSw2ICs5NzIsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQogCXVpbnQzMl90IGEsIGI7CiAJZW51bSB0ZXN0IHRlc3QgPSBURVNUX0lO VkFMSUQ7CiAJY29uc3QgaW50IGNvdW50ID0gQVJSQVlfU0laRShtaW4pLzI7CisJaW50IGZkOwog CiAJZm9yICg7OykgewogCQlzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNb XSA9IHsKQEAgLTEwNDYsNyArMTA0OCw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJCX0KIAl9CiAKLQlkZXZpZCA9IGludGVsX2dldF9wY2lfZGV2aWNlKCktPmRldmljZV9p ZDsKKwlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOworCWRldmlkID0gaWd0X2Rl dmljZV9nZXRfcGNpX2RldihmZCktPmRldmljZV9pZDsKIAogCS8qCiAJICogY2hlY2sgaWYgdGhl IHJlcXVpcmVzIHJlZ2lzdGVycyBhcmUKQEAgLTExODcsNyArMTE5MCw3IEBAIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiAJCWJyZWFrOwogCX0KIAotCWludGVsX3JlZ2lzdGVyX2Fj Y2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2KGZkKSwgMCwgLTEpOwogCiAJcHJp bnRmKCIlcz9cbiIsIHRlc3RfbmFtZSh0ZXN0LCBwaXBlLCBiaXQsIHRlc3RfcGl4ZWxjb3VudCkp OwogCkBAIC0xMjYzLDYgKzEyNjYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQogCX0KIAogCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7CisJY2xvc2UoZmQpOwogCiAJ aWYgKHF1aXQpCiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZm9yY2V3YWtl ZC5jIGIvdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jCmluZGV4IDAyZmJmODg4Li4zOGUzZjhmYyAx MDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jCisrKyBiL3Rvb2xzL2ludGVsX2Zv cmNld2FrZWQuYwpAQCAtMzQsOCArMzQsOCBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1 ZGUgPHN5c2xvZy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgImlndF9kZXZpY2Uu aCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgotI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKICNp bmNsdWRlICJkcm10ZXN0LmgiCiAKIGJvb2wgZGFlbW9uaXplZDsKQEAgLTY1LDYgKzY1LDcgQEAg aXNfYWxpdmUodm9pZCkgewogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlp bnQgcmV0OworCWludCBmZDsKIAogCWlmIChhcmdjID4gMiB8fCAoYXJnYyA9PSAyICYmICFzdHJu Y21wKGFyZ3ZbMV0sICItaCIsIDIpKSkgewogCQloZWxwKGFyZ3ZbMV0pOwpAQCAtODAsMjQgKzgx LDI3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCUlORk9fUFJJTlQoInN0 YXJ0ZWQgZGFlbW9uIik7CiAJfQogCi0JcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo aW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMSwgLTEpOworCWZkID0gZHJtX29wZW5fZHJpdmVyKERS SVZFUl9JTlRFTCk7CisJcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2Rldmlj ZV9nZXRfcGNpX2RldihmZCksIDEsIC0xKTsKIAlpZiAocmV0KSB7CiAJCUlORk9fUFJJTlQoIkNv dWxkbid0IGluaXQgcmVnaXN0ZXIgYWNjZXNzXG4iKTsKIAkJZXhpdCgxKTsKIAl9IGVsc2Ugewog CQlJTkZPX1BSSU5UKCJGb3JjZXdha2UgbG9ja2VkXG4iKTsKIAl9CisKIAl3aGlsZSgxKSB7CiAJ CWlmICghaXNfYWxpdmUoKSkgewogCQkJSU5GT19QUklOVCgiZ3B1IHJlc2V0PyByZXN0YXJ0aW5n IGRhZW1vblxuIik7CiAJCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOwotCQkJcmV0ID0g aW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMSwgLTEp OworCQkJcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2RldmljZV9nZXRfcGNp X2RldihmZCksIDEsIC0xKTsKIAkJCWlmIChyZXQpCiAJCQkJSU5GT19QUklOVCgiUmVnIGFjY2Vz cyBpbml0IGZhaWxcbiIpOwogCQl9CiAJCXNsZWVwKDEpOwogCX0KIAlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfZmluaSgpOworCWNsb3NlKGZkKTsKIAlJTkZPX1BSSU5UKCJGb3JjZXdha2UgdW5sb2Nr XG4iKTsKIAogCWlmIChkYWVtb25pemVkKSB7CmRpZmYgLS1naXQgYS90b29scy9pbnRlbF9ncHVf dGltZS5jIGIvdG9vbHMvaW50ZWxfZ3B1X3RpbWUuYwppbmRleCA1NmQ2NWZlMC4uYzI3MWI5NjQg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX2dwdV90aW1lLmMKKysrIGIvdG9vbHMvaW50ZWxfZ3B1 X3RpbWUuYwpAQCAtMzQsOCArMzQsOSBAQAogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2lu Y2x1ZGUgPHN5cy93YWl0Lmg+CiAKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0 X2RldmljZS5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCi0jaW5jbHVkZSAiaW50ZWxfY2hpcHNl dC5oIgogI2luY2x1ZGUgImludGVsX3JlZy5oIgogCiAjZGVmaW5lIFNBTVBMRVNfUEVSX1NFQyAg ICAgICAgICAgICAxMDAwMApAQCAtNjYsOCArNjcsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBlbmQ7CiAJc3RhdGljIHN0cnVjdCBy dXNhZ2UgcnVzYWdlOwogCWludCBzdGF0dXM7CisJaW50IGZkOwogCi0JaW50ZWxfbW1pb191c2Vf cGNpX2JhcihpbnRlbF9nZXRfcGNpX2RldmljZSgpKTsKKwlmZCA9IGRybV9vcGVuX2RyaXZlcihE UklWRVJfSU5URUwpOworCWludGVsX21taW9fdXNlX3BjaV9iYXIoaWd0X2RldmljZV9nZXRfcGNp X2RldihmZCkpOworCWNsb3NlKGZkKTsKIAogCWlmIChhcmdjID09IDEpIHsKIAkJZnByaW50Zihz dGRlcnIsICJ1c2FnZTogJXMgY21kIFthcmdzLi4uXVxuIiwgYXJndlswXSk7CmRpZmYgLS1naXQg YS90b29scy9pbnRlbF9ndHQuYyBiL3Rvb2xzL2ludGVsX2d0dC5jCmluZGV4IDMxMTY5NGJhLi42 NjQ5ZDE5NCAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfZ3R0LmMKKysrIGIvdG9vbHMvaW50ZWxf Z3R0LmMKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlIDxwY2lhY2Nlc3MuaD4KICNpbmNsdWRl IDx1bmlzdGQuaD4KIAorI2luY2x1ZGUgImRybXRlc3QuaCIKKyNpbmNsdWRlICJpZ3RfZGV2aWNl LmgiCiAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAK QEAgLTE0MCwxMyArMTQyLDE3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsK IAlzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsKIAl1bnNpZ25lZCBpbnQgc3RhcnQsIGd0dF9z aXplOworCWludCBmZDsKIAlpbnQgZmxhZ1tdID0gewogCQlQQ0lfREVWX01BUF9GTEFHX1dSSVRF X0NPTUJJTkUsCiAJCVBDSV9ERVZfTUFQX0ZMQUdfV1JJVEFCTEUsCiAJCTAKIAl9LCBmOwogCi0J cGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CisJZmQgPSBkcm1fb3Blbl9kcml2ZXIo RFJJVkVSX0lOVEVMKTsKKwlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldihmZCk7CisJ Y2xvc2UoZmQpOworCiAJZGV2aWQgPSBwY2lfZGV2LT5kZXZpY2VfaWQ7CiAKIAlpZiAoSVNfR0VO MihkZXZpZCkpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2luZm9mcmFtZXMuYyBiL3Rvb2xz L2ludGVsX2luZm9mcmFtZXMuYwppbmRleCAyZWY1ZDRmZC4uOGRkMjkxMTYgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2ludGVsX2luZm9mcmFtZXMuYworKysgYi90b29scy9pbnRlbF9pbmZvZnJhbWVzLmMK QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcu aD4KICNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCiAjaW5jbHVk ZSAiaW50ZWxfaW8uaCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAjaW5jbHVkZSAiZHJt dGVzdC5oIgpAQCAtMTA4MSw2ICsxMDgyLDcgQEAgcHJpbnRmKCJPcHRpb25zOlxuIgogaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlpbnQgb3B0OworCWludCBmZDsKIAlpbnQg cmV0ID0gMDsKIAlUcmFuc2NvZGVyIHRyYW5zY29kZXIgPSBUUkFOU0NfSU5WQUxJRDsKIAlEaXBU eXBlIGRpcCA9IERJUF9JTlZBTElEOwpAQCAtMTEwNyw3ICsxMTA5LDEwIEBAIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiAJcHJpbnRmKCJXQVJOSU5HOiBUaGlzIGlzIGp1c3QgYSBk ZWJ1Z2dpbmcgdG9vbCEgRG9uJ3QgZXhwZWN0IGl0IHRvIHdvcmsiCiAJICAgICAgICIgcGVyZmVj dGx5OiB0aGUgS2VybmVsIG1pZ2h0IHVuZG8gb3VyIGNoYW5nZXMuXG4iKTsKIAotCXBjaV9kZXYg PSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOworCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9J TlRFTCk7CisJcGNpX2RldiA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXYoZmQpOworCWNsb3NlKGZk KTsKKwogCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KHBjaV9kZXYsIDAsIC0xKTsKIAlpbnRl bF9jaGVja19wY2goKTsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMgYi90 b29scy9pbnRlbF9sM19wYXJpdHkuYwppbmRleCBkOGM5OTdhZi4uMjA2YmRiYjYgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5jCisrKyBiL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5j CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8Z2V0b3B0Lmg+CiAjaW5jbHVkZSAiaW50ZWxf Y2hpcHNldC5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCisjaW5jbHVkZSAiaWd0X2RldmljZS5o IgogI2luY2x1ZGUgImlndF9zeXNmcy5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNsdWRl ICJjb25maWcuaCIKQEAgLTE4OSw3ICsxOTAsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQogCWlmIChpbnRlbF9nZW4oZGV2aWQpIDwgNyB8fCBJU19WQUxMRVlWSUVXKGRldmlk KSkKIAkJZXhpdCg3Nyk7CiAKLQlhc3NlcnQoaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgZGV2aWNlKSA9PSAwKTsKKwlhc3NlcnQoaW50ZWxfcmVn aXN0ZXJfYWNjZXNzX2luaXQoaWd0X2RldmljZV9nZXRfcGNpX2RldihkZXZpY2UpLCAwLCBkZXZp Y2UpID09IDApOwogCiAJZGlyID0gaWd0X3N5c2ZzX29wZW4oZGV2aWNlKTsKIApkaWZmIC0tZ2l0 IGEvdG9vbHMvaW50ZWxfbGlkLmMgYi90b29scy9pbnRlbF9saWQuYwppbmRleCAzN2M2YmE1ZS4u ZTI5YzEwZDEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX2xpZC5jCisrKyBiL3Rvb2xzL2ludGVs X2xpZC5jCkBAIC0zNyw5ICszNywxMCBAQAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CiAKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0X2Rl dmljZS5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCi0j aW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogCiAjZGVmaW5lIFNXRjE0X0xJRF9TVEFUVVNfQ0xP U0VECSgxPDwyOSkgLyogMCBoZXJlIG1lYW5zIG9wZW4gKi8KIApAQCAtMTE4LDggKzExOSwxMSBA QCBvdXQ6CiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHN3ZjE0LCBh Y3BpX2xpZDsKKwlpbnQgZmQ7CiAKLQlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGludGVsX2dldF9w Y2lfZGV2aWNlKCkpOworCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJaW50 ZWxfbW1pb191c2VfcGNpX2JhcihpZ3RfZGV2aWNlX2dldF9wY2lfZGV2KGZkKSk7CisJY2xvc2Uo ZmQpOwogCiAJd2hpbGUgKDEpIHsKIAkJc3dmMTQgPSBJTlJFRyhTV0YxNCk7CkBAIC0xNDIsNSAr MTQ2LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJCXNsZWVwKDIp OwogCX0KKwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfcGFuZWxfZml0 dGVyLmMgYi90b29scy9pbnRlbF9wYW5lbF9maXR0ZXIuYwppbmRleCAxMzdlZjYxYS4uN2NlZWRj MGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX3BhbmVsX2ZpdHRlci5jCisrKyBiL3Rvb2xzL2lu dGVsX3BhbmVsX2ZpdHRlci5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+ CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAiaWd0 X2RldmljZS5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNl dC5oIgogI2luY2x1ZGUgImludGVsX3JlZy5oIgpAQCAtMjczLDEzICsyNzQsMTcgQEAgaW50IG1h aW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJYm9vbCBkb19kaXNhYmxlID0gZmFsc2UsIGRv X2R1bXAgPSBmYWxzZSwgZG9fdXNhZ2UgPSBmYWxzZTsKIAlzdHJ1Y3QgcGNpX2RldmljZSAqcGNp X2RldjsKIAl1aW50MzJfdCBkZXZpZDsKKwlpbnQgZmQ7CiAKIAlwcmludGYoIldBUk5JTkc6XG4i CiAJICAgICAgICJUaGlzIHRvb2wgaXMgYSB3b3JrYXJvdW5kIGZvciBwZW9wbGUgdGhhdCBkb24n dCBoYXZlIGEgS2VybmVsICIKIAkgICAgICAgIndpdGggb3ZlcnNjYW4gY29tcGVuc2F0aW9uIHBy b3BlcnRpZXM6IGl0IGlzIGp1c3QgYSB0ZW1wb3JhcnkgIgogCSAgICAgICAic29sdXRpb24gdGhh dCBtYXkgb3IgbWF5IG5vdCB3b3JrLiBVc2UgaXQgYXQgeW91ciBvd24gcmlzay5cbiIpOwogCi0J cGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CisJZmQgPSBkcm1fb3Blbl9kcml2ZXIo RFJJVkVSX0lOVEVMKTsKKwlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldihmZCk7CisJ Y2xvc2UoZmQpOworCiAJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQocGNpX2RldiwgMCwgLTEp OwogCWRldmlkID0gcGNpX2Rldi0+ZGV2aWNlX2lkOwogCkBAIC0zNDMsNSArMzQ4LDYgQEAgaW50 IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIG91dDoKIAlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfZmluaSgpOworCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVs X3BlcmZfY291bnRlcnMuYyBiL3Rvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYwppbmRleCA1MGM0 YmNlNi4uNTk1NTBhZTMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYwor KysgYi90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNs dWRlICJkcm0uaCIKICNpbmNsdWRlICJpOTE1X2RybS5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIK KyNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKICNpbmNsdWRl ICJpbnRlbF9idWZtZ3IuaCIKICNpbmNsdWRlICJpbnRlbF9iYXRjaGJ1ZmZlci5oIgpAQCAtNDgz LDcgKzQ4NCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJaWYgKG9hY29udHJv bCkgewogCQkvKiBGb3JjZXdha2UgKi8KLQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgZmQpOworCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5p dChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2KGZkKSwgMCwgZmQpOwogCiAJCS8qIEVuYWJsZSBwZXJm b3JtYW5jZSBjb3VudGVycyAqLwogCQlpbnRlbF9yZWdpc3Rlcl93cml0ZShPQUNPTlRST0wsCmRp ZmYgLS1naXQgYS90b29scy9pbnRlbF9yZWcuYyBiL3Rvb2xzL2ludGVsX3JlZy5jCmluZGV4IDEy NDdiNzBiLi4wZGU2YmRjOSAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfcmVnLmMKKysrIGIvdG9v bHMvaW50ZWxfcmVnLmMKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAog I2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKICNpbmNsdWRlICJpZ3Rf Z3QuaCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgotI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIK IAogI2luY2x1ZGUgImludGVsX3JlZ19zcGVjLmgiCiAKQEAgLTI3NCwxNSArMjc0LDYgQEAgc3Rh dGljIGludCByZWdpc3Rlcl9zcm0oc3RydWN0IGNvbmZpZyAqY29uZmlnLCBzdHJ1Y3QgcmVnICpy ZWcsCiAJaW50IGZkLCBpOwogCXVpbnQzMl90IHZhbDsKIAotCWlmIChjb25maWctPmZkID09IC0x KSB7Ci0JCWNvbmZpZy0+ZmQgPSBfX2RybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwotCQlp ZiAoY29uZmlnLT5mZCA9PSAtMSkgewotCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBvcGVuaW5n IGRyaXZlcjogJXMiLAotCQkJCXN0cmVycm9yKGVycm5vKSk7Ci0JCQlleGl0KEVYSVRfRkFJTFVS RSk7Ci0JCX0KLQl9Ci0KIAlmZCA9IGNvbmZpZy0+ZmQ7CiAJZW5naW5lID0gZmluZF9lbmdpbmUo cmVnLT5lbmdpbmUpOwogCWlmIChlbmdpbmUgPT0gTlVMTCkKQEAgLTEwMTUsNiArMTAwNiwxMyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlyZXR1cm4gRVhJVF9GQUlMVVJF OwogCX0KIAorCWNvbmZpZy5mZCA9IF9fZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJ aWYgKGNvbmZpZy5mZCA9PSAtMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIG9wZW5pbmcg ZHJpdmVyOiAlcyIsCisJCQlzdHJlcnJvcihlcnJubykpOworCQlleGl0KEVYSVRfRkFJTFVSRSk7 CisJfQorCiAJaWYgKGNvbmZpZy5tbWlvZmlsZSkgewogCQlpZiAoIWNvbmZpZy5kZXZpZCkgewog CQkJZnByaW50ZihzdGRlcnIsICItLW1taW8gcmVxdWlyZXMgLS1kZXZpZFxuIik7CkBAIC0xMDI2 LDcgKzEwMjQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJZnByaW50 ZihzdGRlcnIsICItLWRldmlkIHdpdGhvdXQgLS1tbWlvXG4iKTsKIAkJCXJldHVybiBFWElUX0ZB SUxVUkU7CiAJCX0KLQkJY29uZmlnLnBjaV9kZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOwor CQljb25maWcucGNpX2RldiA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXYoY29uZmlnLmZkKTsKIAkJ Y29uZmlnLmRldmlkID0gY29uZmlnLnBjaV9kZXYtPmRldmljZV9pZDsKIAl9CiAKQEAgLTEwNTAs OCArMTA0OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlmcmVlKGNv bmZpZy5tbWlvZmlsZSk7CiAKLQlpZiAoY29uZmlnLmZkID49IDApCi0JCWNsb3NlKGNvbmZpZy5m ZCk7CisJY2xvc2UoY29uZmlnLmZkKTsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS90 b29scy9pbnRlbF9yZWdfY2hlY2tlci5jIGIvdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYwppbmRl eCA2YmRlNjNlYy4uZDY5YzRlOTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX3JlZ19jaGVja2Vy LmMKKysrIGIvdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYwpAQCAtMjYsNiArMjYsOCBAQAogI2lu Y2x1ZGUgPGVyci5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN0ZGJvb2wuaD4K KyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUg ImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogCkBAIC0zNDIsOCArMzQ0 LDEyIEBAIGNoZWNrX2RwZmNfY29udHJvbF9zYSh2b2lkKQogaW50IG1haW4oaW50IGFyZ2MsIGNo YXIqKiBhcmd2KQogewogCXN0cnVjdCBwY2lfZGV2aWNlICpkZXY7CisJaW50IGZkOworCisJZmQg PSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKKwlkZXYgPSBpZ3RfZGV2aWNlX2dldF9w Y2lfZGV2KGZkKTsKKwljbG9zZShmZCk7CiAKLQlkZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgp OwogCWRldmlkID0gZGV2LT5kZXZpY2VfaWQ7CiAJaW50ZWxfbW1pb191c2VfcGNpX2JhcihkZXYp OwogCmRpZmYgLS1naXQgYS90b29scy9pbnRlbF93YXRlcm1hcmsuYyBiL3Rvb2xzL2ludGVsX3dh dGVybWFyay5jCmluZGV4IGU3MWMzZDljLi45MGNhOTAwYiAxMDA2NDQKLS0tIGEvdG9vbHMvaW50 ZWxfd2F0ZXJtYXJrLmMKKysrIGIvdG9vbHMvaW50ZWxfd2F0ZXJtYXJrLmMKQEAgLTI5LDEyICsy OSwxNCBAQAogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxlcnIuaD4KICNpbmNsdWRl IDxzdHJpbmcuaD4KKyNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfaW8u aCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAjaW5jbHVkZSAiZHJtdGVzdC5oIgogCiBz dGF0aWMgdWludDMyX3QgZGlzcGxheV9iYXNlOwogc3RhdGljIHVpbnQzMl90IGRldmlkOworc3Rh dGljIGludCBmZDsKIAogc3RhdGljIHVpbnQzMl90IHJlYWRfcmVnKHVpbnQzMl90IGFkZHIpCiB7 CkBAIC0yNDksNyArMjUxLDcgQEAgc3RhdGljIHZvaWQgc2tsX3dtX2R1bXAodm9pZCkKIAl1aW50 MzJfdCBwbGFuZV9jdGxbbnVtX3BpcGVzXVttYXhfcGxhbmVzXTsKIAl1aW50MzJfdCB3bV9saW5l dGltZVtudW1fcGlwZXNdOwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0 X3BjaV9kZXZpY2UoKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9k ZXZpY2VfZ2V0X3BjaV9kZXYoZmQpLCAwLCAtMSk7CiAKIAlmb3IgKHBpcGUgPSAwOyBwaXBlIDwg bnVtX3BpcGVzOyBwaXBlKyspIHsKIAkJaW50IG51bV9wbGFuZXMgPSBza2xfbnVtX3BsYW5lcyhk ZXZpZCwgcGlwZSk7CkBAIC00NjksNyArNDcxLDcgQEAgc3RhdGljIHZvaWQgaWxrX3dtX2R1bXAo dm9pZCkKIAlpbnQgbnVtX3BpcGVzID0gaW50ZWxfZ2VuKGRldmlkKSA+PSA3ID8gMyA6IDI7CiAJ c3RydWN0IGlsa193bSB3bSA9IHt9OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0 KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXYoZmQpLCAwLCAtMSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwg bnVtX3BpcGVzOyBpKyspIHsKIAkJZHNwY250cltpXSA9IHJlYWRfcmVnKDB4NzAxODAgKyBpICog MHgxMDAwKTsKQEAgLTYxOSw3ICs2MjEsNyBAQCBzdGF0aWMgdm9pZCB2bHZfd21fZHVtcCh2b2lk KQogCXVpbnQzMl90IGRzcF9zc19wbSwgZGRyX3NldHVwMjsKIAlzdHJ1Y3QgZ21jaF93bSB3bXNb TUFYX1BMQU5FXSA9IHt9OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0 X3BjaV9kZXZpY2UoKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9k ZXZpY2VfZ2V0X3BjaV9kZXYoZmQpLCAwLCAtMSk7CiAKIAlkc3BhcmIgPSByZWFkX3JlZygweDcw MDMwKTsKIAlkc3BhcmIyID0gcmVhZF9yZWcoMHg3MDA2MCk7CkBAIC04MzUsNyArODM3LDcgQEAg c3RhdGljIHZvaWQgZzR4X3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBtaV9hcmJfc3RhdGU7CiAJ c3RydWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2Fj Y2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2KGZkKSwgMCwgLTEpOwogCiAJZHNw YWNudHIgPSByZWFkX3JlZygweDcwMTgwKTsKIAlkc3BiY250ciA9IHJlYWRfcmVnKDB4NzExODAp OwpAQCAtOTIxLDcgKzkyMyw3IEBAIHN0YXRpYyB2b2lkIGdlbjRfd21fZHVtcCh2b2lkKQogCXVp bnQzMl90IG1pX2FyYl9zdGF0ZTsKIAlzdHJ1Y3QgZ21jaF93bSB3bXNbTUFYX1BMQU5FXSA9IHt9 OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwg MCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9k ZXYoZmQpLCAwLCAtMSk7CiAKIAlkc3BhcmIgPSByZWFkX3JlZygweDcwMDMwKTsKIAlmdzEgPSBy ZWFkX3JlZygweDcwMDM0KTsKQEAgLTk5Miw3ICs5OTQsNyBAQCBzdGF0aWMgdm9pZCBwbnZfd21f ZHVtcCh2b2lkKQogCXVpbnQzMl90IGNicjsKIAlzdHJ1Y3QgZ21jaF93bSB3bXNbTUFYX1BMQU5F XSA9IHt9OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZp Y2UoKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0 X3BjaV9kZXYoZmQpLCAwLCAtMSk7CiAKIAlkc3BhcmIgPSByZWFkX3JlZygweDcwMDMwKTsKIAlm dzEgPSByZWFkX3JlZygweDcwMDM0KTsKQEAgLTEwODIsNyArMTA4NCw3IEBAIHN0YXRpYyB2b2lk IGdlbjNfd21fZHVtcCh2b2lkKQogCXVpbnQzMl90IG1pX2FyYl9zdGF0ZTsKIAlzdHJ1Y3QgZ21j aF93bSB3bXNbTUFYX1BMQU5FXSA9IHt9OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo aW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19p bml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXYoZmQpLCAwLCAtMSk7CiAKIAlkc3BhcmIgPSByZWFk X3JlZygweDcwMDMwKTsKIAlpbnN0cG0gPSByZWFkX3JlZygweDIwYzApOwpAQCAtMTE1MSw3ICsx MTUzLDcgQEAgc3RhdGljIHZvaWQgZ2VuMl93bV9kdW1wKHZvaWQpCiAJdWludDMyX3QgbWlfc3Rh dGU7CiAJc3RydWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lz dGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2KGZkKSwgMCwgLTEpOwog CiAJZHNwYXJiID0gcmVhZF9yZWcoMHg3MDAzMCk7CiAJbWVtX21vZGUgPSByZWFkX3JlZygweDIw Y2MpOwpAQCAtMTIyNiw3ICsxMjI4LDggQEAgc3RhdGljIHZvaWQgZ2VuMl93bV9kdW1wKHZvaWQp CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0JZGV2aWQgPSBpbnRlbF9n ZXRfcGNpX2RldmljZSgpLT5kZXZpY2VfaWQ7CisJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVS X0lOVEVMKTsKKwlkZXZpZCA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXYoZmQpLT5kZXZpY2VfaWQ7 CiAKIAlpZiAoaW50ZWxfZ2VuKGRldmlkKSA+PSA5KSB7CiAJCXNrbF93bV9kdW1wKCk7CkBAIC0x MjUwLDUgKzEyNTMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlyZXR1 cm4gMTsKIAl9CiAKKwljbG9zZShmZCk7CisKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMjAuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWls aW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2