From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id ADC696EBD2 for ; Fri, 23 Aug 2019 07:32:01 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Fri, 23 Aug 2019 09:03:51 +0200 Message-Id: <20190823070351.16863-3-zbigniew.kempczynski@intel.com> In-Reply-To: <20190823070351.16863-1-zbigniew.kempczynski@intel.com> References: <20190823070351.16863-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5 2/2] Add 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: TmV3IElHVCBjb21tYW5kIGxpbmUgYXJndW1lbnQgLS1kZXZpY2UsIElHVF9ERVZJQ0UgZW52aXJv bWVudAphbmQgLmlndHJjIENvbW1vbjo6RGV2aWNlIHdlcmUgYWRkZWQgdG8gYWxsb3cgc2VsZWN0 aW5nIGRldmljZQp1c2luZyBkZXZpY2Ugc2VsZWN0aW9uIEFQSS4KClNpZ25lZC1vZmYtYnk6IFpi aWduaWV3IEtlbXBjennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgpDYzog QXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgpDYzogRGFuaWVsIFZl dHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBp bnRlbC5jb20+Ci0tLQogZG9jcy9jaGFtZWxpdW0udHh0IHwgICAzICsKIGxpYi9kcm10ZXN0LmMg ICAgICB8IDE4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K IGxpYi9kcm10ZXN0LmggICAgICB8ICAgOSArKysKIGxpYi9pZ3RfY29yZS5jICAgICB8ICAzNCAr KysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyMzIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2NzL2NoYW1lbGl1bS50eHQgYi9kb2NzL2NoYW1lbGl1bS50eHQK aW5kZXggMzJjMjk2ZjcuLmQzYTM3OWQzIDEwMDY0NAotLS0gYS9kb2NzL2NoYW1lbGl1bS50eHQK KysrIGIvZG9jcy9jaGFtZWxpdW0udHh0CkBAIC04NCw2ICs4NCw5IEBAIGV4YW1wbGUgKG9ubHkg Q2hhbWVsaXVtLlVSTCBpcyBtYW5kYXRvcnkpOgogICAgICMgVGhlIHBhdGggdG8gZHVtcCBmcmFt ZXMgdGhhdCBmYWlsIGNvbXBhcmlzb24gY2hlY2tzCiAgICAgRnJhbWVEdW1wUGF0aD0vcm9vdC8K IAorICAgICMgRGV2aWNlIHNlbGVjdGlvbiBmaWx0ZXIKKyAgICBEZXZpY2U9cGNpOnZlbmRvcj04 MDg2LGNhcmQ9MDt2Z2VtOgorCiAgICAgIyBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgdXNlZCBm b3IgY29uZmlndXJpbmcgdGhlIERldmljZSBVbmRlciBUZXN0LgogICAgICMgSXQgaXMgbm90IG1h bmRhdG9yeSBhbmQgYWxsb3dzIG92ZXJyaWRpbmcgZGVmYXVsdCB2YWx1ZXMuCiAgICAgW0RVVF0K ZGlmZiAtLWdpdCBhL2xpYi9kcm10ZXN0LmMgYi9saWIvZHJtdGVzdC5jCmluZGV4IGMzNzlhN2I3 Li5jMDFhODhhOSAxMDA2NDQKLS0tIGEvbGliL2RybXRlc3QuYworKysgYi9saWIvZHJtdGVzdC5j CkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiaWd0X2d0LmgiCiAjaW5jbHVkZSAiaWd0X2tt b2QuaCIKICNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKKyNpbmNsdWRlICJpZ3RfZGV2aWNlX3NjYW4u aCIKICNpbmNsdWRlICJ2ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi aW50ZWxfcmVnLmgiCkBAIC0yODksMjUgKzI5MCwyMDggQEAgc3RhdGljIGludCBfX29wZW5fZHJp dmVyKGNvbnN0IGNoYXIgKmJhc2UsIGludCBvZmZzZXQsIHVuc2lnbmVkIGludCBjaGlwc2V0KQog CXJldHVybiBfX3NlYXJjaF9hbmRfb3BlbihiYXNlLCBvZmZzZXQsIGNoaXBzZXQpOwogfQogCitz dGF0aWMgaW50IF9fb3Blbl9kcml2ZXJfZXhhY3QoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQg aW50IGNoaXBzZXQpCit7CisJc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBtdXRleCA9IFBUSFJFQURf TVVURVhfSU5JVElBTElaRVI7CisJaW50IGZkOworCisJZmQgPSBvcGVuX2RldmljZShuYW1lLCBj aGlwc2V0KTsKKwlpZiAoZmQgIT0gLTEpCisJCXJldHVybiBmZDsKKworCXB0aHJlYWRfbXV0ZXhf bG9jaygmbXV0ZXgpOworCWZvciAoY29uc3Qgc3RydWN0IG1vZHVsZSAqbSA9IG1vZHVsZXM7IG0t Pm1vZHVsZTsgbSsrKSB7CisJCWlmIChjaGlwc2V0ICYgbS0+Yml0KSB7CisJCQlpZiAobS0+bW9k cHJvYmUpCisJCQkJbS0+bW9kcHJvYmUobS0+bW9kdWxlKTsKKwkJCWVsc2UKKwkJCQltb2Rwcm9i ZShtLT5tb2R1bGUpOworCQl9CisJfQorCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisK KwlyZXR1cm4gb3Blbl9kZXZpY2UobmFtZSwgY2hpcHNldCk7Cit9CisKKy8qCisgKiBGb3IgY29t cGF0aWJpbGl0eSBtb2RlIHdoZW4gbXVsdGlwbGUgLS1kZXZpY2UgYXJndW1lbnQgd2VyZSBwYXNz ZWQKKyAqIHRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gYmUgc21hcnQgZW5vdWdoIHRvIGhhbmRsZSB0 ZXN0cyB3aGljaCBvcGVucworICogbW9yZSB0aGFuIHNpbmdsZSBkZXZpY2UuIEl0IGl0ZXJhdGVz IG92ZXIgZmlsdGVyIGxpc3QgYW5kCisgKiBjb21wYXJlcyByZXF1ZXN0ZWQgY2hpcHNldCB0byBj YXJkIGNoaXBzZXQgKG9yIGFueSkuCisgKgorICogUmV0dXJuczoKKyAqIFRydWUgaWYgY2FyZCBh Y2NvcmRpbmcgdG8gZmlsdGVycyBhZGRlZCBhbmQgY2hpcHNldCB3YXMgZm91bmQsCisgKiBmYWxz ZSBvdGh3ZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbCBfX2ZpbmRfY2FyZF93aXRoX2NoaXBzZXQo aW50IGNoaXBzZXQsIHN0cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpCit7CisJaW50IGksIG4g PSBpZ3RfZGV2aWNlX2ZpbHRlcl9jb3VudCgpOworCWNvbnN0IGNoYXIgKmZpbHRlcjsKKwlib29s IG1hdGNoOworCisJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCQlmaWx0ZXIgPSBpZ3RfZGV2 aWNlX2ZpbHRlcl9nZXQoaSk7CisJCW1hdGNoID0gaWd0X2RldmljZV9jYXJkX21hdGNoKGZpbHRl ciwgY2FyZCk7CisJCWlmIChtYXRjaCAmJiAoY2FyZC0+Y2hpcHNldCA9PSBjaGlwc2V0IHx8CisJ CQkgICAgICBjYXJkLT5jaGlwc2V0ID09IERSSVZFUl9BTlkpKSB7CisJCQlyZXR1cm4gdHJ1ZTsK KwkJfQorCX0KKworCXJldHVybiBmYWxzZTsKK30KKwogLyoqCiAgKiBfX2RybV9vcGVuX2RyaXZl cjoKICAqIEBjaGlwc2V0OiBPUidkIGZsYWdzIGZvciBlYWNoIGNoaXBzZXQgdG8gc2VhcmNoLCBl Zy4gI0RSSVZFUl9JTlRFTAogICoKLSAqIE9wZW4gdGhlIGZpcnN0IERSTSBkZXZpY2Ugd2UgY2Fu IGZpbmQsIHNlYXJjaGluZyB1cCB0byAxNiBkZXZpY2Ugbm9kZXMKKyAqIEZ1bmN0aW9uIG9wZW5z IGRldmljZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgorICogMS4gd2hlbiAtLWRldmljZSBhcmd1 bWVudHMgYXJlIHByZXNlbnQgZGV2aWNlIHNjYW5uaW5nIHdpbGwgYmUgZXhlY3V0ZWQsCisgKiB0 aGVuIGZpbHRlciBhcmd1bWVudCBpcyB1c2VkIHRvIGZpbmQgbWF0Y2hpbmcgb25lLgorICogMi4g Y29tcGF0aWJpbGl0eSBtb2RlIC0gb3BlbiB0aGUgZmlyc3QgRFJNIGRldmljZSB3ZSBjYW4gZmlu ZCwKKyAqIHNlYXJjaGluZyB1cCB0byAxNiBkZXZpY2Ugbm9kZXMuCiAgKgogICogUmV0dXJuczoK ICAqIEFuIG9wZW4gRFJNIGZkIG9yIC0xIG9uIGVycm9yCiAgKi8KIGludCBfX2RybV9vcGVuX2Ry aXZlcihpbnQgY2hpcHNldCkKIHsKKwlpbnQgbiA9IGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCk7 CisKKwlpZiAobikgeworCQlib29sIGZvdW5kOworCQlzdHJ1Y3QgaWd0X2RldmljZV9jYXJkIGNh cmQ7CisKKwkJZm91bmQgPSBfX2ZpbmRfY2FyZF93aXRoX2NoaXBzZXQoY2hpcHNldCwgJmNhcmQp OworCQlpZiAoIWZvdW5kIHx8ICFzdHJsZW4oY2FyZC5jYXJkKSkKKwkJCXJldHVybiAtMTsKKwor CQlyZXR1cm4gX19vcGVuX2RyaXZlcl9leGFjdChjYXJkLmNhcmQsIGNoaXBzZXQpOworCX0KKwog CXJldHVybiBfX29wZW5fZHJpdmVyKCIvZGV2L2RyaS9jYXJkIiwgMCwgY2hpcHNldCk7CiB9CiAK LXN0YXRpYyBpbnQgX19kcm1fb3Blbl9kcml2ZXJfcmVuZGVyKGludCBjaGlwc2V0KQoraW50IF9f ZHJtX29wZW5fZHJpdmVyX3JlbmRlcihpbnQgY2hpcHNldCkKIHsKKwlpbnQgbiA9IGlndF9kZXZp Y2VfZmlsdGVyX2NvdW50KCk7CisKKwlpZiAobikgeworCQlib29sIGZvdW5kOworCQlzdHJ1Y3Qg aWd0X2RldmljZV9jYXJkIGNhcmQ7CisKKwkJZm91bmQgPSBfX2ZpbmRfY2FyZF93aXRoX2NoaXBz ZXQoY2hpcHNldCwgJmNhcmQpOworCQlpZiAoIWZvdW5kIHx8ICFzdHJsZW4oY2FyZC5yZW5kZXIp KQorCQkJcmV0dXJuIC0xOworCisJCXJldHVybiBfX29wZW5fZHJpdmVyX2V4YWN0KGNhcmQucmVu ZGVyLCBjaGlwc2V0KTsKKwl9CisKIAlyZXR1cm4gX19vcGVuX2RyaXZlcigiL2Rldi9kcmkvcmVu ZGVyRCIsIDEyOCwgY2hpcHNldCk7CiB9CiAKK3N0YXRpYyBpbnQgX19kcm1fb3Blbl93aXRoX250 aF9maWx0ZXIoaW50IG51bSwgaW50IGNoaXBzZXQsIGJvb2wgb3Blbl9yZW5kZXIpCit7CisJc3Ry dWN0IGlndF9kZXZpY2VfY2FyZCBjYXJkOworCWNvbnN0IGNoYXIgKmZpbHRlciwgKmRldm5hbWU7 CisJYm9vbCBtYXRjaDsKKwlpbnQgbiA9IGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCk7CisKKwlp ZiAoIW4gfHwgbnVtIDwgMCB8fCBudW0gPj0gbikgeworCQlpZ3Rfd2FybigiTm8gZGV2aWNlIGZp bHRlciBudW0gPT0gJWQgcGFzc2VkXG4iLCBudW0pOworCQlyZXR1cm4gLTE7CisJfQorCisJZmls dGVyID0gaWd0X2RldmljZV9maWx0ZXJfZ2V0KG51bSk7CisJbWF0Y2ggPSBpZ3RfZGV2aWNlX2Nh cmRfbWF0Y2goZmlsdGVyLCAmY2FyZCk7CisJaWYgKCFtYXRjaCkgeworCQlpZ3Rfd2FybigiTm8g ZGV2aWNlIG1hdGNoIGZpbHRlcjogJXNcbiIsIGZpbHRlcik7CisJCXJldHVybiAtMTsKKwl9CisK KwlpZiAoIXN0cmxlbihjYXJkLmNhcmQpICYmICFzdHJsZW4oY2FyZC5yZW5kZXIpKQorCQlyZXR1 cm4gLTE7CisKKwlkZXZuYW1lID0gb3Blbl9yZW5kZXIgPyBjYXJkLnJlbmRlciA6IGNhcmQuY2Fy ZDsKKwlpZiAoIXN0cmxlbihkZXZuYW1lKSkgeworCQlpZ3Rfd2FybigiTm8gJXMgbm9kZSBtYXRj aGluZyBmaWx0ZXI6ICVzXG4iLAorCQkJIG9wZW5fcmVuZGVyID8gInJlbmRlciIgOiAiY2FyZCIs IGZpbHRlcik7CisJCXJldHVybiAtMTsKKwl9CisJcmV0dXJuIF9fb3Blbl9kcml2ZXJfZXhhY3Qo ZGV2bmFtZSwgY2hpcHNldCk7Cit9CisKKy8qKgorICogZHJtX29wZW5fY2FyZF93aXRoX250aF9m aWx0ZXI6CisgKiBAbnVtOiBudW1iZXIgb2YgLS1kZXZpY2UgYXJndW1lbnQKKyAqIEBjaGlwc2V0 OiBPUidkIGZsYWdzIGZvciBlYWNoIGNoaXBzZXQgdG8gc2VhcmNoLCBlZy4gI0RSSVZFUl9JTlRF TAorICoKKyAqIE9wZW4gL2Rldi9kcmkvY2FyZFggZGV2aWNlIHVzaW5nIG11bHRpLWRldmljZSBz ZWxlY3Rpb24gQVBJLgorICogV2hlbiB0ZXN0IHJlcXVpcmUgdG8gb3BlbiBtb3JlIHRoYW4gb25l IGRldmljZSBzZWxlY3Rpb24gdXNlcyBmaWx0ZXIKKyAqIHBhc3NlZCBhcyAtLWRldmljZSBhcmd1 bWVudC4gQXJndW1lbnRzIEBudW0gaW5kaWNhdGUgZmlsdGVyIG51bWJlcgorICogYW5kIEBjaGlw c2V0IGV4cGVjdGVkIGRldmljZSBjYXJkIGNoaXBzZXQuCisgKgorICogQW4gb3BlbiBEUk0gZmQg b3IgLTEgb24gZXJyb3IKKyAqLworaW50IGRybV9vcGVuX2NhcmRfd2l0aF9udGhfZmlsdGVyKGlu dCBudW0sIGludCBjaGlwc2V0KQoreworCXJldHVybiBfX2RybV9vcGVuX3dpdGhfbnRoX2ZpbHRl cihudW0sIGNoaXBzZXQsIGZhbHNlKTsKK30KKworLyoqCisgKiBkcm1fb3Blbl9yZW5kZXJfd2l0 aF9udGhfZmlsdGVyOgorICogQG51bTogbnVtYmVyIG9mIC0tZGV2aWNlIGFyZ3VtZW50CisgKiBA Y2hpcHNldDogT1InZCBmbGFncyBmb3IgZWFjaCBjaGlwc2V0IHRvIHNlYXJjaCwgZWcuICNEUklW RVJfSU5URUwKKyAqCisgKiBPcGVuIC9kZXYvZHJpL3JlbmRlckRYIGRldmljZSB1c2luZyBtdWx0 aS1kZXZpY2Ugc2VsZWN0aW9uIEFQSS4KKyAqCisgKiBXaGVuIHRlc3QgcmVxdWlyZSB0byBvcGVu IG1vcmUgdGhhbiBvbmUgZGV2aWNlIHNlbGVjdGlvbiB1c2VzIGZpbHRlcgorICogcGFzc2VkIGFz IC0tZGV2aWNlIGFyZ3VtZW50LiBBcmd1bWVudHMgQG51bSBpbmRpY2F0ZSBmaWx0ZXIgbnVtYmVy CisgKiBhbmQgQGNoaXBzZXQgZXhwZWN0ZWQgZGV2aWNlIGNhcmQgY2hpcHNldC4KKyAqCisgKiBB biBvcGVuIERSTSBmZCBvciAtMSBvbiBlcnJvcgorICovCitpbnQgZHJtX29wZW5fcmVuZGVyX3dp dGhfbnRoX2ZpbHRlcihpbnQgbnVtLCBpbnQgY2hpcHNldCkKK3sKKwlyZXR1cm4gX19kcm1fb3Bl bl93aXRoX250aF9maWx0ZXIobnVtLCBjaGlwc2V0LCB0cnVlKTsKK30KKworLyoqCisgKiBkcm1f b3Blbl9jYXJkOgorICogQGNhcmQ6IHBvaW50ZXIgdG8gaWd0X2RldmljZV9jYXJkIHN0cnVjdHVy ZQorICoKKyAqIE9wZW4gL2Rldi9kcmkvY2FyZFggZGV2aWNlIHVzaW5nIG11bHRpLWRldmljZSBz ZWxlY3Rpb24gQVBJLgorICoKKyAqIFJlcXVpcmUgZmlsbGVkIEBjYXJkIGFyZ3VtZW50IChzZWUg aWd0X2RldmljZV9jYXJkX21hdGNoKCkgZnVuY3Rpb24pLgorICoKKyAqIEFuIG9wZW4gRFJNIGZk IG9yIC0xIG9uIGVycm9yCisgKi8KK2ludCBkcm1fb3Blbl9jYXJkKHN0cnVjdCBpZ3RfZGV2aWNl X2NhcmQgKmNhcmQpCit7CisJaWYgKCFjYXJkIHx8ICFzdHJsZW4oY2FyZC0+Y2FyZCkpCisJCXJl dHVybiAtMTsKKworCXJldHVybiBfX29wZW5fZHJpdmVyX2V4YWN0KGNhcmQtPmNhcmQsIGNhcmQt PmNoaXBzZXQpOworfQorCisvKioKKyAqIGRybV9vcGVuX3JlbmRlcjoKKyAqIEBjYXJkOiBwb2lu dGVyIHRvIGlndF9kZXZpY2VfY2FyZCBzdHJ1Y3R1cmUKKyAqCisgKiBPcGVuIC9kZXYvZHJpL3Jl bmRlckRYIGRldmljZSB1c2luZyBtdWx0aS1kZXZpY2Ugc2VsZWN0aW9uIEFQSS4KKyAqIFJlcXVp cmUgZmlsbGVkIEBjYXJkIGFyZ3VtZW50IChzZWUgaWd0X2RldmljZV9jYXJkX21hdGNoKCkgZnVu Y3Rpb24pLgorICoKKyAqIEFuIG9wZW4gRFJNIGZkIG9yIC0xIG9uIGVycm9yCisgKi8KK2ludCBk cm1fb3Blbl9yZW5kZXIoc3RydWN0IGlndF9kZXZpY2VfY2FyZCAqY2FyZCkKK3sKKwlpZiAoIWNh cmQgfHwgIXN0cmxlbihjYXJkLT5yZW5kZXIpKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gX19v cGVuX2RyaXZlcl9leGFjdChjYXJkLT5yZW5kZXIsIGNhcmQtPmNoaXBzZXQpOworfQorCisKIHN0 YXRpYyBpbnQgYXRfZXhpdF9kcm1fZmQgPSAtMTsKIHN0YXRpYyBpbnQgYXRfZXhpdF9kcm1fcmVu ZGVyX2ZkID0gLTE7CiAKZGlmZiAtLWdpdCBhL2xpYi9kcm10ZXN0LmggYi9saWIvZHJtdGVzdC5o CmluZGV4IDYxNGY1N2U2Li5mYzJhMGI1NyAxMDA2NDQKLS0tIGEvbGliL2RybXRlc3QuaAorKysg Yi9saWIvZHJtdGVzdC5oCkBAIC01MCw2ICs1MCw3IEBACiAjZGVmaW5lIERSSVZFUl9BTURHUFUJ KDEgPDwgMykKICNkZWZpbmUgRFJJVkVSX1YzRAkoMSA8PCA0KQogI2RlZmluZSBEUklWRVJfUEFO RlJPU1QJKDEgPDwgNSkKKwogLyoKICAqIEV4Y2x1ZGUgRFJWRVJfVkdFTSBmcm9tIERSSVZFUl9B Tlkgc2luY2UgaWYgeW91IHJ1biBvbiBhIHN5c3RlbQogICogd2l0aCB2Z2VtIGFzIHdlbGwgYXMg YSBzdXBwb3J0ZWQgZHJpdmVyLCB5b3UgY2FuIGVuZCB1cCB3aXRoIGEKQEAgLTgxLDYgKzgyLDE0 IEBAIGludCBkcm1fb3Blbl9kcml2ZXIoaW50IGNoaXBzZXQpOwogaW50IGRybV9vcGVuX2RyaXZl cl9tYXN0ZXIoaW50IGNoaXBzZXQpOwogaW50IGRybV9vcGVuX2RyaXZlcl9yZW5kZXIoaW50IGNo aXBzZXQpOwogaW50IF9fZHJtX29wZW5fZHJpdmVyKGludCBjaGlwc2V0KTsKK2ludCBfX2RybV9v cGVuX2RyaXZlcl9yZW5kZXIoaW50IGNoaXBzZXQpOworCisvKiBNdWx0aSBkZXZpY2UgQVBJICov CitpbnQgZHJtX29wZW5fY2FyZF93aXRoX250aF9maWx0ZXIoaW50IG51bSwgaW50IGNoaXBzZXQp OworaW50IGRybV9vcGVuX3JlbmRlcl93aXRoX250aF9maWx0ZXIoaW50IG51bSwgaW50IGNoaXBz ZXQpOworc3RydWN0IGlndF9kZXZpY2VfY2FyZDsKK2ludCBkcm1fb3Blbl9jYXJkKHN0cnVjdCBp Z3RfZGV2aWNlX2NhcmQgKmNhcmQpOworaW50IGRybV9vcGVuX3JlbmRlcihzdHJ1Y3QgaWd0X2Rl dmljZV9jYXJkICpjYXJkKTsKIAogdm9pZCBnZW1fcXVpZXNjZW50X2dwdShpbnQgZmQpOwogCmRp ZmYgLS1naXQgYS9saWIvaWd0X2NvcmUuYyBiL2xpYi9pZ3RfY29yZS5jCmluZGV4IDFjYmIwOWY5 Li5hOGExMWI1YyAxMDA2NDQKLS0tIGEvbGliL2lndF9jb3JlLmMKKysrIGIvbGliL2lndF9jb3Jl LmMKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlICJpZ3Rfc3lzcnEuaCIKICNpbmNsdWRlICJp Z3RfcmMuaCIKICNpbmNsdWRlICJpZ3RfbGlzdC5oIgorI2luY2x1ZGUgImlndF9kZXZpY2Vfc2Nh bi5oIgogCiAjZGVmaW5lIFVOV19MT0NBTF9PTkxZCiAjaW5jbHVkZSA8bGlidW53aW5kLmg+CkBA IC0yNDUsNiArMjQ2LDkgQEAKICAqCVtDb21tb25dCiAgKglGcmFtZUR1bXBQYXRoPS90bXAgIyBU aGUgcGF0aCB0byBkdW1wIGZyYW1lcyB0aGF0IGZhaWwgY29tcGFyaXNvbiBjaGVja3MKICAqCisg KgkmbnVtOyBEZXZpY2Ugc2VsZWN0aW9uIGZpbHRlcgorICoJRGV2aWNlPXBjaTp2ZW5kb3I9ODA4 NixjYXJkPTA7dmdlbToKKyAqCiAgKgkmbnVtOyBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgdXNl ZCBmb3IgY29uZmlndXJpbmcgdGhlIERldmljZSBVbmRlciBUZXN0LgogICoJJm51bTsgSXQgaXMg bm90IG1hbmRhdG9yeSBhbmQgYWxsb3dzIG92ZXJyaWRpbmcgZGVmYXVsdCB2YWx1ZXMuCiAgKglb RFVUXQpAQCAtMzA0LDYgKzMwOCw3IEBAIGVudW0gewogCU9QVF9ERUJVRywKIAlPUFRfSU5URVJB Q1RJVkVfREVCVUcsCiAJT1BUX1NLSVBfQ1JDLAorCU9QVF9ERVZJQ0UsCiAJT1BUX0hFTFAgPSAn aCcKIH07CiAKQEAgLTMyMCw2ICszMjUsNyBAQCBzdGF0aWMgcHRocmVhZF9tdXRleF90IGxvZ19i dWZmZXJfbXV0ZXggPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwogR0tleUZpbGUgKmlndF9r ZXlfZmlsZTsKIAogY2hhciAqaWd0X2ZyYW1lX2R1bXBfcGF0aDsKK2NoYXIgKmlndF9yY19kZXZp Y2U7CiAKIHN0YXRpYyBib29sIHN0ZGVycl9uZWVkc19zZW50aW5lbCA9IGZhbHNlOwogCkBAIC02 MjQsNiArNjMwLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfdXNhZ2UoY29uc3QgY2hhciAqaGVscF9z dHIsIGJvb2wgb3V0cHV0X29uX3N0ZGVycikKIAkJICAgIiAgLS1za2lwLWNyYy1jb21wYXJlXG4i CiAJCSAgICIgIC0taGVscC1kZXNjcmlwdGlvblxuIgogCQkgICAiICAtLWRlc2NyaWJlXG4iCisJ CSAgICIgIC0tZGV2aWNlIGZpbHRlclxuIgogCQkgICAiICAtLWhlbHB8LWhcbiIpOwogCWlmICho ZWxwX3N0cikKIAkJZnByaW50ZihmLCAiJXNcbiIsIGhlbHBfc3RyKTsKQEAgLTY4OCw2ICs2OTUs MTYgQEAgc3RhdGljIHZvaWQgY29tbW9uX2luaXRfY29uZmlnKHZvaWQpCiAJaWYgKHJldCAhPSAw KQogCQlpZ3Rfc2V0X2F1dG9yZXN1bWVfZGVsYXkocmV0KTsKIAorCS8qIE5vIElHVF9ERVZJQ0Ug YW5kIG5vIC0tZGV2aWNlIHBhc3NlZCwgdHJ5IC5pZ3RyYyBDb21tb246OkRldmljZSAqLworCWlm ICghaWd0X3JjX2RldmljZSkKKwkJaWd0X3JjX2RldmljZSA9CisJCQlnX2tleV9maWxlX2dldF9z dHJpbmcoaWd0X2tleV9maWxlLCAiQ29tbW9uIiwKKwkJCQkJICAgICAgIkRldmljZSIsICZlcnJv cik7CisJaWYgKGlndF9yY19kZXZpY2UgJiYgIWlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCkpCisJ CWlndF9kZXZpY2VfZmlsdGVyX2FkZChpZ3RfcmNfZGV2aWNlKTsKKworCWdfY2xlYXJfZXJyb3Io JmVycm9yKTsKKwogb3V0OgogCWlmICgha2V5X2ZpbGVfZW52ICYmIGtleV9maWxlX2xvYykKIAkJ ZnJlZShrZXlfZmlsZV9sb2MpOwpAQCAtNzI1LDYgKzc0MiwxMSBAQCBzdGF0aWMgdm9pZCBjb21t b25faW5pdF9lbnYodm9pZCkKIAlpZiAoZW52KSB7CiAJCV9fc2V0X2ZvcmNlZF9kcml2ZXIoZW52 KTsKIAl9CisKKwllbnYgPSBnZXRlbnYoIklHVF9ERVZJQ0UiKTsKKwlpZiAoZW52KSB7CisJCWln dF9kZXZpY2VfZmlsdGVyX2FkZChlbnYpOworCX0KIH0KIAogc3RhdGljIGludCBjb21tb25faW5p dChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2LApAQCAtNzQzLDYgKzc2NSw3IEBAIHN0YXRpYyBpbnQg Y29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAkJeyJkZWJ1ZyIsICAgICAgICAg ICAgIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRfREVCVUd9LAogCQl7ImludGVyYWN0aXZl LWRlYnVnIiwgb3B0aW9uYWxfYXJndW1lbnQsIE5VTEwsIE9QVF9JTlRFUkFDVElWRV9ERUJVR30s CiAJCXsic2tpcC1jcmMtY29tcGFyZSIsICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX1NL SVBfQ1JDfSwKKwkJeyJkZXZpY2UiLCAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxM LCBPUFRfREVWSUNFfSwKIAkJeyJoZWxwIiwgICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAg ICBOVUxMLCBPUFRfSEVMUH0sCiAJCXswLCAwLCAwLCAwfQogCX07CkBAIC04NjUsNiArODg4LDE3 IEBAIHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAkJY2Fz ZSBPUFRfU0tJUF9DUkM6CiAJCQlpZ3Rfc2tpcF9jcmNfY29tcGFyZSA9IHRydWU7CiAJCQlnb3Rv IG91dDsKKwkJY2FzZSBPUFRfREVWSUNFOgorCQkJYXNzZXJ0KG9wdGFyZyk7CisJCQkvKiBXZSBu ZWVkIHRvIGZyZWUgYWxsIGRldmljZXMgcGFzc2VkIGluCisJCQkgKiBJR1RfREVWSUNFIGVudmly b25tZW50IHZhcmlhYmxlLgorCQkJICovCisJCQlpZiAoZ2V0ZW52KCJJR1RfREVWSUNFIikgJiYg aWd0X2RldmljZV9maWx0ZXJfY291bnQoKSkgeworCQkJCXVuc2V0ZW52KCJJR1RfREVWSUNFIik7 CisJCQkJaWd0X2RldmljZV9maWx0ZXJfZnJlZV9hbGwoKTsKKwkJCX0KKwkJCWlndF9kZXZpY2Vf ZmlsdGVyX2FkZChvcHRhcmcpOworCQkJYnJlYWs7CiAJCWNhc2UgT1BUX0hFTFA6CiAJCQlwcmlu dF91c2FnZShoZWxwX3N0ciwgZmFsc2UpOwogCQkJcmV0ID0gLTE7Ci0tIAoyLjIxLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGlu ZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==