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 9C1C16E2AF for ; Wed, 21 Aug 2019 11:01:04 +0000 (UTC) Date: Wed, 21 Aug 2019 13:01:01 +0200 From: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: <20190821110101.GA22071@zkempczy-desk.igk.intel.com> References: <20190812084718.9999-1-zbigniew.kempczynski@intel.com> <20190812084718.9999-2-zbigniew.kempczynski@intel.com> <20190821080911.rh3ljfoyflyg52zo@ahiler-desk1.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190821080911.rh3ljfoyflyg52zo@ahiler-desk1.fi.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v4 1/2] Introduce multi-device selection API 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: Arkadiusz Hiler Cc: igt-dev@lists.freedesktop.org, Petri Latvala , Daniel Vetter List-ID: T24gV2VkLCBBdWcgMjEsIDIwMTkgYXQgMTE6MDk6MTFBTSArMDMwMCwgQXJrYWRpdXN6IEhpbGVy IHdyb3RlOgo+IE9uIE1vbiwgQXVnIDEyLCAyMDE5IGF0IDEwOjQ3OjE3QU0gKzAyMDAsIFpiaWdu aWV3IEtlbXBjennFhHNraSB3cm90ZToKPiA+IENoYW5nZSBhZGRzIGRldmljZSBzZWxlY3Rpb24g YmFzZWQgb24gc2Nhbm5pbmcgZHJtIHN1YnN5c3RlbQo+ID4gdXNpbmcgdWRldiBsaWJyYXJ5Lgo+ ID4gCj4gPiBUb29sICdsc2dwdScgd2hpY2ggdXNlcyBkZXZpY2Ugc2Nhbm5pbmcgYW5kIHNlbGVj dGlvbiBmZWF0dXJlIHdhcyBhZGRlZC4KPiA+IAoKPGN1dD4KCj4gPiArCj4gPiArLyoqCj4gPiAr ICogU0VDVElPTjppZ3RfZGV2aWNlX3NjYW4KPiA+ICsgKiBAc2hvcnRfZGVzY3JpcHRpb246IE11 bHRpLWRldmljZSBzY2FubmluZyBhbmQgc2VsZWN0aW9uCj4gCj4gTXVsdGktZGV2aWNlIHNlbGVj dGlvbiBpcyBub3Qgd3JvbmcgYnV0IHRoZSBpbml0aWFsIGludGVycHJldGF0aW9uIChpbiBteQo+ IGNhc2UpIHdhcyAic2VsZWN0aW5nIG11bHRpcGxlIGRybSBkZXZpY2VzIGF0IHRoZSBzYW1lIHRp bWUiLgo+IAo+IEkgdGhpbmsgaXQgd291bGQgd29yayBiZXR0ZXIgd2l0aG91dCAibXVsdGkiLCBq dXN0ICJkZXZpY2Ugc2Nhbm5pbmcgYW5kCj4gc2VsZWN0aW9uIi4KPiAKPiBBbnkgcmVhc29uIHdo eSB3ZSBoYXZlIHRoaXMgYXMgYSBzZXBhcmF0ZSBzZWN0aW9uIGluIGRvY3VtZW50YXRpb24/IEkK PiB0aGluayB3ZSBjYW4gbWVyZ2UgdGhpcyB3aXRoIFtpZ3RfZGV2aWNlXSAtIGl0IGhhcyBqdXN0 IDMgZnVuY3Rpb25zIGFuZAo+IHZpcnR1YWxseSBubyBkb2N1bWVudGF0aW9uIG9mIGl0J3Mgb3du Lgo+IAo+IFtpZ3RfZGV2aWNlXTogaHR0cHM6Ly9kcm0ucGFnZXMuZnJlZWRlc2t0b3Aub3JnL2ln dC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1pZ3QtZGV2aWNlLmh0bWwKCkkgYWdyZWUgcmVnYXJk aW5nICdtdWx0aScgd29yZC4gSSd2ZSBjaG9zZW4gYW5vdGhlciBmaWxlIChub3QgaWd0X2Rldmlj ZS5jKQpiZWNhdXNlIHRlY2huaWNhbGx5IGl0IGlzIHJlbGF0ZWQgdG8gc2Nhbm5pbmcgdWRldiwg bm90IGFjY2VzcyB0byBkZXZpY2UKaXRzZWxmLiBJIGFzc3VtZWQgdGhhdCBpZ3RfZGV2aWNlIGNv ZGUgaXMgcmVsYXRlZCB0byBkb2luZyBvcGVyYXRpb25zIApvbiBkcm0gZGV2aWNlIGZkLiAKCj4g PiArICogRm9yIHRlc3RzIHdoaWNoIG9wZW5zIG1vcmUgdGhhbiBvbmUgZGV2aWNlIGRldmljZSBm aWx0ZXIgY29sbGVjdGlvbiBBUEkKPiA+ICsgKiBjYW4gYmUgdXNlZC4gWW91IGNhbiBhZGQgZmls dGVyIHRvIHRoZSBhcnJheSB1c2luZyBpZ3RfZGV2aWNlX2ZpbHRlcl9hZGQoKSwKPiA+ICsgKiBn ZXQgbnRoIGZpbHRlciBzdG9yZWQgdXNpbmcgaWd0X2RldmljZV9maWx0ZXJfZ2V0KCkgYW5kIHJl dHVybgo+ID4gKyAqICNpZ3RfZGV2aWNlX2NhcmQgdXNpbmcgZmlsdGVyIGluIGlndF9kZXZpY2Vf Y2FyZF9tYXRjaCgpLgo+IAo+IEkgd291bGQgcmV3b3JkIHRoYXQgc2xpZ2h0bHk6Cj4gCj4gKiBG b3IgdGVzdHMgd2hpY2ggb3BlbnMgbW9yZSB0aGFuIG9uZSBkZXZpY2UgZGV2aWNlIGZpbHRlciBj b2xsZWN0aW9uIEFQSQo+ICogY2FuIGJlIHVzZWQuIFlvdSBjYW4gYWRkIGEgZmlsdGVyIHRvIHRo ZSBhcnJheSB1c2luZyBpZ3RfZGV2aWNlX2ZpbHRlcl9hZGQoKSwKPiAqIGdldCB0aGUgbnRoIGZp bHRlciBzdG9yZWQgdXNpbmcgaWd0X2RldmljZV9maWx0ZXJfZ2V0KCkgYW5kIGdldAo+ICogI2ln dF9kZXZpY2VfY2FyZCB1c2luZyBpZ3RfZGV2aWNlX2NhcmRfbWF0Y2goKSB3aXRoIHRoYXQgZmls dGVyLgo+IAo+IEJ1dCB0aGF0IGFzaWRlIC0gZXh0ZW5kaW5nIHRoZSBwb2ludCBmcm9tIHRoZSBy ZXZpZXcgb2YgcGF0Y2ggMjoKPiAKPiBUbyBoYW5kbGUgbXVsdGlwbGUgZGV2aWNlcyBpbiBhIHNp bmdsZSB0ZXN0IHlvdSB3b3VsZCBoYXZlIHRvOgo+ICAqIGNoZWNrIGV4aXN0aW5nIGZpbHRlcnMK PiAgKiBhZGQgYW55IG1pc3Npbmcgb25lcwo+ICAqIG9wZW4gYWxsIHRoZSBjYXJkcyB1c2luZyAx LDIuLi5uIGZpbHRlcnMKPiAKPiBXaGljaCBzdGlsbCBmZWVscyBhd2t3YXJkIGFuZCBxdWl0ZSBj aG9yZWZ1bC4gSSBkb24ndCB0aGluayB0aGF0Cj4gbWFuYWdpbmcgZmlsdGVycyBmcm9tIGluc2lk ZSBhIHRlc3QgaXMgdGhlIGdyZWF0ZXN0IGlkZWEuICBMaWJyYXJ5Cj4gc2hvdWxkIGhpZGUgdGhh dC4KPiAKPiBJZiB5b3UgaGF2ZSB1c2UgY2FzZXMgZm9yIHRoaXMgdGhpbmcgaGl0IG1lIHdpdGgg c29tZSBwc2V1ZG9jb2RlLCBJIHdvdWxkCj4gbGlrZSB0byB1bmRlcnN0YW5kLgoKTGlicmFyeSBo ZWxwZXJzIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBkcm10ZXN0LmMvaCBhbmQgaW4gbXkgb3Bpbmlv bgp0aGVyZSdzIGFwcHJvcHJpYXRlIHBsYWNlIGZvciB0aGF0LiBEZXZpY2Ugc2VsZWN0aW9uIGFk ZHMgYSBjb2RlIHlvdQpjYW4gdXNlIGZvciB0aGF0LiAgCgo8Y3V0Pgo+ID4gKyAqICAgQm90aCBz ZWxlY3RzIGZpcnN0IFZDNCBkZXZpY2UuIEF0IHRoZSBtb21lbnQgUmFzcGVycnkgUEkgaGFzIG9u bHkKPiA+ICsgKiAgIG9uZSBncHUsIGJ1dCBmaWx0ZXIgaXMgcmVhZHkgaWYgdGhlcmUgd2lsbCBi ZSBtb3JlLgo+ID4gKyAqCj4gPiArICogIyBsc2dwdQo+ID4gKyAqCj4gPiArICogU2Nhbm5lZCBk ZXZpY2VzIGNhbiBiZSBkaXNwbGF5ZWQgdXNpbmcgJ2xzZ3B1JyB0b29sLiBUb29sIGFsc28gZGlz cGxheXMKPiA+ICsgKiBwcm9wZXJ0aWVzIGFuZCBzeXNhdHRycyAoLUQgc3dpdGNoLCBtZWFucyBk ZXRhaWwpIHdoaWNoIGNhbiBiZSB1c2VkIGR1cmluZwo+ID4gKyAqIGZpbHRlciBpbXBsZW1lbnRh dGlvbi4KPiAKPiAiVGhlIGRldmljZXMgY2FuIGJlIHNjYW5uZWQgYW5kIGRpc3BsYXllZCIKPiAK PiAiVGhlIHRvb2wgYWxzbyBkaXNwbGF5cyIKPiAKPiAiLUQgc3dpdGNoLCBmb3IgZGV0YWlscyIK PiAKPiBGaWx0ZXIgaW1wbGVtZW50YXRpb24/IEkgYW0gbm90IHN1cmUgYnV0IEkgdGhpbmsgdGhp cyBwYXJhZ3JhcGggc2hvdWxkCj4gcmVhZCAid2hpY2ggY2FuIGJlIGhlbHBmdWwgd2hlbiB3cml0 aW5nIGZpbHRlcnMiLgoKT2suCgo+IAo+ID4gKyAqCj4gPiArICogVG9vbCBjYW4gYWxzbyBiZSB1 c2VkIHRvIGNoZWNrIGRvZXMgdGhlIGltcGxlbWVudGVkIGZpbHRlciB3b3JrcyBhcyBleHBlY3Rl ZC4KPiA+ICsgKiBUbyBzZWxlY3QgZGV2aWNlIHVzaW5nIGZpbHRlciB1c2UgJy1kJyBvciAnLS1k ZXZpY2UnIGFyZ3VtZW50IGxpa2U6Cj4gCj4gImxzZ3B1IGNhbiBhbHNvIGJlIHVzZWQgdG8gdHJ5 IG91dCBmaWx0ZXJzIgoKT2suCgo+IAo+ID4gKyAqCj4gPiArICogfFs8IS0tIGxhbmd1YWdlPSJw bGFpbiIgLS0+Cj4gPiArICogLi9sc2dwdSAtZCAncGNpOnZlbmRvcj1JbnRlbCcKPiA+ICsgKiA9 PT0gRGV2aWNlIGZpbHRlciBsaXN0ID09PQo+ID4gKyAqIFsgMF06IHBjaTp2ZW5kb3I9SW50ZWwK PiA+ICsKPiA+ICsgKiA9PT0gVGVzdGluZyBkZXZpY2Ugb3BlbiA9PT0KPiA+ICsgKiBzdWJzeXN0 ZW0gICA6IHBjaQo+ID4gKyAqIGNoaXBzZXQgICAgIDogMQo+ID4gKyAqIGRybSBjYXJkICAgIDog L2Rldi9kcmkvY2FyZDAKPiA+ICsgKiBkcm0gcmVuZGVyICA6IC9kZXYvZHJpL3JlbmRlckQxMjgK PiA+ICsgKiBEZXZpY2UgL2Rldi9kcmkvY2FyZDAgc3VjY2Vzc2Z1bGx5IG9wZW5lZAo+ID4gKyAq IERldmljZSAvZGV2L2RyaS9yZW5kZXJEMTI4IHN1Y2Nlc3NmdWxseSBvcGVuZWQKPiA+ICsgKiBd fAo+ID4gKyAqCj4gPiArICogQXBhcnQgb2Ygc2VsZWN0aW5nIGRldmljZSBsc2dwdSB0cnkgdG8g b3BlbiBjYXJkIGFuZCByZW5kZXIgbm9kZXMuCj4gCj4gSSB0aGluayB0aGlzIGNvdWxkIHVzZSBz b21lIGNvbnRleHQgb24gd2h5LCBlLmcuCj4gIkFkZGl0aW9uYWxseSBsc2dwdSB0cmllcyB0byBv cGVuIHRoZSBjYXJkIGFuZCByZW5kZXIgbm9kZXMgdG8gdmVyaWZ5Cj4gcGVybWlzc2lvbnMuLi4i CgpPay4gCgo+IAo+ID4gKyovCj4gPiArCj4gPiArLy8jZGVmaW5lIERFQlVHX0RFVklDRV9TQ0FO Cj4gCj4gbGVmdG92ZXIgZGVmaW5lCgpJJ2xsIHJlbW92ZSB0aGF0LiAKCj4gCj4gPiArI2lmZGVm IERFQlVHX0RFVklDRV9TQ0FOCj4gPiArI2RlZmluZSBEQkcoLi4uKSBcCj4gPiAreyBcCj4gPiAr CXN0cnVjdCB0aW1ldmFsIHRtOyBcCj4gPiArCWdldHRpbWVvZmRheSgmdG0sIE5VTEwpOyBcCj4g PiArCXByaW50ZigiJTEwbGQuJTAzbGQ6ICIsIHRtLnR2X3NlYywgdG0udHZfdXNlYyk7IFwKPiA+ ICsJcHJpbnRmKF9fVkFfQVJHU19fKTsgXAo+ID4gKwl9Cj4gPiArCj4gPiArI2Vsc2UKPiA+ICsj ZGVmaW5lIERCRyguLi4pIHt9Cj4gPiArI2VuZGlmCj4gPiArCj4gPiArI2RlZmluZSBzdHJlcXVh bCh4LCB5KSAoKHgpICYmICh5KSAmJiAhc3RyY21wKCh4KSwgKHkpKSkKPiA+ICsjZGVmaW5lIElH VF9EUk1fUEFUSCAiL2Rldi9kcmkiCj4gPiArCj4gPiArc3RhdGljIEdIYXNoVGFibGUgKnN5c2F0 dHJzX2JsYWNrbGlzdF9odDsgIC8vc3lzYXR0cnMgd2UgZG9uJ3Qgd2FudCB0byByZWFkCj4gPiAr c3RhdGljIEdIYXNoVGFibGUgKmdwdV92ZW5kb3JfaHQ7ICAgICAgICAgIC8vc2VhcmNoIGlkIC0+ IHZlbmRvcl9zcGVjIG1hcHBpbmcKPiA+ICtzdGF0aWMgR0hhc2hUYWJsZSAqZmlsdGVyX2RlZmlu aXRpb25faHQ7ICAgLy9zdXBwb3J0ZWQgZmlsdGVycyAocGNpPS4uLiwgZXRjLikKPiAKPiAvKiB3 ZSBhcmUgdXNpbmcgcGxhaW4gb2xkIEMtc3R5bGUgY29tbWVudHMsIGV2ZW4gYXQgdGhlIGVuZCBv ZiB0aGUgbGluZSAqLwoKVGhpcyBpcyBub3QgdHJ1ZSBhdCB3aG9sZSBwcm9qZWN0IGJ1dCBvaywg SSdsbCBjaGFuZ2UgdGhhdC4KPiAKPiA8U05JUD4KPiAKPiBJJ2xsIHJldmlldyB0aGUgYWN0dWFs IGNvZGUgaW4gbW9yZSBkZXRhaWwgb25jZSBJIGhhdmUgZW5vdWdoIGNhZmZlaW5lIGluIG15Cj4g Ymxvb2RzdHJlYW0gdG8gaGFuZGxlIGdsaWIgOi0pCj4gCj4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMv bHNncHUuYyBiL3Rvb2xzL2xzZ3B1LmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRl eCAwMDAwMDAwMC4uZTcyM2YwYjIKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL3Rvb2xzL2xz Z3B1LmMKPiA+IEBAIC0wLDAgKzEsMTgzIEBACj4gPiArLyoKPiA+ICsgKiBDb3B5cmlnaHQgwqkg MjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gKyAqCj4gPiArICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiA+ ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ID4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiA+ICsgKiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0 ZSwgc3VibGljZW5zZSwKPiA+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiA+ICsgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ ID4gKyAqCj4gPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUK PiA+ICsgKiBTb2Z0d2FyZS4KPiA+ICsgKgo+ID4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gPiAr ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCj4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gPiArICogVEhFIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ID4gKyAqIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB TElOR1MKPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gPiArICoKPiA+ICsgKi8KPiA+ICsKPiA+ ICsjaW5jbHVkZSAiaWd0X2RldmljZV9zY2FuLmgiCj4gPiArI2luY2x1ZGUgImlndC5oIgo+ID4g KyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KPiA+ICsjaW5jbHVkZSA8ZmNudGwuaD4KPiA+ICsjaW5j bHVkZSA8ZXJybm8uaD4KPiA+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gPiArI2luY2x1ZGUgPHNp Z25hbC5oPgo+ID4gKwo+ID4gK2VudW0gewo+ID4gKwlPUFRfUFJJTlRfREVUQUlMICAgPSAnRCcs Cj4gPiArCU9QVF9MSVNUX1ZFTkRPUlMgICA9ICd2JywKPiA+ICsJT1BUX0xJU1RfRklMVEVSUyAg ID0gJ2wnLAo+ID4gKwlPUFRfREVWSUNFICAgICAgICAgPSAnZCcsCj4gPiArCU9QVF9IRUxQICAg ICAgICAgICA9ICdoJwo+ID4gK307Cj4gPiArCj4gPiArYm9vbCBnX3Nob3dfdmVuZG9yczsKPiA+ ICtib29sIGdfbGlzdF9maWx0ZXJzOwo+ID4gK2Jvb2wgZ19kZXZpY2U7Cj4gPiArYm9vbCBnX2hl bHA7Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKnVzYWdlX3N0ciA9Cj4gPiArCSJ1c2Fn ZTogbHNncHUgW29wdGlvbnNdXG5cbiIKPiA+ICsJIk9wdGlvbnM6XG4iCj4gPiArCSIgIC1ELCAt LXByaW50LWRldGFpbHMgICAgICAgICBQcmludCBkZXZpY2VzIHdpdGggZGV0YWlsc1xuIgo+ID4g KwkiICAtdiwgLS1saXN0LXZlbmRvcnMgICAgICAgICAgTGlzdCByZWNvZ25pemVkIHZlbmRvcnNc biIKPiA+ICsJIiAgLWwsIC0tbGlzdC1maWx0ZXItdHlwZXMgICAgIExpc3QgcmVnaXN0ZXJlZCBk ZXZpY2UgZmlsdGVycyB0eXBlc1xuIgo+ID4gKwkiICAtZCwgLS1kZXZpY2UgZmlsdGVyICAgICAg ICAgRGV2aWNlIGZpbHRlciwgY2FuIGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzXG4iCj4gPiArCSIg IC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICBTaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBl eGl0XG4iOwo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHRlc3RfZGV2aWNlX29wZW4oc3RydWN0IGln dF9kZXZpY2VfY2FyZCAqY2FyZCkKPiA+ICt7Cj4gPiArCWludCBmZDsKPiA+ICsKPiA+ICsJaWYg KCFjYXJkKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlmZCA9IGRybV9vcGVuX2NhcmQoY2Fy ZCk7Cj4gPiArCWlmIChmZCA+PSAwKSB7Cj4gPiArCQlwcmludGYoIkRldmljZSAlcyBzdWNjZXNz ZnVsbHkgb3BlbmVkXG4iLCBjYXJkLT5jYXJkKTsKPiA+ICsJCWNsb3NlKGZkKTsKPiA+ICsJfSBl bHNlIHsKPiA+ICsJCWlmIChzdHJsZW4oY2FyZC0+Y2FyZCkpCj4gPiArCQkJcHJpbnRmKCJDYW5u b3Qgb3BlbiBjYXJkICVzIGRldmljZVxuIiwgY2FyZC0+Y2FyZCk7Cj4gPiArCQllbHNlCj4gPiAr CQkJcHJpbnRmKCJDYW5ub3Qgb3BlbiBjYXJkIGRldmljZSwgZW1wdHkgbmFtZVxuIik7Cj4gPiAr CX0KPiA+ICsKPiA+ICsJZmQgPSBkcm1fb3Blbl9yZW5kZXIoY2FyZCk7Cj4gPiArCWlmIChmZCA+ PSAwKSB7Cj4gPiArCQlwcmludGYoIkRldmljZSAlcyBzdWNjZXNzZnVsbHkgb3BlbmVkXG4iLCBj YXJkLT5yZW5kZXIpOwo+ID4gKwkJY2xvc2UoZmQpOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJaWYg KHN0cmxlbihjYXJkLT5yZW5kZXIpKQo+ID4gKwkJCXByaW50ZigiQ2Fubm90IG9wZW4gcmVuZGVy ICVzIGRldmljZVxuIiwgY2FyZC0+cmVuZGVyKTsKPiA+ICsJCWVsc2UKPiA+ICsJCQlwcmludGYo IkNhbm5vdCBvcGVuIHJlbmRlciBkZXZpY2UsIGVtcHR5IG5hbWVcbiIpOwo+ID4gKwl9Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHByaW50X2NhcmQoc3RydWN0IGlndF9kZXZpY2VfY2Fy ZCAqY2FyZCkKPiA+ICt7Cj4gPiArCWlmICghY2FyZCkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ ICsJcHJpbnRmKCJzdWJzeXN0ZW0gICA6ICVzXG4iLCBjYXJkLT5zdWJzeXN0ZW0pOwo+ID4gKwlw cmludGYoImNoaXBzZXQgICAgIDogJXhcbiIsIGNhcmQtPmNoaXBzZXQpOwo+ID4gKwlwcmludGYo ImRybSBjYXJkICAgIDogJXNcbiIsIGNhcmQtPmNhcmQpOwo+ID4gKwlwcmludGYoImRybSByZW5k ZXIgIDogJXNcbiIsIGNhcmQtPnJlbmRlcik7Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCj4gPiArewo+ID4gKwlzdGF0aWMgc3RydWN0IG9wdGlvbiBs b25nX29wdGlvbnNbXSA9IHsKPiA+ICsJCXsicHJpbnQtZGV0YWlsIiwgICAgICBub19hcmd1bWVu dCwgICAgICAgTlVMTCwgT1BUX1BSSU5UX0RFVEFJTH0sCj4gPiArCQl7Imxpc3QtdmVuZG9ycyIs ICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIE9QVF9MSVNUX1ZFTkRPUlN9LAo+ID4gKwkJ eyJsaXN0LWZpbHRlci10eXBlcyIsIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBPUFRfTElTVF9G SUxURVJTfSwKPiA+ICsJCXsiZGV2aWNlIiwgICAgICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwg TlVMTCwgT1BUX0RFVklDRX0sCj4gPiArCQl7ImhlbHAiLCAgICAgICAgICAgICAgbm9fYXJndW1l bnQsICAgICAgIE5VTEwsIE9QVF9IRUxQfSwKPiA+ICsJCXswLCAwLCAwLCAwfQo+ID4gKwl9Owo+ ID4gKwlpbnQgYywgaW5kZXggPSAwOwo+ID4gKwljb25zdCBjaGFyICplbnY7Cj4gPiArCWVudW0g aWd0X2RldmljZXNfcHJpbnRfdHlwZSBwcmludHR5cGUgPSBJR1RfUFJJTlRfU0lNUExFOwo+ID4g Kwo+ID4gKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiRHZsZDpoIiwKPiA+ ICsJCQkJbG9uZ19vcHRpb25zLCAmaW5kZXgpKSAhPSAtMSkgewo+ID4gKwkJc3dpdGNoKGMpIHsK PiA+ICsKPiA+ICsJCWNhc2UgT1BUX1BSSU5UX0RFVEFJTDoKPiA+ICsJCQlwcmludHR5cGUgPSBJ R1RfUFJJTlRfREVUQUlMOwo+ID4gKwkJCWJyZWFrOwo+ID4gKwkJY2FzZSBPUFRfTElTVF9WRU5E T1JTOgo+ID4gKwkJCWdfc2hvd192ZW5kb3JzID0gdHJ1ZTsKPiA+ICsJCQlicmVhazsKPiA+ICsJ CWNhc2UgT1BUX0xJU1RfRklMVEVSUzoKPiA+ICsJCQlnX2xpc3RfZmlsdGVycyA9IHRydWU7Cj4g PiArCQkJYnJlYWs7Cj4gPiArCQljYXNlIE9QVF9ERVZJQ0U6Cj4gPiArCQkJZ19kZXZpY2UgPSB0 cnVlOwo+ID4gKwkJCWlndF9kZXZpY2VfZmlsdGVyX2FkZChvcHRhcmcpOwo+ID4gKwkJCWJyZWFr Owo+ID4gKwkJY2FzZSBPUFRfSEVMUDoKPiA+ICsJCQlnX2hlbHAgPSB0cnVlOwo+ID4gKwkJCWJy ZWFrOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChnX2hlbHApIHsKPiA+ICsJCXBy aW50ZigiJXNcbiIsIHVzYWdlX3N0cik7Cj4gPiArCQlleGl0KDApOwo+ID4gKwl9Cj4gPiArCj4g PiArCWVudiA9IGdldGVudigiSUdUX0RFVklDRSIpOwo+ID4gKwlpZiAoZW52KSB7Cj4gPiArCQlp Z3RfZGV2aWNlX2ZpbHRlcl9hZGQoZW52KTsKPiA+ICsJCWdfZGV2aWNlID0gdHJ1ZTsKPiA+ICsJ fQo+ID4gKwo+ID4gKwlpZiAoZ19zaG93X3ZlbmRvcnMpIHsKPiA+ICsJCWlndF9kZXZpY2VzX3By aW50X3ZlbmRvcnMoKTsKPiA+ICsJCXJldHVybiAwOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChn X2xpc3RfZmlsdGVycykgewo+ID4gKwkJaWd0X2RldmljZV9wcmludF9maWx0ZXJfdHlwZXMoKTsK PiA+ICsJCXJldHVybiAwOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlndF9kZXZpY2VzX3NjYW4oZmFs c2UpOwo+ID4gKwo+ID4gKwlpZiAoZ19kZXZpY2UpIHsKPiA+ICsJCWludCBuID0gaWd0X2Rldmlj ZV9maWx0ZXJfY291bnQoKTsKPiA+ICsJCXByaW50ZigiPT09IERldmljZSBmaWx0ZXIgbGlzdCA9 PT1cbiIpOwo+ID4gKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKPiA+ICsJCQlwcmlu dGYoIlslMmRdOiAlc1xuIiwgaSwKPiA+ICsJCQkgICAgICAgaWd0X2RldmljZV9maWx0ZXJfZ2V0 KGkpKTsKPiA+ICsJCX0KPiA+ICsJCXByaW50ZigiXG4iKTsKPiA+ICsKPiA+ICsJCXByaW50Zigi PT09IFRlc3RpbmcgZGV2aWNlIG9wZW4gPT09XG4iKTsKPiA+ICsJCWZvciAoaW50IGkgPSAwOyBp IDwgbjsgaSsrKSB7Cj4gPiArCQkJc3RydWN0IGlndF9kZXZpY2VfY2FyZCBjYXJkOwo+ID4gKwkJ CWNvbnN0IGNoYXIgKmZpbHRlciA9IGlndF9kZXZpY2VfZmlsdGVyX2dldChpKTsKPiA+ICsKPiA+ ICsJCQlpZiAoIWlndF9kZXZpY2VfY2FyZF9tYXRjaChmaWx0ZXIsICZjYXJkKSkKPiA+ICsJCQkJ Y29udGludWU7Cj4gPiArCQkJcHJpbnRfY2FyZCgmY2FyZCk7Cj4gPiArCQkJdGVzdF9kZXZpY2Vf b3BlbigmY2FyZCk7Cj4gPiArCQkJcHJpbnRmKCItLS1cbiIpOwo+ID4gKwkJfQo+ID4gKwo+ID4g KwkJcmV0dXJuIDA7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWd0X2RldmljZXNfcHJpbnQocHJpbnR0 eXBlKTsKPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gZGlmZiAtLWdpdCBhL3Rvb2xz L21lc29uLmJ1aWxkIGIvdG9vbHMvbWVzb24uYnVpbGQKPiA+IGluZGV4IDZlNzJiMjYzLi45YjNh MmE2OSAxMDA2NDQKPiA+IC0tLSBhL3Rvb2xzL21lc29uLmJ1aWxkCj4gPiArKysgYi90b29scy9t ZXNvbi5idWlsZAo+ID4gQEAgLTM2LDYgKzM2LDcgQEAgdG9vbHNfcHJvZ3MgPSBbCj4gPiAgCSdp bnRlbF9nZW1faW5mbycsCj4gPiAgCSdpbnRlbF9ndnRnX3Rlc3QnLAo+ID4gIAknZHBjZF9yZWcn LAo+ID4gKwknbHNncHUnLAo+ID4gIF0KPiA+ICB0b29sX2RlcHMgPSBpZ3RfZGVwcwo+IAo+IE9o LCBJIGFscmVhZHkgbGlrZSAtLWRldmljZSBhbmQgbHNncHUgOi0pCj4gCj4gRmluYWxseSBJJ2xs IGJlIGFibGUgdG8gcnVuIGttc18gdGVzdHMgb24gaTkxNSBvbiBteSBwZXJzb25hbCByaWcsIHdo aWNoCj4gYWxzbyBoYXMgYSBkaXNjcmV0ZSBjYXJkLiBpOTE1IHVzdWFsbHkgZ2V0cyBlbnVtZXJh dGVkIHNlY29uZCBmb3IgbWUuLi4KPiAKPiBUaGFua3MgZm9yIGRvaW5nIHRoaXMhCj4gCj4gLS0g Cj4gQ2hlZXJzLAo+IEFyZWsKCkknbGwgcHVzaCB2NSBzb29uLgoKWmJpZ25pZXcKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxp c3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2