From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5239D6E3C7 for ; Mon, 12 Aug 2019 08:47:26 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Mon, 12 Aug 2019 10:47:18 +0200 Message-Id: <20190812084718.9999-3-zbigniew.kempczynski@intel.com> In-Reply-To: <20190812084718.9999-1-zbigniew.kempczynski@intel.com> References: <20190812084718.9999-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 2/2] Add multi-device selection for IGT 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 Cc: Daniel Vetter , Petri Latvala List-ID: TmV3IElHVCBjb21tYW5kIGxpbmUgYXJndW1lbnQgLS1kZXZpY2UgYXMgd2VsbCBhcyBJR1RfREVW SUNFIGVudmlyb21lbnQKd2VyZSBhZGRlZCB0byBhbGxvdyBzZWxlY3RpbmcgZGV2aWNlIHVzaW5n IG11bHRpLWRldmljZSBzZWxlY3Rpb24gQVBJLgoKU2lnbmVkLW9mZi1ieTogWmJpZ25pZXcgS2Vt cGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+CkNjOiBBcmthZGl1c3og SGlsZXIgPGFya2FkaXVzei5oaWxlckBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWxAZmZ3bGwuY2g+CkNjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4K LS0tCiBsaWIvZHJtdGVzdC5jICB8IDE4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiBsaWIvZHJtdGVzdC5oICB8ICAgOSArKysKIGxpYi9pZ3RfY29y ZS5jIHwgIDEzICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2RybXRlc3QuYyBiL2xpYi9kcm10ZXN0LmMKaW5k ZXggYzM3OWE3YjcuLmMwMWE4OGE5IDEwMDY0NAotLS0gYS9saWIvZHJtdGVzdC5jCisrKyBiL2xp Yi9kcm10ZXN0LmMKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJpZ3RfZ3QuaCIKICNpbmNs dWRlICJpZ3Rfa21vZC5oIgogI2luY2x1ZGUgImlndF9zeXNmcy5oIgorI2luY2x1ZGUgImlndF9k ZXZpY2Vfc2Nhbi5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKICNpbmNsdWRlICJjb25maWcuaCIK ICNpbmNsdWRlICJpbnRlbF9yZWcuaCIKQEAgLTI4OSwyNSArMjkwLDIwOCBAQCBzdGF0aWMgaW50 IF9fb3Blbl9kcml2ZXIoY29uc3QgY2hhciAqYmFzZSwgaW50IG9mZnNldCwgdW5zaWduZWQgaW50 IGNoaXBzZXQpCiAJcmV0dXJuIF9fc2VhcmNoX2FuZF9vcGVuKGJhc2UsIG9mZnNldCwgY2hpcHNl dCk7CiB9CiAKK3N0YXRpYyBpbnQgX19vcGVuX2RyaXZlcl9leGFjdChjb25zdCBjaGFyICpuYW1l LCB1bnNpZ25lZCBpbnQgY2hpcHNldCkKK3sKKwlzdGF0aWMgcHRocmVhZF9tdXRleF90IG11dGV4 ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKKwlpbnQgZmQ7CisKKwlmZCA9IG9wZW5fZGV2 aWNlKG5hbWUsIGNoaXBzZXQpOworCWlmIChmZCAhPSAtMSkKKwkJcmV0dXJuIGZkOworCisJcHRo cmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisJZm9yIChjb25zdCBzdHJ1Y3QgbW9kdWxlICptID0g bW9kdWxlczsgbS0+bW9kdWxlOyBtKyspIHsKKwkJaWYgKGNoaXBzZXQgJiBtLT5iaXQpIHsKKwkJ CWlmIChtLT5tb2Rwcm9iZSkKKwkJCQltLT5tb2Rwcm9iZShtLT5tb2R1bGUpOworCQkJZWxzZQor CQkJCW1vZHByb2JlKG0tPm1vZHVsZSk7CisJCX0KKwl9CisJcHRocmVhZF9tdXRleF91bmxvY2so Jm11dGV4KTsKKworCXJldHVybiBvcGVuX2RldmljZShuYW1lLCBjaGlwc2V0KTsKK30KKworLyoK KyAqIEZvciBjb21wYXRpYmlsaXR5IG1vZGUgd2hlbiBtdWx0aXBsZSAtLWRldmljZSBhcmd1bWVu dCB3ZXJlIHBhc3NlZAorICogdGhpcyBmdW5jdGlvbiB0cmllcyB0byBiZSBzbWFydCBlbm91Z2gg dG8gaGFuZGxlIHRlc3RzIHdoaWNoIG9wZW5zCisgKiBtb3JlIHRoYW4gc2luZ2xlIGRldmljZS4g SXQgaXRlcmF0ZXMgb3ZlciBmaWx0ZXIgbGlzdCBhbmQKKyAqIGNvbXBhcmVzIHJlcXVlc3RlZCBj aGlwc2V0IHRvIGNhcmQgY2hpcHNldCAob3IgYW55KS4KKyAqCisgKiBSZXR1cm5zOgorICogVHJ1 ZSBpZiBjYXJkIGFjY29yZGluZyB0byBmaWx0ZXJzIGFkZGVkIGFuZCBjaGlwc2V0IHdhcyBmb3Vu ZCwKKyAqIGZhbHNlIG90aHdlcndpc2UuCisgKi8KK3N0YXRpYyBib29sIF9fZmluZF9jYXJkX3dp dGhfY2hpcHNldChpbnQgY2hpcHNldCwgc3RydWN0IGlndF9kZXZpY2VfY2FyZCAqY2FyZCkKK3sK KwlpbnQgaSwgbiA9IGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCk7CisJY29uc3QgY2hhciAqZmls dGVyOworCWJvb2wgbWF0Y2g7CisKKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJCWZpbHRl ciA9IGlndF9kZXZpY2VfZmlsdGVyX2dldChpKTsKKwkJbWF0Y2ggPSBpZ3RfZGV2aWNlX2NhcmRf bWF0Y2goZmlsdGVyLCBjYXJkKTsKKwkJaWYgKG1hdGNoICYmIChjYXJkLT5jaGlwc2V0ID09IGNo aXBzZXQgfHwKKwkJCSAgICAgIGNhcmQtPmNoaXBzZXQgPT0gRFJJVkVSX0FOWSkpIHsKKwkJCXJl dHVybiB0cnVlOworCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCiAvKioKICAqIF9fZHJt X29wZW5fZHJpdmVyOgogICogQGNoaXBzZXQ6IE9SJ2QgZmxhZ3MgZm9yIGVhY2ggY2hpcHNldCB0 byBzZWFyY2gsIGVnLiAjRFJJVkVSX0lOVEVMCiAgKgotICogT3BlbiB0aGUgZmlyc3QgRFJNIGRl dmljZSB3ZSBjYW4gZmluZCwgc2VhcmNoaW5nIHVwIHRvIDE2IGRldmljZSBub2RlcworICogRnVu Y3Rpb24gb3BlbnMgZGV2aWNlIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6CisgKiAxLiB3aGVuIC0t ZGV2aWNlIGFyZ3VtZW50cyBhcmUgcHJlc2VudCBkZXZpY2Ugc2Nhbm5pbmcgd2lsbCBiZSBleGVj dXRlZCwKKyAqIHRoZW4gZmlsdGVyIGFyZ3VtZW50IGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBv bmUuCisgKiAyLiBjb21wYXRpYmlsaXR5IG1vZGUgLSBvcGVuIHRoZSBmaXJzdCBEUk0gZGV2aWNl IHdlIGNhbiBmaW5kLAorICogc2VhcmNoaW5nIHVwIHRvIDE2IGRldmljZSBub2Rlcy4KICAqCiAg KiBSZXR1cm5zOgogICogQW4gb3BlbiBEUk0gZmQgb3IgLTEgb24gZXJyb3IKICAqLwogaW50IF9f ZHJtX29wZW5fZHJpdmVyKGludCBjaGlwc2V0KQogeworCWludCBuID0gaWd0X2RldmljZV9maWx0 ZXJfY291bnQoKTsKKworCWlmIChuKSB7CisJCWJvb2wgZm91bmQ7CisJCXN0cnVjdCBpZ3RfZGV2 aWNlX2NhcmQgY2FyZDsKKworCQlmb3VuZCA9IF9fZmluZF9jYXJkX3dpdGhfY2hpcHNldChjaGlw c2V0LCAmY2FyZCk7CisJCWlmICghZm91bmQgfHwgIXN0cmxlbihjYXJkLmNhcmQpKQorCQkJcmV0 dXJuIC0xOworCisJCXJldHVybiBfX29wZW5fZHJpdmVyX2V4YWN0KGNhcmQuY2FyZCwgY2hpcHNl dCk7CisJfQorCiAJcmV0dXJuIF9fb3Blbl9kcml2ZXIoIi9kZXYvZHJpL2NhcmQiLCAwLCBjaGlw c2V0KTsKIH0KIAotc3RhdGljIGludCBfX2RybV9vcGVuX2RyaXZlcl9yZW5kZXIoaW50IGNoaXBz ZXQpCitpbnQgX19kcm1fb3Blbl9kcml2ZXJfcmVuZGVyKGludCBjaGlwc2V0KQogeworCWludCBu ID0gaWd0X2RldmljZV9maWx0ZXJfY291bnQoKTsKKworCWlmIChuKSB7CisJCWJvb2wgZm91bmQ7 CisJCXN0cnVjdCBpZ3RfZGV2aWNlX2NhcmQgY2FyZDsKKworCQlmb3VuZCA9IF9fZmluZF9jYXJk X3dpdGhfY2hpcHNldChjaGlwc2V0LCAmY2FyZCk7CisJCWlmICghZm91bmQgfHwgIXN0cmxlbihj YXJkLnJlbmRlcikpCisJCQlyZXR1cm4gLTE7CisKKwkJcmV0dXJuIF9fb3Blbl9kcml2ZXJfZXhh Y3QoY2FyZC5yZW5kZXIsIGNoaXBzZXQpOworCX0KKwogCXJldHVybiBfX29wZW5fZHJpdmVyKCIv ZGV2L2RyaS9yZW5kZXJEIiwgMTI4LCBjaGlwc2V0KTsKIH0KIAorc3RhdGljIGludCBfX2RybV9v cGVuX3dpdGhfbnRoX2ZpbHRlcihpbnQgbnVtLCBpbnQgY2hpcHNldCwgYm9vbCBvcGVuX3JlbmRl cikKK3sKKwlzdHJ1Y3QgaWd0X2RldmljZV9jYXJkIGNhcmQ7CisJY29uc3QgY2hhciAqZmlsdGVy LCAqZGV2bmFtZTsKKwlib29sIG1hdGNoOworCWludCBuID0gaWd0X2RldmljZV9maWx0ZXJfY291 bnQoKTsKKworCWlmICghbiB8fCBudW0gPCAwIHx8IG51bSA+PSBuKSB7CisJCWlndF93YXJuKCJO byBkZXZpY2UgZmlsdGVyIG51bSA9PSAlZCBwYXNzZWRcbiIsIG51bSk7CisJCXJldHVybiAtMTsK Kwl9CisKKwlmaWx0ZXIgPSBpZ3RfZGV2aWNlX2ZpbHRlcl9nZXQobnVtKTsKKwltYXRjaCA9IGln dF9kZXZpY2VfY2FyZF9tYXRjaChmaWx0ZXIsICZjYXJkKTsKKwlpZiAoIW1hdGNoKSB7CisJCWln dF93YXJuKCJObyBkZXZpY2UgbWF0Y2ggZmlsdGVyOiAlc1xuIiwgZmlsdGVyKTsKKwkJcmV0dXJu IC0xOworCX0KKworCWlmICghc3RybGVuKGNhcmQuY2FyZCkgJiYgIXN0cmxlbihjYXJkLnJlbmRl cikpCisJCXJldHVybiAtMTsKKworCWRldm5hbWUgPSBvcGVuX3JlbmRlciA/IGNhcmQucmVuZGVy IDogY2FyZC5jYXJkOworCWlmICghc3RybGVuKGRldm5hbWUpKSB7CisJCWlndF93YXJuKCJObyAl cyBub2RlIG1hdGNoaW5nIGZpbHRlcjogJXNcbiIsCisJCQkgb3Blbl9yZW5kZXIgPyAicmVuZGVy IiA6ICJjYXJkIiwgZmlsdGVyKTsKKwkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gX19vcGVuX2Ry aXZlcl9leGFjdChkZXZuYW1lLCBjaGlwc2V0KTsKK30KKworLyoqCisgKiBkcm1fb3Blbl9jYXJk X3dpdGhfbnRoX2ZpbHRlcjoKKyAqIEBudW06IG51bWJlciBvZiAtLWRldmljZSBhcmd1bWVudAor ICogQGNoaXBzZXQ6IE9SJ2QgZmxhZ3MgZm9yIGVhY2ggY2hpcHNldCB0byBzZWFyY2gsIGVnLiAj RFJJVkVSX0lOVEVMCisgKgorICogT3BlbiAvZGV2L2RyaS9jYXJkWCBkZXZpY2UgdXNpbmcgbXVs dGktZGV2aWNlIHNlbGVjdGlvbiBBUEkuCisgKiBXaGVuIHRlc3QgcmVxdWlyZSB0byBvcGVuIG1v cmUgdGhhbiBvbmUgZGV2aWNlIHNlbGVjdGlvbiB1c2VzIGZpbHRlcgorICogcGFzc2VkIGFzIC0t ZGV2aWNlIGFyZ3VtZW50LiBBcmd1bWVudHMgQG51bSBpbmRpY2F0ZSBmaWx0ZXIgbnVtYmVyCisg KiBhbmQgQGNoaXBzZXQgZXhwZWN0ZWQgZGV2aWNlIGNhcmQgY2hpcHNldC4KKyAqCisgKiBBbiBv cGVuIERSTSBmZCBvciAtMSBvbiBlcnJvcgorICovCitpbnQgZHJtX29wZW5fY2FyZF93aXRoX250 aF9maWx0ZXIoaW50IG51bSwgaW50IGNoaXBzZXQpCit7CisJcmV0dXJuIF9fZHJtX29wZW5fd2l0 aF9udGhfZmlsdGVyKG51bSwgY2hpcHNldCwgZmFsc2UpOworfQorCisvKioKKyAqIGRybV9vcGVu X3JlbmRlcl93aXRoX250aF9maWx0ZXI6CisgKiBAbnVtOiBudW1iZXIgb2YgLS1kZXZpY2UgYXJn dW1lbnQKKyAqIEBjaGlwc2V0OiBPUidkIGZsYWdzIGZvciBlYWNoIGNoaXBzZXQgdG8gc2VhcmNo LCBlZy4gI0RSSVZFUl9JTlRFTAorICoKKyAqIE9wZW4gL2Rldi9kcmkvcmVuZGVyRFggZGV2aWNl IHVzaW5nIG11bHRpLWRldmljZSBzZWxlY3Rpb24gQVBJLgorICoKKyAqIFdoZW4gdGVzdCByZXF1 aXJlIHRvIG9wZW4gbW9yZSB0aGFuIG9uZSBkZXZpY2Ugc2VsZWN0aW9uIHVzZXMgZmlsdGVyCisg KiBwYXNzZWQgYXMgLS1kZXZpY2UgYXJndW1lbnQuIEFyZ3VtZW50cyBAbnVtIGluZGljYXRlIGZp bHRlciBudW1iZXIKKyAqIGFuZCBAY2hpcHNldCBleHBlY3RlZCBkZXZpY2UgY2FyZCBjaGlwc2V0 LgorICoKKyAqIEFuIG9wZW4gRFJNIGZkIG9yIC0xIG9uIGVycm9yCisgKi8KK2ludCBkcm1fb3Bl bl9yZW5kZXJfd2l0aF9udGhfZmlsdGVyKGludCBudW0sIGludCBjaGlwc2V0KQoreworCXJldHVy biBfX2RybV9vcGVuX3dpdGhfbnRoX2ZpbHRlcihudW0sIGNoaXBzZXQsIHRydWUpOworfQorCisv KioKKyAqIGRybV9vcGVuX2NhcmQ6CisgKiBAY2FyZDogcG9pbnRlciB0byBpZ3RfZGV2aWNlX2Nh cmQgc3RydWN0dXJlCisgKgorICogT3BlbiAvZGV2L2RyaS9jYXJkWCBkZXZpY2UgdXNpbmcgbXVs dGktZGV2aWNlIHNlbGVjdGlvbiBBUEkuCisgKgorICogUmVxdWlyZSBmaWxsZWQgQGNhcmQgYXJn dW1lbnQgKHNlZSBpZ3RfZGV2aWNlX2NhcmRfbWF0Y2goKSBmdW5jdGlvbikuCisgKgorICogQW4g b3BlbiBEUk0gZmQgb3IgLTEgb24gZXJyb3IKKyAqLworaW50IGRybV9vcGVuX2NhcmQoc3RydWN0 IGlndF9kZXZpY2VfY2FyZCAqY2FyZCkKK3sKKwlpZiAoIWNhcmQgfHwgIXN0cmxlbihjYXJkLT5j YXJkKSkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIF9fb3Blbl9kcml2ZXJfZXhhY3QoY2FyZC0+ Y2FyZCwgY2FyZC0+Y2hpcHNldCk7Cit9CisKKy8qKgorICogZHJtX29wZW5fcmVuZGVyOgorICog QGNhcmQ6IHBvaW50ZXIgdG8gaWd0X2RldmljZV9jYXJkIHN0cnVjdHVyZQorICoKKyAqIE9wZW4g L2Rldi9kcmkvcmVuZGVyRFggZGV2aWNlIHVzaW5nIG11bHRpLWRldmljZSBzZWxlY3Rpb24gQVBJ LgorICogUmVxdWlyZSBmaWxsZWQgQGNhcmQgYXJndW1lbnQgKHNlZSBpZ3RfZGV2aWNlX2NhcmRf bWF0Y2goKSBmdW5jdGlvbikuCisgKgorICogQW4gb3BlbiBEUk0gZmQgb3IgLTEgb24gZXJyb3IK KyAqLworaW50IGRybV9vcGVuX3JlbmRlcihzdHJ1Y3QgaWd0X2RldmljZV9jYXJkICpjYXJkKQor eworCWlmICghY2FyZCB8fCAhc3RybGVuKGNhcmQtPnJlbmRlcikpCisJCXJldHVybiAtMTsKKwor CXJldHVybiBfX29wZW5fZHJpdmVyX2V4YWN0KGNhcmQtPnJlbmRlciwgY2FyZC0+Y2hpcHNldCk7 Cit9CisKKwogc3RhdGljIGludCBhdF9leGl0X2RybV9mZCA9IC0xOwogc3RhdGljIGludCBhdF9l eGl0X2RybV9yZW5kZXJfZmQgPSAtMTsKIApkaWZmIC0tZ2l0IGEvbGliL2RybXRlc3QuaCBiL2xp Yi9kcm10ZXN0LmgKaW5kZXggNjE0ZjU3ZTYuLmZjMmEwYjU3IDEwMDY0NAotLS0gYS9saWIvZHJt dGVzdC5oCisrKyBiL2xpYi9kcm10ZXN0LmgKQEAgLTUwLDYgKzUwLDcgQEAKICNkZWZpbmUgRFJJ VkVSX0FNREdQVQkoMSA8PCAzKQogI2RlZmluZSBEUklWRVJfVjNECSgxIDw8IDQpCiAjZGVmaW5l IERSSVZFUl9QQU5GUk9TVAkoMSA8PCA1KQorCiAvKgogICogRXhjbHVkZSBEUlZFUl9WR0VNIGZy b20gRFJJVkVSX0FOWSBzaW5jZSBpZiB5b3UgcnVuIG9uIGEgc3lzdGVtCiAgKiB3aXRoIHZnZW0g YXMgd2VsbCBhcyBhIHN1cHBvcnRlZCBkcml2ZXIsIHlvdSBjYW4gZW5kIHVwIHdpdGggYQpAQCAt ODEsNiArODIsMTQgQEAgaW50IGRybV9vcGVuX2RyaXZlcihpbnQgY2hpcHNldCk7CiBpbnQgZHJt X29wZW5fZHJpdmVyX21hc3RlcihpbnQgY2hpcHNldCk7CiBpbnQgZHJtX29wZW5fZHJpdmVyX3Jl bmRlcihpbnQgY2hpcHNldCk7CiBpbnQgX19kcm1fb3Blbl9kcml2ZXIoaW50IGNoaXBzZXQpOwor aW50IF9fZHJtX29wZW5fZHJpdmVyX3JlbmRlcihpbnQgY2hpcHNldCk7CisKKy8qIE11bHRpIGRl dmljZSBBUEkgKi8KK2ludCBkcm1fb3Blbl9jYXJkX3dpdGhfbnRoX2ZpbHRlcihpbnQgbnVtLCBp bnQgY2hpcHNldCk7CitpbnQgZHJtX29wZW5fcmVuZGVyX3dpdGhfbnRoX2ZpbHRlcihpbnQgbnVt LCBpbnQgY2hpcHNldCk7CitzdHJ1Y3QgaWd0X2RldmljZV9jYXJkOworaW50IGRybV9vcGVuX2Nh cmQoc3RydWN0IGlndF9kZXZpY2VfY2FyZCAqY2FyZCk7CitpbnQgZHJtX29wZW5fcmVuZGVyKHN0 cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpOwogCiB2b2lkIGdlbV9xdWllc2NlbnRfZ3B1KGlu dCBmZCk7CiAKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKaW5k ZXggMWNiYjA5ZjkuLjliODUxMTc1IDEwMDY0NAotLS0gYS9saWIvaWd0X2NvcmUuYworKysgYi9s aWIvaWd0X2NvcmUuYwpAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgImlndF9zeXNycS5oIgog I2luY2x1ZGUgImlndF9yYy5oIgogI2luY2x1ZGUgImlndF9saXN0LmgiCisjaW5jbHVkZSAiaWd0 X2RldmljZV9zY2FuLmgiCiAKICNkZWZpbmUgVU5XX0xPQ0FMX09OTFkKICNpbmNsdWRlIDxsaWJ1 bndpbmQuaD4KQEAgLTMwNCw2ICszMDUsNyBAQCBlbnVtIHsKIAlPUFRfREVCVUcsCiAJT1BUX0lO VEVSQUNUSVZFX0RFQlVHLAogCU9QVF9TS0lQX0NSQywKKwlPUFRfREVWSUNFLAogCU9QVF9IRUxQ ID0gJ2gnCiB9OwogCkBAIC02MjQsNiArNjI2LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfdXNhZ2Uo Y29uc3QgY2hhciAqaGVscF9zdHIsIGJvb2wgb3V0cHV0X29uX3N0ZGVycikKIAkJICAgIiAgLS1z a2lwLWNyYy1jb21wYXJlXG4iCiAJCSAgICIgIC0taGVscC1kZXNjcmlwdGlvblxuIgogCQkgICAi ICAtLWRlc2NyaWJlXG4iCisJCSAgICIgIC0tZGV2aWNlIGZpbHRlclxuIgogCQkgICAiICAtLWhl bHB8LWhcbiIpOwogCWlmIChoZWxwX3N0cikKIAkJZnByaW50ZihmLCAiJXNcbiIsIGhlbHBfc3Ry KTsKQEAgLTcyNSw2ICs3MjgsMTEgQEAgc3RhdGljIHZvaWQgY29tbW9uX2luaXRfZW52KHZvaWQp CiAJaWYgKGVudikgewogCQlfX3NldF9mb3JjZWRfZHJpdmVyKGVudik7CiAJfQorCisJZW52ID0g Z2V0ZW52KCJJR1RfREVWSUNFIik7CisJaWYgKGVudikgeworCQlpZ3RfZGV2aWNlX2ZpbHRlcl9h ZGQoZW52KTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFy ICoqYXJndiwKQEAgLTc0Myw2ICs3NTEsNyBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAq YXJnYywgY2hhciAqKmFyZ3YsCiAJCXsiZGVidWciLCAgICAgICAgICAgICBvcHRpb25hbF9hcmd1 bWVudCwgTlVMTCwgT1BUX0RFQlVHfSwKIAkJeyJpbnRlcmFjdGl2ZS1kZWJ1ZyIsIG9wdGlvbmFs X2FyZ3VtZW50LCBOVUxMLCBPUFRfSU5URVJBQ1RJVkVfREVCVUd9LAogCQl7InNraXAtY3JjLWNv bXBhcmUiLCAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIE9QVF9TS0lQX0NSQ30sCisJCXsiZGV2 aWNlIiwgICAgICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0RFVklDRX0sCiAJ CXsiaGVscCIsICAgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX0hFTFB9 LAogCQl7MCwgMCwgMCwgMH0KIAl9OwpAQCAtODY1LDYgKzg3NCwxMCBAQCBzdGF0aWMgaW50IGNv bW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJCWNhc2UgT1BUX1NLSVBfQ1JDOgog CQkJaWd0X3NraXBfY3JjX2NvbXBhcmUgPSB0cnVlOwogCQkJZ290byBvdXQ7CisJCWNhc2UgT1BU X0RFVklDRToKKwkJCWFzc2VydChvcHRhcmcpOworCQkJaWd0X2RldmljZV9maWx0ZXJfYWRkKG9w dGFyZyk7CisJCQlicmVhazsKIAkJY2FzZSBPUFRfSEVMUDoKIAkJCXByaW50X3VzYWdlKGhlbHBf c3RyLCBmYWxzZSk7CiAJCQlyZXQgPSAtMTsKLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2