From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id EFEA36E062 for ; Tue, 10 Sep 2019 12:18:14 +0000 (UTC) Date: Tue, 10 Sep 2019 15:18:09 +0300 From: Arkadiusz Hiler Message-ID: <20190910121809.mubp2a643o3gzfas@ahiler-desk1.fi.intel.com> References: <20190904103701.20490-1-zbigniew.kempczynski@intel.com> <20190904103701.20490-3-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190904103701.20490-3-zbigniew.kempczynski@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v6 2/3] Add device selection in 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: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Cc: igt-dev@lists.freedesktop.org, Petri Latvala , Daniel Vetter List-ID: T24gV2VkLCBTZXAgMDQsIDIwMTkgYXQgMTI6Mzc6MDBQTSArMDIwMCwgWmJpZ25pZXcgS2VtcGN6 ecWEc2tpIHdyb3RlOgo+IE5ldyBJR1QgY29tbWFuZCBsaW5lIGFyZ3VtZW50IC0tZGV2aWNlLCBJ R1RfREVWSUNFIGVudmlyb21lbnQKPiBhbmQgLmlndHJjIENvbW1vbjo6RGV2aWNlIHdlcmUgYWRk ZWQgdG8gYWxsb3cgc2VsZWN0aW5nIGRldmljZQo+IHVzaW5nIGRldmljZSBzZWxlY3Rpb24gQVBJ Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFpiaWduaWV3IEtlbXBjennFhHNraSA8emJpZ25pZXcua2Vt cGN6eW5za2lAaW50ZWwuY29tPgo+IENjOiBBcmthZGl1c3ogSGlsZXIgPGFya2FkaXVzei5oaWxl ckBpbnRlbC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiBDYzog UGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRvY3MvY2hh bWVsaXVtLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCj4gIC4uLi9pZ3Qt Z3B1LXRvb2xzL2lndF90ZXN0X3Byb2dyYW1zLnhtbCAgICAgICB8ICAgNyArCj4gIGxpYi9kcm10 ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzNyArKysrKysrKysrKysr KysrKy0KPiAgbGliL2RybXRlc3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA3ICsKPiAgbGliL2lndF9jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDQ5ICsrKysrKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZG9jcy9jaGFtZWxpdW0udHh0IGIvZG9jcy9jaGFt ZWxpdW0udHh0Cj4gaW5kZXggMzJjMjk2ZjcuLmQzYTM3OWQzIDEwMDY0NAo+IC0tLSBhL2RvY3Mv Y2hhbWVsaXVtLnR4dAo+ICsrKyBiL2RvY3MvY2hhbWVsaXVtLnR4dAo+IEBAIC04NCw2ICs4NCw5 IEBAIGV4YW1wbGUgKG9ubHkgQ2hhbWVsaXVtLlVSTCBpcyBtYW5kYXRvcnkpOgo+ICAgICAgIyBU aGUgcGF0aCB0byBkdW1wIGZyYW1lcyB0aGF0IGZhaWwgY29tcGFyaXNvbiBjaGVja3MKPiAgICAg IEZyYW1lRHVtcFBhdGg9L3Jvb3QvCj4gIAo+ICsgICAgIyBEZXZpY2Ugc2VsZWN0aW9uIGZpbHRl cgo+ICsgICAgRGV2aWNlPXBjaTp2ZW5kb3I9ODA4NixjYXJkPTA7dmdlbToKPiArCgoKVGhpcyBp cyB1bm5lY2Vzc2FyeSBoZXJlIC0gaXQncyAgY2hhbWVsaXVtIHNwZWNpZmljIC50eHQgdGhhdApz aG91bGQgYmUgaW50ZWdyYXRlZCBpbnRvIG91ciBndGstZG9jLWdlbmVyYXRlZCBkb2N1bWVudGF0 aW9uIGFueXdheS4KCldlIHNob3VsZCBhbHNvIGFkZCBhIHNlY3Rpb24gZGVkaWNhdGVkIHRvIC5p Z3RyYyB0aGVyZSwgYnV0IHRoYXQncyBhCnNlcGFyYXRlIGVmZm9ydC4KCj4gICAgICAjIFRoZSBm b2xsb3dpbmcgc2VjdGlvbiBpcyB1c2VkIGZvciBjb25maWd1cmluZyB0aGUgRGV2aWNlIFVuZGVy IFRlc3QuCj4gICAgICAjIEl0IGlzIG5vdCBtYW5kYXRvcnkgYW5kIGFsbG93cyBvdmVycmlkaW5n IGRlZmF1bHQgdmFsdWVzLgo+ICAgICAgW0RVVF0KPiBkaWZmIC0tZ2l0IGEvZG9jcy9yZWZlcmVu Y2UvaWd0LWdwdS10b29scy9pZ3RfdGVzdF9wcm9ncmFtcy54bWwgYi9kb2NzL3JlZmVyZW5jZS9p Z3QtZ3B1LXRvb2xzL2lndF90ZXN0X3Byb2dyYW1zLnhtbAo+IGluZGV4IGI2NGJhNDc0Li5mY2Nl MTQ1OCAxMDA2NDQKPiAtLS0gYS9kb2NzL3JlZmVyZW5jZS9pZ3QtZ3B1LXRvb2xzL2lndF90ZXN0 X3Byb2dyYW1zLnhtbAo+ICsrKyBiL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0X3Rl c3RfcHJvZ3JhbXMueG1sCj4gQEAgLTQzLDYgKzQzLDEzIEBACj4gICAgICAgICAgICAgIDwvcGFy YT48L2xpc3RpdGVtPgo+ICAgICAgICAgICAgPC92YXJsaXN0ZW50cnk+Cj4gIAo+ICsgICAgICAg ICAgPHZhcmxpc3RlbnRyeT4KPiArICAgICAgICAgICAgPHRlcm0+PG9wdGlvbj4tLWRldmljZSBm aWx0ZXI8L29wdGlvbj48L3Rlcm0+Cj4gKyAgICAgICAgICAgIDxsaXN0aXRlbT48cGFyYT4KPiAr ICAgICAgICAgICAgICAgIHNlbGVjdCBkZXZpY2UgdXNpbmcgZmlsdGVyIChzZWUgIkRldmljZSBz ZWxlY3Rpb24iIGZvciBkZXRhaWxzKQo+ICsgICAgICAgICAgICA8L3BhcmE+PC9saXN0aXRlbT4K PiArICAgICAgICAgIDwvdmFybGlzdGVudHJ5Pgo+ICsKCm9vLCBJJ3ZlIGZvcmdvdCBhYm91dCB0 aGlzLCBJIGhhdmUgdG8gYWRkIC0tZGVzY3JpYmUgdG8gdGhpcyBsaXN0LCB0aGFua3MgOi1QCgo+ ICAgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KPiAgICAgICAgICAgICAgPHRlcm0+PG9wdGlvbj4t LWhlbHAtZGVzY3JpcHRpb248L29wdGlvbj48L3Rlcm0+Cj4gICAgICAgICAgICAgIDxsaXN0aXRl bT48cGFyYT4KPiBkaWZmIC0tZ2l0IGEvbGliL2RybXRlc3QuYyBiL2xpYi9kcm10ZXN0LmMKPiBp bmRleCBjMzc5YTdiNy4uNTIxOTk4MjEgMTAwNjQ0Cj4gLS0tIGEvbGliL2RybXRlc3QuYwo+ICsr KyBiL2xpYi9kcm10ZXN0LmMKPiBAQCAtNTUsNiArNTUsNyBAQAo+ICAjaW5jbHVkZSAiaWd0X2d0 LmgiCj4gICNpbmNsdWRlICJpZ3Rfa21vZC5oIgo+ICAjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4g KyNpbmNsdWRlICJpZ3RfZGV2aWNlX3NjYW4uaCIKPiAgI2luY2x1ZGUgInZlcnNpb24uaCIKPiAg I2luY2x1ZGUgImNvbmZpZy5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCj4gQEAgLTI4OSwy NSArMjkwLDE1NyBAQCBzdGF0aWMgaW50IF9fb3Blbl9kcml2ZXIoY29uc3QgY2hhciAqYmFzZSwg aW50IG9mZnNldCwgdW5zaWduZWQgaW50IGNoaXBzZXQpCj4gIAlyZXR1cm4gX19zZWFyY2hfYW5k X29wZW4oYmFzZSwgb2Zmc2V0LCBjaGlwc2V0KTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBfX29w ZW5fZHJpdmVyX2V4YWN0KGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBjaGlwc2V0KQo+ ICt7Cj4gKwlzdGF0aWMgcHRocmVhZF9tdXRleF90IG11dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklU SUFMSVpFUjsKPiArCWludCBmZDsKPiArCj4gKwlmZCA9IG9wZW5fZGV2aWNlKG5hbWUsIGNoaXBz ZXQpOwo+ICsJaWYgKGZkICE9IC0xKQo+ICsJCXJldHVybiBmZDsKPiArCj4gKwlwdGhyZWFkX211 dGV4X2xvY2soJm11dGV4KTsKPiArCWZvciAoY29uc3Qgc3RydWN0IG1vZHVsZSAqbSA9IG1vZHVs ZXM7IG0tPm1vZHVsZTsgbSsrKSB7Cj4gKwkJaWYgKGNoaXBzZXQgJiBtLT5iaXQpIHsKPiArCQkJ aWYgKG0tPm1vZHByb2JlKQo+ICsJCQkJbS0+bW9kcHJvYmUobS0+bW9kdWxlKTsKPiArCQkJZWxz ZQo+ICsJCQkJbW9kcHJvYmUobS0+bW9kdWxlKTsKPiArCQl9Cj4gKwl9Cj4gKwlwdGhyZWFkX211 dGV4X3VubG9jaygmbXV0ZXgpOwoKVGhpcyBpcyB0aGUgc2FtZSBwYXJ0IGFzIGluIF9fb3Blbl9k cml2ZXIoKSwgaXQgc2hvdWxkIGJlIGV4dHJhY2VkIGludG8KYSBoZWxwZXIsIGUuZy46CgpzdGF0 aWMgdm9pZCBfX3RyeV9tb2Rwcm9iZSh1bnNpZ25lZCBpbnQgY2hpcHNldCkKewoJc3RhdGljIHB0 aHJlYWRfbXV0ZXhfdCBtdXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CgoJcHRocmVh ZF9tdXRleF9sb2NrKCZtdXRleCk7Cglmb3IgKGNvbnN0IHN0cnVjdCBtb2R1bGUgKm0gPSBtb2R1 bGVzOyBtLT5tb2R1bGU7IG0rKykgewoJCWlmIChjaGlwc2V0ICYgbS0+Yml0KSB7CgkJCWlmICht LT5tb2Rwcm9iZSkKCQkJCW0tPm1vZHByb2JlKG0tPm1vZHVsZSk7CgkJCWVsc2UKCQkJCW1vZHBy b2JlKG0tPm1vZHVsZSk7CgkJfQoJfQoJcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKfQoK VGhpcyB3aWxsIGF2b2lkIGR1cGxpY2F0aW9uIGFuZCB3b3VsZCBrZWVwIHRoZSBpbnRlbmRlZCBj b25jdXJlbmN5CmNvbnN0cmFpbnMgb24gbW9kdWxlcyBsb2FkaW5nIGV2ZW4gd2hlbiBzb21lb25l IG1lc3NlcyB1cCB3aXRoIG1peGVkCipfb3Blbl8qIGZ1bmN0aW9uIGNhbGxzLgoKPiArCj4gKwly ZXR1cm4gb3Blbl9kZXZpY2UobmFtZSwgY2hpcHNldCk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIEZv ciBjb21wYXRpYmlsaXR5IG1vZGUgd2hlbiBtdWx0aXBsZSAtLWRldmljZSBhcmd1bWVudCB3ZXJl IHBhc3NlZAo+ICsgKiB0aGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGJlIHNtYXJ0IGVub3VnaCB0byBo YW5kbGUgdGVzdHMgd2hpY2ggb3BlbnMKPiArICogbW9yZSB0aGFuIHNpbmdsZSBkZXZpY2UuIEl0 IGl0ZXJhdGVzIG92ZXIgZmlsdGVyIGxpc3QgYW5kCj4gKyAqIGNoZWNrIGRvZXMgcmVxdWVzdGVk IGNoaXBzZXQgaGFzIGNvbW1vbiBiaXRzIHdpdGggY2FyZC0+Y2hpcHNldC4KPiArICoKPiArICog QGNoaXBzZXQ6IHJlcXVlc3RlZCBjaGlwc2V0Cj4gKyAqIEBjYXJkOiBwb2ludGVyIHRvIHRoZSBp Z3RfZGV2aWNlX2NhcmQgc3RydWN0dXJlIHRvIGJlIGZpbGxlZAo+ICsgKiB3aGVuIGEgY2FyZCBp cyBmb3VuZC4KPiArICoKPiArICogUmV0dXJuczoKPiArICogVHJ1ZSBpZiBjYXJkIGFjY29yZGlu ZyB0byBmaWx0ZXJzIGFkZGVkIGFuZCBjaGlwc2V0IHdhcyBmb3VuZCwKPiArICogZmFsc2Ugb3Ro d2Vyd2lzZS4KPiArICovCj4gK3N0YXRpYyBib29sIF9fZmluZF9jYXJkX3dpdGhfY2hpcHNldChp bnQgY2hpcHNldCwgc3RydWN0IGlndF9kZXZpY2VfY2FyZCAqY2FyZCkKPiArewo+ICsJaW50IGks IG4gPSBpZ3RfZGV2aWNlX2ZpbHRlcl9jb3VudCgpOwo+ICsJY29uc3QgY2hhciAqZmlsdGVyOwo+ ICsJYm9vbCBtYXRjaDsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Cj4gKwkJZmls dGVyID0gaWd0X2RldmljZV9maWx0ZXJfZ2V0KGkpOwo+ICsJCW1hdGNoID0gaWd0X2RldmljZV9j YXJkX21hdGNoKGZpbHRlciwgY2FyZCk7Cj4gKwkJaWYgKG1hdGNoICYmIChjYXJkLT5jaGlwc2V0 ICYgY2hpcHNldCkpIHsKPiArCQkJaWd0X2RlYnVnKCJGaWx0ZXIgWyVzXSBtYXRjaGVkXG4iLCBm aWx0ZXIpOwo+ICsJCQlyZXR1cm4gdHJ1ZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJaWd0X3dhcm4o IkNhbid0IGZpbmQgY2FyZCB3aXRoIGNoaXBzZXQgKG1hc2spOiAweCV4XG4iLCBjaGlwc2V0KTsK PiArCWlndF93YXJuKCJGaWx0ZXJzIHRyaWVkOlxuIik7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgbjsg aSsrKSB7Cj4gKwkJZmlsdGVyID0gaWd0X2RldmljZV9maWx0ZXJfZ2V0KGkpOwo+ICsJCWlndF93 YXJuKCIlMmQ6ICVzXG4iLCBpLCBmaWx0ZXIpOwo+ICsJfQo+ICsKPiArCXJldHVybiBmYWxzZTsK PiArfQo+ICsKPiAgLyoqCj4gICAqIF9fZHJtX29wZW5fZHJpdmVyOgo+ICAgKiBAY2hpcHNldDog T1InZCBmbGFncyBmb3IgZWFjaCBjaGlwc2V0IHRvIHNlYXJjaCwgZWcuICNEUklWRVJfSU5URUwK PiAgICoKPiAtICogT3BlbiB0aGUgZmlyc3QgRFJNIGRldmljZSB3ZSBjYW4gZmluZCwgc2VhcmNo aW5nIHVwIHRvIDE2IGRldmljZSBub2Rlcwo+ICsgKiBGdW5jdGlvbiBvcGVucyBkZXZpY2UgaW4g dGhlIGZvbGxvd2luZyBvcmRlcjoKPiArICogMS4gd2hlbiAtLWRldmljZSBhcmd1bWVudHMgYXJl IHByZXNlbnQgZGV2aWNlIHNjYW5uaW5nIHdpbGwgYmUgZXhlY3V0ZWQsCj4gKyAqIHRoZW4gZmls dGVyIGFyZ3VtZW50IGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBvbmUuCj4gKyAqIDIuIGNvbXBh dGliaWxpdHkgbW9kZSAtIG9wZW4gdGhlIGZpcnN0IERSTSBkZXZpY2Ugd2UgY2FuIGZpbmQsCj4g KyAqIHNlYXJjaGluZyB1cCB0byAxNiBkZXZpY2Ugbm9kZXMuCj4gICAqCj4gICAqIFJldHVybnM6 Cj4gICAqIEFuIG9wZW4gRFJNIGZkIG9yIC0xIG9uIGVycm9yCj4gICAqLwo+ICBpbnQgX19kcm1f b3Blbl9kcml2ZXIoaW50IGNoaXBzZXQpCj4gIHsKPiArCWludCBuID0gaWd0X2RldmljZV9maWx0 ZXJfY291bnQoKTsKPiArCj4gKwlpZiAobikgewoKaWYgKGlndF9kZXZpY2VfZmlsdGVyX2NvdW50 KCkgPiAwKSB7CgppZiB3ZSB1c2UgaXQgaW4gb25seSBvbmUgcGxhY2UKCmZvciBwbGFjZXMgd2hl cmUgd2UgdXNlIGl0IG11bHRpcGxlIHRpbWVzIHBsZWFzZSBuYW1lIHRoZSB2YXJpYWJsZSBtb3Jl CmRlc2NyaXB0aXZlbHksIGUuZy4gZmlsdGVyX2NvdW50LgoKPiArCQlib29sIGZvdW5kOwo+ICsJ CXN0cnVjdCBpZ3RfZGV2aWNlX2NhcmQgY2FyZDsKPiArCj4gKwkJZm91bmQgPSBfX2ZpbmRfY2Fy ZF93aXRoX2NoaXBzZXQoY2hpcHNldCwgJmNhcmQpOwo+ICsJCWlmICghZm91bmQgfHwgIXN0cmxl bihjYXJkLmNhcmQpKQo+ICsJCQlyZXR1cm4gLTE7Cj4gKwkJaWd0X2RlYnVnKCJUcnlpbmcgdG8g b3BlbjogJXMgKGNoaXBzZXQgbWFzay9jYXJkOiAleC8leClcbiIsCj4gKwkJCSAgY2FyZC5jYXJk LCBjaGlwc2V0LCBjYXJkLmNoaXBzZXQpOwo+ICsKPiArCQlyZXR1cm4gX19vcGVuX2RyaXZlcl9l eGFjdChjYXJkLmNhcmQsIGNoaXBzZXQpOwo+ICsJfQo+ICsKPiAgCXJldHVybiBfX29wZW5fZHJp dmVyKCIvZGV2L2RyaS9jYXJkIiwgMCwgY2hpcHNldCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQg X19kcm1fb3Blbl9kcml2ZXJfcmVuZGVyKGludCBjaGlwc2V0KQo+ICtpbnQgX19kcm1fb3Blbl9k cml2ZXJfcmVuZGVyKGludCBjaGlwc2V0KQo+ICB7Cj4gKwlpbnQgbiA9IGlndF9kZXZpY2VfZmls dGVyX2NvdW50KCk7Cj4gKwo+ICsJaWYgKG4pIHsKPiArCQlib29sIGZvdW5kOwo+ICsJCXN0cnVj dCBpZ3RfZGV2aWNlX2NhcmQgY2FyZDsKPiArCj4gKwkJZm91bmQgPSBfX2ZpbmRfY2FyZF93aXRo X2NoaXBzZXQoY2hpcHNldCwgJmNhcmQpOwo+ICsJCWlmICghZm91bmQgfHwgIXN0cmxlbihjYXJk LnJlbmRlcikpCj4gKwkJCXJldHVybiAtMTsKPiArCj4gKwkJaWd0X2RlYnVnKCJUcnlpbmcgdG8g b3BlbjogJXMgKGNoaXBzZXQgbWFzay9jYXJkOiAleC8leClcbiIsCj4gKwkJCSAgY2FyZC5yZW5k ZXIsIGNoaXBzZXQsIGNhcmQuY2hpcHNldCk7Cj4gKwo+ICsJCXJldHVybiBfX29wZW5fZHJpdmVy X2V4YWN0KGNhcmQucmVuZGVyLCBjaGlwc2V0KTsKPiArCX0KPiArCj4gIAlyZXR1cm4gX19vcGVu X2RyaXZlcigiL2Rldi9kcmkvcmVuZGVyRCIsIDEyOCwgY2hpcHNldCk7Cj4gIH0KPiAgCj4gKy8q Kgo+ICsgKiBkcm1fb3Blbl9jYXJkOgo+ICsgKiBAY2FyZDogcG9pbnRlciB0byBpZ3RfZGV2aWNl X2NhcmQgc3RydWN0dXJlCj4gKyAqCj4gKyAqIE9wZW4gL2Rldi9kcmkvY2FyZFggZGV2aWNlIHVz aW5nIG11bHRpLWRldmljZSBzZWxlY3Rpb24gQVBJLgo+ICsgKgo+ICsgKiBSZXF1aXJlIGZpbGxl ZCBAY2FyZCBhcmd1bWVudCAoc2VlIGlndF9kZXZpY2VfY2FyZF9tYXRjaCgpIGZ1bmN0aW9uKS4K PiArICoKPiArICogQW4gb3BlbiBEUk0gZmQgb3IgLTEgb24gZXJyb3IKPiArICovCj4gK2ludCBk cm1fb3Blbl9jYXJkKHN0cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpCj4gK3sKPiArCWlmICgh Y2FyZCB8fCAhc3RybGVuKGNhcmQtPmNhcmQpKQo+ICsJCXJldHVybiAtMTsKPiArCj4gKwlyZXR1 cm4gX19vcGVuX2RyaXZlcl9leGFjdChjYXJkLT5jYXJkLCBjYXJkLT5jaGlwc2V0KTsKPiArfQo+ ICsKPiArLyoqCj4gKyAqIGRybV9vcGVuX3JlbmRlcjoKPiArICogQGNhcmQ6IHBvaW50ZXIgdG8g aWd0X2RldmljZV9jYXJkIHN0cnVjdHVyZQo+ICsgKgo+ICsgKiBPcGVuIC9kZXYvZHJpL3JlbmRl ckRYIGRldmljZSB1c2luZyBtdWx0aS1kZXZpY2Ugc2VsZWN0aW9uIEFQSS4KPiArICogUmVxdWly ZSBmaWxsZWQgQGNhcmQgYXJndW1lbnQgKHNlZSBpZ3RfZGV2aWNlX2NhcmRfbWF0Y2goKSBmdW5j dGlvbikuCj4gKyAqCj4gKyAqIEFuIG9wZW4gRFJNIGZkIG9yIC0xIG9uIGVycm9yCj4gKyAqLwo+ ICtpbnQgZHJtX29wZW5fcmVuZGVyKHN0cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpCj4gK3sK PiArCWlmICghY2FyZCB8fCAhc3RybGVuKGNhcmQtPnJlbmRlcikpCj4gKwkJcmV0dXJuIC0xOwo+ ICsKPiArCXJldHVybiBfX29wZW5fZHJpdmVyX2V4YWN0KGNhcmQtPnJlbmRlciwgY2FyZC0+Y2hp cHNldCk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgYXRfZXhpdF9kcm1fZmQgPSAtMTsKPiAgc3Rh dGljIGludCBhdF9leGl0X2RybV9yZW5kZXJfZmQgPSAtMTsKPiAgCj4gZGlmZiAtLWdpdCBhL2xp Yi9kcm10ZXN0LmggYi9saWIvZHJtdGVzdC5oCj4gaW5kZXggNjE0ZjU3ZTYuLjMxOTQ3ZjQzIDEw MDY0NAo+IC0tLSBhL2xpYi9kcm10ZXN0LmgKPiArKysgYi9saWIvZHJtdGVzdC5oCj4gQEAgLTUw LDYgKzUwLDcgQEAKPiAgI2RlZmluZSBEUklWRVJfQU1ER1BVCSgxIDw8IDMpCj4gICNkZWZpbmUg RFJJVkVSX1YzRAkoMSA8PCA0KQo+ICAjZGVmaW5lIERSSVZFUl9QQU5GUk9TVAkoMSA8PCA1KQo+ ICsKPiAgLyoKPiAgICogRXhjbHVkZSBEUlZFUl9WR0VNIGZyb20gRFJJVkVSX0FOWSBzaW5jZSBp ZiB5b3UgcnVuIG9uIGEgc3lzdGVtCj4gICAqIHdpdGggdmdlbSBhcyB3ZWxsIGFzIGEgc3VwcG9y dGVkIGRyaXZlciwgeW91IGNhbiBlbmQgdXAgd2l0aCBhCj4gQEAgLTgxLDYgKzgyLDEyIEBAIGlu dCBkcm1fb3Blbl9kcml2ZXIoaW50IGNoaXBzZXQpOwo+ICBpbnQgZHJtX29wZW5fZHJpdmVyX21h c3RlcihpbnQgY2hpcHNldCk7Cj4gIGludCBkcm1fb3Blbl9kcml2ZXJfcmVuZGVyKGludCBjaGlw c2V0KTsKPiAgaW50IF9fZHJtX29wZW5fZHJpdmVyKGludCBjaGlwc2V0KTsKPiAraW50IF9fZHJt X29wZW5fZHJpdmVyX3JlbmRlcihpbnQgY2hpcHNldCk7Cj4gKwo+ICsvKiBNdWx0aSBkZXZpY2Ug QVBJICovCj4gK3N0cnVjdCBpZ3RfZGV2aWNlX2NhcmQ7Cj4gK2ludCBkcm1fb3Blbl9jYXJkKHN0 cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpOwo+ICtpbnQgZHJtX29wZW5fcmVuZGVyKHN0cnVj dCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpOwo+ICAKPiAgdm9pZCBnZW1fcXVpZXNjZW50X2dwdShp bnQgZmQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMgYi9saWIvaWd0X2NvcmUu Ywo+IGluZGV4IDFjYmIwOWY5Li5iNDVhMWJlNyAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2NvcmUu Ywo+ICsrKyBiL2xpYi9pZ3RfY29yZS5jCj4gQEAgLTcxLDYgKzcxLDcgQEAKPiAgI2luY2x1ZGUg ImlndF9zeXNycS5oIgo+ICAjaW5jbHVkZSAiaWd0X3JjLmgiCj4gICNpbmNsdWRlICJpZ3RfbGlz dC5oIgo+ICsjaW5jbHVkZSAiaWd0X2RldmljZV9zY2FuLmgiCj4gIAo+ICAjZGVmaW5lIFVOV19M T0NBTF9PTkxZCj4gICNpbmNsdWRlIDxsaWJ1bndpbmQuaD4KPiBAQCAtMjQ1LDYgKzI0Niw5IEBA Cj4gICAqCVtDb21tb25dCj4gICAqCUZyYW1lRHVtcFBhdGg9L3RtcCAjIFRoZSBwYXRoIHRvIGR1 bXAgZnJhbWVzIHRoYXQgZmFpbCBjb21wYXJpc29uIGNoZWNrcwo+ICAgKgo+ICsgKgkmbnVtOyBE ZXZpY2Ugc2VsZWN0aW9uIGZpbHRlcgo+ICsgKglEZXZpY2U9cGNpOnZlbmRvcj04MDg2LGNhcmQ9 MDt2Z2VtOgo+ICsgKgo+ICAgKgkmbnVtOyBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgdXNlZCBm b3IgY29uZmlndXJpbmcgdGhlIERldmljZSBVbmRlciBUZXN0Lgo+ICAgKgkmbnVtOyBJdCBpcyBu b3QgbWFuZGF0b3J5IGFuZCBhbGxvd3Mgb3ZlcnJpZGluZyBkZWZhdWx0IHZhbHVlcy4KPiAgICoJ W0RVVF0KPiBAQCAtMzA0LDYgKzMwOCw3IEBAIGVudW0gewo+ICAJT1BUX0RFQlVHLAo+ICAJT1BU X0lOVEVSQUNUSVZFX0RFQlVHLAo+ICAJT1BUX1NLSVBfQ1JDLAo+ICsJT1BUX0RFVklDRSwKPiAg CU9QVF9IRUxQID0gJ2gnCj4gIH07Cj4gIAo+IEBAIC0zMjAsNiArMzI1LDcgQEAgc3RhdGljIHB0 aHJlYWRfbXV0ZXhfdCBsb2dfYnVmZmVyX211dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpF UjsKPiAgR0tleUZpbGUgKmlndF9rZXlfZmlsZTsKPiAgCj4gIGNoYXIgKmlndF9mcmFtZV9kdW1w X3BhdGg7Cj4gK2NoYXIgKmlndF9yY19kZXZpY2U7Cj4gIAo+ICBzdGF0aWMgYm9vbCBzdGRlcnJf bmVlZHNfc2VudGluZWwgPSBmYWxzZTsKPiAgCj4gQEAgLTYyNCw2ICs2MzAsNyBAQCBzdGF0aWMg dm9pZCBwcmludF91c2FnZShjb25zdCBjaGFyICpoZWxwX3N0ciwgYm9vbCBvdXRwdXRfb25fc3Rk ZXJyKQo+ICAJCSAgICIgIC0tc2tpcC1jcmMtY29tcGFyZVxuIgo+ICAJCSAgICIgIC0taGVscC1k ZXNjcmlwdGlvblxuIgo+ICAJCSAgICIgIC0tZGVzY3JpYmVcbiIKPiArCQkgICAiICAtLWRldmlj ZSBmaWx0ZXJcbiIKPiAgCQkgICAiICAtLWhlbHB8LWhcbiIpOwo+ICAJaWYgKGhlbHBfc3RyKQo+ ICAJCWZwcmludGYoZiwgIiVzXG4iLCBoZWxwX3N0cik7Cj4gQEAgLTY4OCw2ICs2OTUsMzMgQEAg c3RhdGljIHZvaWQgY29tbW9uX2luaXRfY29uZmlnKHZvaWQpCj4gIAlpZiAocmV0ICE9IDApCj4g IAkJaWd0X3NldF9hdXRvcmVzdW1lX2RlbGF5KHJldCk7Cj4gIAo+ICsJLyogQWRkaW5nIGZpbHRl cnMsIG9yZGVyIC5pZ3RyYywgSUdUX0RFVklDRSwgLS1kZXZpY2UgZmlsdGVyICovCj4gKwlpZiAo aWd0X2RldmljZV9maWx0ZXJfY291bnQoKSkKPiArCQlpZ3RfZGVidWcoIk5vdGljZTogdXNpbmcg LS1kZXZpY2UgZmlsdGVyczpcbiIpOwo+ICsJZWxzZSB7Cj4gKwkJaWYgKGlndF9yY19kZXZpY2Up IHsKPiArCQkJaWd0X2RlYnVnKCJOb3RpY2U6IHVzaW5nIElHVF9ERVZJQ0UgZW52OlxuIik7Cj4g KwkJfSBlbHNlIHsKPiArCQkJaWd0X3JjX2RldmljZSA9CWdfa2V5X2ZpbGVfZ2V0X3N0cmluZyhp Z3Rfa2V5X2ZpbGUsCj4gKwkJCQkJCQkgICAgICAiQ29tbW9uIiwKPiArCQkJCQkJCSAgICAgICJE ZXZpY2UiLCAmZXJyb3IpOwo+ICsJCQlnX2NsZWFyX2Vycm9yKCZlcnJvcik7Cj4gKwkJCWlmIChp Z3RfcmNfZGV2aWNlKQo+ICsJCQkJaWd0X2RlYnVnKCJOb3RpY2U6IHVzaW5nIC5pZ3RyYyAiCj4g KwkJCQkJICAiQ29tbW9uOjpEZXZpY2U6XG4iKTsKPiArCQl9Cj4gKwkJaWYgKGlndF9yY19kZXZp Y2UpIHsKPiArCQkJaWd0X2RldmljZV9maWx0ZXJfYWRkKGlndF9yY19kZXZpY2UpOwo+ICsJCQlm cmVlKGlndF9yY19kZXZpY2UpOwo+ICsJCQlpZ3RfcmNfZGV2aWNlID0gTlVMTDsKPiArCQl9Cj4g Kwl9Cj4gKwo+ICsJaWYgKGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCkpIHsKPiArCQlmb3IgKGlu dCBpID0gMDsgaSA8IGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCk7IGkrKykKPiArCQkJaWd0X2Rl YnVnKCIlMmQ6IFslc11cbiIsIGksIGlndF9kZXZpY2VfZmlsdGVyX2dldChpKSk7Cj4gKwl9Cj4g Kwo+ICBvdXQ6Cj4gIAlpZiAoIWtleV9maWxlX2VudiAmJiBrZXlfZmlsZV9sb2MpCj4gIAkJZnJl ZShrZXlfZmlsZV9sb2MpOwo+IEBAIC03MjUsNiArNzU5LDExIEBAIHN0YXRpYyB2b2lkIGNvbW1v bl9pbml0X2Vudih2b2lkKQo+ICAJaWYgKGVudikgewo+ICAJCV9fc2V0X2ZvcmNlZF9kcml2ZXIo ZW52KTsKPiAgCX0KPiArCj4gKwllbnYgPSBnZXRlbnYoIklHVF9ERVZJQ0UiKTsKPiArCWlmIChl bnYpIHsKPiArCQlpZ3RfcmNfZGV2aWNlID0gc3RyZHVwKGVudik7Cj4gKwl9Cj4gIH0KPiAgCj4g IHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKPiBAQCAtNzQz LDYgKzc4Miw3IEBAIHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJn diwKPiAgCQl7ImRlYnVnIiwgICAgICAgICAgICAgb3B0aW9uYWxfYXJndW1lbnQsIE5VTEwsIE9Q VF9ERUJVR30sCj4gIAkJeyJpbnRlcmFjdGl2ZS1kZWJ1ZyIsIG9wdGlvbmFsX2FyZ3VtZW50LCBO VUxMLCBPUFRfSU5URVJBQ1RJVkVfREVCVUd9LAo+ICAJCXsic2tpcC1jcmMtY29tcGFyZSIsICBu b19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX1NLSVBfQ1JDfSwKPiArCQl7ImRldmljZSIsICAg ICAgICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9ERVZJQ0V9LAo+ICAJCXsiaGVs cCIsICAgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX0hFTFB9LAo+ICAJ CXswLCAwLCAwLCAwfQo+ICAJfTsKPiBAQCAtODY1LDYgKzkwNSwxNSBAQCBzdGF0aWMgaW50IGNv bW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gIAkJY2FzZSBPUFRfU0tJUF9DUkM6 Cj4gIAkJCWlndF9za2lwX2NyY19jb21wYXJlID0gdHJ1ZTsKPiAgCQkJZ290byBvdXQ7Cj4gKwkJ Y2FzZSBPUFRfREVWSUNFOgo+ICsJCQlhc3NlcnQob3B0YXJnKTsKPiArCQkJLyogaWYgc2V0IGJ5 IGVudiBJR1RfREVWSUNFIHdlIG5lZWQgdG8gZnJlZSBpdCAqLwo+ICsJCQlpZiAoaWd0X3JjX2Rl dmljZSkgewo+ICsJCQkJZnJlZShpZ3RfcmNfZGV2aWNlKTsKPiArCQkJCWlndF9yY19kZXZpY2Ug PSBOVUxMOwo+ICsJCQl9Cj4gKwkJCWlndF9kZXZpY2VfZmlsdGVyX2FkZChvcHRhcmcpOwo+ICsJ CQlicmVhazsKCkl0J3Mgbm90IGV4YWN0bHkgbGluZWFyIHRvIGZvbGxvdyBhbmQgc2hvdWxkIGJl IHJld29ya2VkICsgd2Ugc2hvdWxkCmRvY3VtZW50IGhvdyB0aGUgb3B0aW9uIHNoYWRvd2luZyB3 b3JrcywgYnV0IHRoYXQncyBvbiBtZS4KClNvIHdpdGggdGhlIGNoYW1lbGl1bS50eHQgY2hhbmdl IHJlbW92YWwsIG1vZHByb2JlIHN0dWZmIGV4dHJhY3RlZCBvdXQKYW5kIGZldyBjb3NtZXRpYyBj aGFuZ2VzIHRoaXMgcGF0Y2ggaXM6CgpSZXZpZXdlZC1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmth ZGl1c3ouaGlsZXJAaW50ZWwuY29tPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXY=