From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B35E6EC9E for ; Fri, 8 Feb 2019 18:13:19 +0000 (UTC) Date: Fri, 8 Feb 2019 10:13:20 -0800 From: Rodrigo Vivi Message-ID: <20190208181320.GA837@intel.com> References: <20181022214118.19823-1-tarun.vyas@intel.com> <87a7n5dp20.fsf@intel.com> <20181023121334.GA30824@otc-arch-ivb-06> <20181029231831.GA18598@otc-arch-ivb-06> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181029231831.GA18598@otc-arch-ivb-06> Subject: Re: [igt-dev] [PATCH i-g-t] tools/dpcd_reg: Add dump all functionality 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: Tarun Vyas Cc: igt-dev@lists.freedesktop.org, dhinakaran.pandiyan@intel.com List-ID: SGkgVGFydW4sCgpJIGxvc3QgdGhlIHRyYWNrIGhlcmUuLi4KCklzIHRoaXMgY29tcGxldGVkIGFu ZCB3ZSBjb3VsZCByZW1vdmUgdGhlIGtlcm5lbCBkZWJ1Z2ZzIGFscmVhZHk/CgpPciBkbyB3ZSBu ZWVkIHRvIGZvbGxvdyB1cCBvbiB0aGlzIGR1bXAgYWxsPwoKVGhhbmtzLApSb2RyaWdvLgoKT24g TW9uLCBPY3QgMjksIDIwMTggYXQgMTE6MTg6MzFQTSArMDAwMCwgVGFydW4gVnlhcyB3cm90ZToK PiBPbiBUdWUsIE9jdCAyMywgMjAxOCBhdCAxMjoxMzozNFBNICswMDAwLCBUYXJ1biBWeWFzIHdy b3RlOgo+ID4gT24gVHVlLCBPY3QgMjMsIDIwMTggYXQgMTE6NTA6NDdBTSArMDMwMCwgSmFuaSBO aWt1bGEgd3JvdGU6Cj4gPiA+IE9uIE1vbiwgMjIgT2N0IDIwMTgsIFRhcnVuIFZ5YXMgPHRhcnVu LnZ5YXNAaW50ZWwuY29tPiB3cm90ZToKPiA+ID4gPiBGcm9tOiBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+Cj4gPiA+ID4KPiA+ID4gPiBBbmQgbWFrZSBpdCB0aGUgZGVmYXVs dCB3aGVuIG5vIG9wZXJhdGlvbiBvciBkZXZpY2UgaXMgZ2l2ZW4uCj4gPiA+ID4KPiA+ID4gPiBT bywgdGhpcyB3aWxsIHJlcGxhY2UgaTkxNV9kcGNkIGZvciBub3cgYnV0IGNhbiBiZSBleHBhbmRl ZAo+ID4gPiA+IGxhdGVyLgo+ID4gPiA+Cj4gPiA+ID4gQ3VycmVudCBkZWJ1Z2ZzOgo+ID4gPiA+ Cj4gPiA+ID4gJCBzdWRvIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9EUC0xL2k5MTVfZHBj ZAo+ID4gPiA+IDAwMDA6IDEyIDE0IGM0IDAxIDAxIDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAw IDAyCj4gPiA+ID4gMDA3MDogMDAgMDAKPiA+ID4gPiAwMDgwOiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ID4gPiA+IDAxMDA6IDE0IDg0IDAwIDA2IDA2 IDA2IDA2IDAwIDAxIDA0IDAwCj4gPiA+ID4gMDIwMDogNDEgMDAgNzcgNzcgMDEgMDMgMjIgMjIK PiA+ID4gPiAwNjAwOiAwMQo+ID4gPiA+IDA3MDA6IDAxCj4gPiA+ID4gMDcwMTogMDAgMDAgMDAg MDAKPiA+ID4gPiAwNzIwOiAwMCAwMSAwMCAwMCAwMCAwMSAwMSAwMCAwMCAwMCAwMCAwMCAwMSAw MCAwMCAwMQo+ID4gPiA+IDA3MzI6IDAwIDAwCj4gPiA+ID4KPiA+ID4gPiAkIHN1ZG8gY2F0IC9z eXMva2VybmVsL2RlYnVnL2RyaS8wL2VEUC0xL2k5MTVfZHBjZAo+ID4gPiA+IDAwMDA6IDEyIDE0 IDg0IDQwIDAwIDAwIDAxIDAxIDAyIDAwIDAwIDAwIDAwIDBiIDAwCj4gPiA+ID4gMDA3MDogMDEg MDAKPiA+ID4gPiAwMDgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMAo+ID4gPiA+IDAxMDA6IDE0IDA0IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4g PiA+ID4gMDIwMDogNDEgMDAgMDAgMDAgODAgMDAgNjYgNjYKPiA+ID4gPiAwNjAwOiAwMQo+ID4g PiA+IDA3MDA6IDAyCj4gPiA+ID4gMDcwMTogOWYgNDAgMDAgMDAKPiA+ID4gPiAwNzIwOiAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ID4gPiA+IDA3MzI6 IDAwIDAwCj4gPiA+ID4KPiA+ID4gPiBuZXcgdG9vbDoKPiA+ID4gPgo+ID4gPiA+ICQgc3VkbyB0 b29scy9kcGNkX3JlZwo+ID4gPiA+Cj4gPiA+ID4gRHVtcGluZyBEUEREQy1CCj4gPiA+ID4gMHgw MDAwOiAxMiAxNCBjNCAwMSAwMSAwMCAwMSAwMCAwMiAwMiAwNiAwMCAwMCAwMCAwMgo+ID4gPiA+ IDB4MDA3MDogMDAgMDAKPiA+ID4gPiAweDAwODA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiA+ID4gMHgwMTAwOiAxNCA4NCAwMCAwNiAwNiAwNiAw NiAwMCAwMSAwNCAwMAo+ID4gPiA+IDB4MDIwMDogNDEgMDAgNzcgNzcgMDEgMDMgMjIgMjIKPiA+ ID4gPiAweDA2MDA6IDAxCj4gPiA+ID4gMHgwNzAwOiAwMQo+ID4gPiA+IDB4MDcwMTogMDAgMDAg MDAgMDAKPiA+ID4gPiAweDA3MjA6IDAwIDAxIDAwIDAwIDAwIDAxIDAxIDAwIDAwIDAwIDAwIDAw IDAxIDAwIDAwIDAxCj4gPiA+ID4gMHgwNzMyOiAwMCAwMAo+ID4gPiA+IDB4MjAwODogMDAKPiA+ ID4gPgo+ID4gPiA+IER1bXBpbmcgRFBEREMtQQo+ID4gPiA+IDB4MDAwMDogIDE0IDBhIDgyIDQx IDAwIDAwIDAxIGMwIDAyIDAwIDAwIDAwIDBmIDA5IDgwCj4gPiA+ID4gMHgwMDcwOiAgMDMgMWIK PiA+ID4gPiAweDAwODA6ICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMAo+ID4gPiA+IDB4MDEwMDogIDAwIDgyIDAwIDAwIDAwIDAwIDAwIDAwIDAxIDA4IDAw Cj4gPiA+ID4gMHgwMjAwOiAgMDEgMDAgMDAgMDAgMDAgMDEgMDAgMDAKPiA+ID4gPiAweDA2MDA6 ICAwMQo+ID4gPiA+IDB4MDcwMDogIDA0Cj4gPiA+ID4gMHgwNzAxOiAgZmIgZmYgMDAgMDAKPiA+ ID4gPiAweDA3MjA6ICAwMSAwMyBmZiBmZiAxMCAwYSAxMCAwMCAwMSAwMCAwMSAwMCAwMCBjMCAw MCAwMAo+ID4gPiA+IDB4MDczMjogIDAwIDE0Cj4gPiA+ID4gMHgyMDA4OiAgMDIKPiA+ID4gPgo+ ID4gPiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVs LmNvbT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogVGFydW4gVnlhcyA8dGFydW4udnlhc0Bp bnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIHRvb2xzL2RwY2RfcmVnLmMgfCA5MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4g PiA+ICAxIGZpbGUgY2hhbmdlZCwgOTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4g PiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL2RwY2RfcmVnLmMgYi90b29scy9kcGNkX3Jl Zy5jCj4gPiA+ID4gaW5kZXggMjc2MTE2OGQuLjUxY2VjODVmIDEwMDY0NAo+ID4gPiA+IC0tLSBh L3Rvb2xzL2RwY2RfcmVnLmMKPiA+ID4gPiArKysgYi90b29scy9kcGNkX3JlZy5jCj4gPiA+ID4g QEAgLTM1LDYgKzM1LDcgQEAKPiA+ID4gPiAgI2luY2x1ZGUgPHVuaXN0ZC5oPgo+ID4gPiA+ICAj aW5jbHVkZSA8bGltaXRzLmg+Cj4gPiA+ID4gICNpbmNsdWRlIDxzdGRib29sLmg+Cj4gPiA+ID4g KyNpbmNsdWRlIDxkaXJlbnQuaD4KPiA+ID4gPiAgCj4gPiA+ID4gICNkZWZpbmUgTUFYX0RQX09G RlNFVAkweGZmZmZmCj4gPiA+ID4gICNkZWZpbmUgRFJNX0FVWF9NSU5PUlMJMjU2Cj4gPiA+ID4g QEAgLTEwOSw2ICsxMTAsMzUgQEAgc3RhdGljIGlubGluZSBib29sIHN0cnRvbF9lcnJfdXRpbChj aGFyICplbmRwdHIsIGxvbmcgKnZhbCkKPiA+ID4gPiAgCXJldHVybiBmYWxzZTsKPiA+ID4gPiAg fQo+ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIHZvaWQgY29ubmVjdG9yX25hbWUoY2hhciAqZl9u YW1lLCBjaGFyICpkcGNkX25hbWUpCj4gPiA+ID4gK3sKPiA+ID4gPiArCWNoYXIgc3lzZnNfcGF0 aFtQQVRIX01BWF07Cj4gPiA+ID4gKwlpbnQgc3lzZnNfZmQsIHJldDsKPiA+ID4gPiArCj4gPiA+ ID4gKwlzbnByaW50ZihzeXNmc19wYXRoLCBQQVRIX01BWCwKPiA+ID4gPiArCQkgIi9zeXMvY2xh c3MvZHJtX2RwX2F1eF9kZXYvJXMvbmFtZSIsCj4gPiA+ID4gKwkJIGZfbmFtZSk7Cj4gPiA+ID4g KwlzeXNmc19mZCA9IG9wZW4oc3lzZnNfcGF0aCwgT19SRE9OTFkpOwo+ID4gPiA+ICsJaWYgKHN5 c2ZzX2ZkIDwgMCkgewo+ID4gPiA+ICsJCWZwcmludGYoc3RkZXJyLAo+ID4gPiA+ICsJCQkiZmFp bCB0byBvcGVuICVzXG4iLCBzeXNmc19wYXRoKTsKPiA+ID4gPiArCQlyZXR1cm47Cj4gPiA+ID4g Kwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmV0ID0gcmVhZChzeXNmc19mZCwgZHBjZF9uYW1lLCBz aXplb2YoZHBjZF9uYW1lKSAtIDEpOwo+ID4gPiAKPiA+ID4gU2VyaW91cyBidWcgIzEuIFRoZSBz aXplb2YgZG9lc24ndCBkbyB3aGF0IHlvdSBpbnRlbmQuCj4gPiA+Cj4gPiBZZXMsIHRoYXQgd2Fz IHN0dXBpZC4gVGhlIG9yaWdpbmFsIHBhdGNoIHdhcyBkb2luZyBpdCByaWdodCB3aGVyZSB0aGUg YXJyYXkgd2FzIGRlY2xhcmVkLiBJIG1lc3NlZCBpdCB1cCB3aGlsZSBjcmVhdGluZyBhIG5ldyBm dW5jdGlvbiBvdXQgb2YgaXQuCj4gPiA+IFJlZ3VsYXIgQyBidWcuIHJlYWQoKSBtYXkgcmV0dXJu IGEgcG9zaXRpdmUgcmVzdWx0IHNtYWxsZXIgdGhhbgo+ID4gPiByZXF1ZXN0ZWQuIFNlZSByZWFk TigpIGluIGlndF9zeXNmcy5jLgo+ID4gPiAKPiA+ID4gCj4gPiBZZXMsIGJ1dCwgaWYgdGhlIHJl YWQgd2FzIHBhcnRpYWwgKG9yIHplcm8pICwgdGhlbiB3ZSB3b3VsZCBzdGlsbCBsaWtlIHRvIHRy ZWF0IGl0IGFzIGEgZmFpbHVyZSwgaW4gdGhpcyBzcGVjaWZpYyBjYXNlLCByaWdodCA/Cj4gPiA+ ID4gKwlpZiAocmV0IDwgMCkgewo+ID4gPiA+ICsJCWZwcmludGYoc3RkZXJyLAo+ID4gPiA+ICsJ CQkiZmFpbCB0byByZWFkIGRwY2QgbmFtZSBmcm9tICVzXG5cbiIsIHN5c2ZzX3BhdGgpOwo+ID4g PiAKPiA+ID4gVHdvIG5ld2xpbmVzIGlzIHVubmVjZXNzYXJ5Lgo+ID4gPiAKPiA+IE9rLgo+ID4g PiA+ICsJCWdvdG8gY2xlYW51cDsKPiA+ID4gPiArCX0KPiA+ID4gPiArCj4gPiA+ID4gKwlkcGNk X25hbWVbcmV0XSA9ICdcMCc7Cj4gPiA+ID4gKwlwcmludGYoIiVzXG4iLCBkcGNkX25hbWUpOwo+ ID4gPiAKPiA+ID4gV2h5IGRvZXMgdGhpcyBmdW5jdGlvbiBib3RoIHJldHJpZXZlIHRoZSBuYW1l IHRvIHRoZSBjYWxsZXIgYW5kIHByaW50Cj4gPiA+IGl0PyBUaG9zZSBhcmUgdHdvIHRoaW5ncyB0 aGF0IHNob3VsZCBzdGF5IG9ydGhvZ29uYWwuCj4gPiA+IAo+ID4gSSBrZXB0IHRoZW0gc2VwYXJh dGUgb3JpZ2luYWxseS4uLndpbGwgd29yayBvbiBpdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLgo+ID4g PiA+ICsKPiA+ID4gPiArY2xlYW51cDoKPiA+ID4gPiArCWNsb3NlKHN5c2ZzX2ZkKTsKPiA+ID4g PiArfQo+ID4gPiA+ICsKPiA+ID4gPiAgc3RhdGljIGludCBwYXJzZV9vcHRzKHN0cnVjdCBkcGNk X2RhdGEgKmRwY2QsIGludCBhcmdjLCBjaGFyICoqYXJndikKPiA+ID4gPiAgewo+ID4gPiA+ICAJ aW50IHJldCwgdmZsYWcgPSAwOwo+ID4gPiA+IEBAIC0yODAsMTMgKzMxMCw2MSBAQCBzdGF0aWMg aW50IGRwY2RfZHVtcChpbnQgZmQpCj4gPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4gPiA+ICB9Cj4g PiA+ID4gIAo+ID4gPiA+ICtzdGF0aWMgaW50IGRwY2RfZHVtcF9hbGwodm9pZCkKPiA+ID4gPiAr ewo+ID4gPiA+ICsJc3RydWN0IGRpcmVudCAqZGlyZW50Owo+ID4gPiA+ICsJRElSICpkaXI7Cj4g PiA+ID4gKwljaGFyIGRldl9wYXRoW1BBVEhfTUFYXTsKPiA+ID4gPiArCWludCBkZXZfZmQsIHJl dCA9IDA7Cj4gPiA+ID4gKwljaGFyIGRwY2RfbmFtZVs4XTsKPiA+ID4gPiArCWNoYXIgZGlzY2Fy ZDsKPiA+ID4gPiArCj4gPiA+ID4gKwlkaXIgPSBvcGVuZGlyKCIvc3lzL2NsYXNzL2RybV9kcF9h dXhfZGV2LyIpOwo+ID4gPiA+ICsJaWYgKCFkaXIpIHsKPiA+ID4gPiArCQlmcHJpbnRmKHN0ZGVy ciwgImZhaWwgdG8gcmVhZCAvZGV2XG4iKTsKPiA+ID4gPiArCQlyZXR1cm4gRU5PRU5UOwo+ID4g PiA+ICsJfQo+ID4gPiA+ICsKPiA+ID4gPiArCXdoaWxlICgoZGlyZW50ID0gcmVhZGRpcihkaXIp KSkgewo+ID4gPiA+ICsJCWlmIChzdHJuY21wKGRpcmVudC0+ZF9uYW1lLCAiZHJtX2RwX2F1eCIs IDEwKSA9PSAwKSB7Cj4gPiA+ID4gKwkJCXNucHJpbnRmKGRldl9wYXRoLCBQQVRIX01BWCwKPiA+ ID4gPiArCQkJCSIvZGV2LyVzIiwgZGlyZW50LT5kX25hbWUpOwo+ID4gPiA+ICsKPiA+ID4gPiAr CQkJZGV2X2ZkID0gb3BlbihkZXZfcGF0aCwgT19SRE9OTFkpOwo+ID4gPiA+ICsJCQlpZiAoZGV2 X2ZkIDwgMCkgewo+ID4gPiA+ICsJCQkJZnByaW50ZihzdGRlcnIsCj4gPiA+ID4gKwkJCQkJImZh aWwgdG8gb3BlbiAlc1xuIiwgZGV2X3BhdGgpOwo+ID4gPiA+ICsJCQkJY29udGludWU7Cj4gPiA+ ID4gKwkJCX0KPiA+ID4gPiArCj4gPiA+ID4gKwkJCXByaW50ZigiXG5EdW1waW5nICIpOwo+ID4g PiA+ICsJCQljb25uZWN0b3JfbmFtZShkaXJlbnQtPmRfbmFtZSwgZHBjZF9uYW1lKTsKPiA+ID4g Cj4gPiA+IEFuZCB3aGF0IGlmIGNvbm5lY3Rvcl9uYW1lKCkgZmFpbHM/Cj4gPiA+IAo+ID4gSSBo YWQgY29ubmVjdG9yX25hbWUoKSByZXR1cm4gYW4gaW50IGJ1dCB0aGVuIGNoYW5nZWQgaXQgdG8g dm9pZCBiL2MgSSB3YXMgbGlrZSwKPiA+IEknZCBzdGlsbCB3YW50IHRvIGR1bXAgdGhlIHJlZ2lz dGVycyByZWdhcmRsZXNzIG9mIGNvbm5lY3Rvcl9uYW1lLgo+ID4gRG8gd2Ugd2FubmEgc2tpcCBp dCBhbGwgaWYgd2UgY2FudCBnZXQgdGhlIGNvbm5lY3Rvcl9uYW1lID8KPiA+ID4gPiArCj4gPiA+ ID4gKwkJCS8qIER1bW15IHJlYWQgdG8gY2hlY2sgaWYgZHBjZCBpcyBhdmFpbGFibGUgKi8KPiA+ ID4gPiArCQkJcmV0ID0gcmVhZChkZXZfZmQsICZkaXNjYXJkLCAxKTsKPiA+ID4gCj4gPiA+IFNl cmlvdXMgYnVnICMyLiBUaGlzIHJlYWQgYm90Y2hlcyB1cCB0aGUgd2hvbGUgZHVtcC4KPiA+ID4g Cj4gPiBIbW0uIHdlIHNob3VsZCBza2lwIHRoZSBkdW1wIG9ubHkgaWYgdGhlIHJlYWQgcmV0dXJu IGEgLXZlLi4uCj4gPiA+ID4gKwkJCWlmIChyZXQgIT0gMSkgewo+ID4gPiA+ICsJCQkJcHJpbnRm KCJEUENEICVzIHNlZW1zIG5vdCBhdmFpbGFibGUuIHNraXBwaW5nLi4uXG4iLAo+ID4gPiA+ICsJ CQkJCWRwY2RfbmFtZSk7Cj4gPiA+ID4gKwkJCQljb250aW51ZTsKPiA+ID4gPiArCQkJfQo+ID4g PiA+ICsKPiA+ID4gPiArCQkJZHBjZF9kdW1wKGRldl9mZCk7Cj4gPiA+ID4gKwkJCWNsb3NlKGRl dl9mZCk7Cj4gPiA+ID4gKwkJfQo+ID4gPiA+ICsJfQo+ID4gPiA+ICsKPiA+ID4gPiArCWNsb3Nl ZGlyKGRpcik7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKPiA+ID4g PiArfQo+ID4gPiA+ICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gPiA+ID4gIHsK PiA+ID4gPiAgCWNoYXIgZGV2X25hbWVbMjBdOwo+ID4gPiA+ICsJY2hhciBzeXNfbmFtZVsxNl0s IGRwY2RfbmFtZVs4XTsKPiA+ID4gPiAgCWludCByZXQsIGZkOwo+ID4gPiA+ICAKPiA+ID4gPiAg CXN0cnVjdCBkcGNkX2RhdGEgZHBjZCA9IHsKPiA+ID4gPiAtCQkuZGV2aWQgPSAwLAo+ID4gPiA+ ICsJCS5kZXZpZCA9IC0xLAo+ID4gPiA+ICAJCS5maWxlX29wID0gT19SRE9OTFksCj4gPiA+ID4g IAkJLnJ3Lm9mZnNldCA9IDB4MCwKPiA+ID4gPiAgCQkucncuY291bnQgPSAxLAo+ID4gPiA+IEBA IC0yOTcsNyArMzc1LDE2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiA+ID4g PiAgCWlmIChyZXQgIT0gRVhJVF9TVUNDRVNTKQo+ID4gPiA+ICAJCXJldHVybiByZXQ7Cj4gPiA+ ID4gIAo+ID4gPiA+ICsJaWYgKGRwY2QuZGV2aWQgPCAwKSB7Cj4gPiA+ID4gKwkJaWYgKGRwY2Qu Y21kID09IERVTVApCj4gPiA+ID4gKwkJCXJldHVybiBkcGNkX2R1bXBfYWxsKCk7Cj4gPiA+ID4g Kwo+ID4gPiA+ICsJCWRwY2QuZGV2aWQgPSAwOwo+ID4gPiA+ICsJfQo+ID4gPiA+ICsKPiA+ID4g PiAgCXNucHJpbnRmKGRldl9uYW1lLCBzdHJsZW4oYXV4X2RldikgKyA0LCAiJXMlZCIsIGF1eF9k ZXYsIGRwY2QuZGV2aWQpOwo+ID4gPiAKPiA+ID4gVGhhdCdzIG5vdCBwYXJ0IG9mIHRoaXMgcGF0 Y2gsIGJ1dCB3aGF0IG9uIGVhcnRoIGRvZXMgc3RybGVuKGF1eF9kZXYpCj4gPiA+IGhhdmUgdG8g ZG8gd2l0aCBob3cgbXVjaCBmaXRzIGludG8gZGV2X25hbWU/IT8KPiA+ID4gCj4gPiBZZXMuIFdp bGwgZml4IGl0Lgo+ID4gPiA+ICsJc25wcmludGYoc3lzX25hbWUsIDE2LCAiZHJtX2RwX2F1eCVk IiwgZHBjZC5kZXZpZCk7Cj4gPiA+IAo+ID4gPiBzaXplb2YuCj4gPiA+Cj4gPiBSaWdodCAKPiA+ ID4gPiArCj4gPiA+IAo+ID4gPiBTdXBlcmZsdW91cyBuZXdsaW5lLgo+ID4gPiAKPiA+IE9rCj4g PiA+ID4gIAo+ID4gPiA+ICAJZmQgPSBvcGVuKGRldl9uYW1lLCBkcGNkLmZpbGVfb3ApOwo+ID4g PiA+ICAJaWYgKGZkIDwgMCkgewo+ID4gPiA+IEBAIC0zMDcsNiArMzk0LDkgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ID4gPiA+ICAJCXJldHVybiBlcnJubzsKPiA+ID4gPiAg CX0KPiA+ID4gPiAgCj4gPiA+ID4gKwlwcmludGYoIlxuIik7Cj4gPiA+ID4gKwljb25uZWN0b3Jf bmFtZShzeXNfbmFtZSwgZHBjZF9uYW1lKTsKPiA+ID4gPiArCj4gPiA+IAo+ID4gPiBXaHkgaXMg dGhlIG91dHB1dCBkaWZmZXJlbnQgZm9yIG9uZSB2cy4gYWxsIGRldmljZXMgZHVtcGluZz8gRHVt cGluZyBvbmUKPiA+ID4gc3BlY2lmaWVkIGRldmljZSBzaG91bGQgbG9vayBleGFjdGx5IHRoZSBz YW1lIGFzIGR1bXBpbmcgYWxsIGRldmljZXMKPiA+ID4gd2hlbiB0aGVyZSdzIGp1c3Qgb25lIGF2 YWlsYWJsZSBkZXZpY2UuIE1heWJlIHRoaXMgc2hvdWxkbid0IGJlCj4gPiA+IGR1cGxpY2F0ZWQu IE1heWJlIHRoZSBkdW1wIHBhdGggc2hvdWxkbid0IGJlIGluICphbnkqIHdheSBkaWZmZXJlbnQg Zm9yCj4gPiA+IG11bHRpcGxlIHZzIG9uZSBkZXZpY2UuIE1heWJlIHlvdSBjb3VsZCB3cml0ZSBh IGR1bXAgd3JhcHBlciB0aGF0IHRha2VzCj4gPiA+IHRoZSBhdXggZGV2IG5hbWUgcGF0dGVybiBh cyBpbnB1dCwgYW5kIGluIHRoZSBzcGVjaWZpZWQgY2FzZSBpdCBzaG91bGQKPiA+ID4gb25seSBt YXRjaCBvbmUuIFdvdWxkIG1ha2UgdGhlIHdob2xlIHRoaW5nIG11Y2ggbmVhdGVyLgo+IGM+ID4g Cj4gPiA+IEJSLAo+ID4gPiBKYW5pLgo+ID4gPgo+IEFub3RoZXIgdGhpbmcgaXMgdGhhdCBkcGNk X2R1bXBfYWxsKCkgaXRlcmF0ZXMgb3ZlciBhbGwgb2YgdGhlIGF2YWlsYWJsZSBkZXZpY2VzLAo+ IHdoZXJlYXMgZm9yIGEgc2luZ2xlIGRldmljZSBkdW1wLCB3ZSBzcGVjaWZ5IHRoZSBkZXZpY2Ug aWQgaXRzZWxmLgo+IAo+IEhlcmUgaXMgdGhlIGRpZmYgZm9yIHVuaWZpY2F0aW9uIG9mIHRoZSBk dW1wIHBhdGg6Cj4gCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2RwY2RfcmVnLmMgYi90b29scy9kcGNk X3JlZy5jCj4gaW5kZXggNTFjZWM4NWYuLmZhN2YwNzdhIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2Rw Y2RfcmVnLmMKPiArKysgYi90b29scy9kcGNkX3JlZy5jCj4gQEAgLTExMCw3ICsxMTAsNyBAQCBz dGF0aWMgaW5saW5lIGJvb2wgc3RydG9sX2Vycl91dGlsKGNoYXIgKmVuZHB0ciwgbG9uZyAqdmFs KQo+ICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICB9Cj4gCj4gLXN0YXRpYyB2b2lkIGNvbm5lY3Rv cl9uYW1lKGNoYXIgKmZfbmFtZSwgY2hhciAqZHBjZF9uYW1lKQo+ICtzdGF0aWMgdm9pZCBjb25u ZWN0b3JfbmFtZShjaGFyICpmX25hbWUsIGNoYXIgKmRwY2RfbmFtZSwgc2l6ZV90IHNpemUpCj4g IHsKPiAgICAgICAgIGNoYXIgc3lzZnNfcGF0aFtQQVRIX01BWF07Cj4gICAgICAgICBpbnQgc3lz ZnNfZmQsIHJldDsKPiBAQCAtMTI1LDE1ICsxMjUsMTQgQEAgc3RhdGljIHZvaWQgY29ubmVjdG9y X25hbWUoY2hhciAqZl9uYW1lLCBjaGFyICpkcGNkX25hbWUpCj4gICAgICAgICAgICAgICAgIHJl dHVybjsKPiAgICAgICAgIH0KPiAKPiAtICAgICAgIHJldCA9IHJlYWQoc3lzZnNfZmQsIGRwY2Rf bmFtZSwgc2l6ZW9mKGRwY2RfbmFtZSkgLSAxKTsKPiArICAgICAgIHJldCA9IHJlYWQoc3lzZnNf ZmQsIGRwY2RfbmFtZSwgc2l6ZSAtIDEpOwo+ICAgICAgICAgaWYgKHJldCA8IDApIHsKPiAgICAg ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgImZh aWwgdG8gcmVhZCBkcGNkIG5hbWUgZnJvbSAlc1xuXG4iLCBzeXNmc19wYXRoKTsKPiAgICAgICAg ICAgICAgICAgZ290byBjbGVhbnVwOwo+ICAgICAgICAgfQo+IAo+IC0gICAgICAgZHBjZF9uYW1l W3JldF0gPSAnXDAnOwo+IC0gICAgICAgcHJpbnRmKCIlc1xuIiwgZHBjZF9uYW1lKTsKPiArICAg ICAgIGRwY2RfbmFtZVtzaXplIC0gMV0gPSAnXDAnOwo+IAo+ICBjbGVhbnVwOgo+ICAgICAgICAg Y2xvc2Uoc3lzZnNfZmQpOwo+IEBAIC0zMTAsMTUgKzMwOSwyMSBAQCBzdGF0aWMgaW50IGRwY2Rf ZHVtcChpbnQgZmQpCj4gICAgICAgICByZXR1cm4gcmV0Owo+ICB9Cj4gCj4gLXN0YXRpYyBpbnQg ZHBjZF9kdW1wX2FsbCh2b2lkKQo+ICtzdGF0aWMgaW50IGRwY2RfZHVtcF9hbGwoaW50IGRldmlk KQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgZGlyZW50ICpkaXJlbnQ7Cj4gICAgICAgICBESVIgKmRp cjsKPiAgICAgICAgIGNoYXIgZGV2X3BhdGhbUEFUSF9NQVhdOwo+ICAgICAgICAgaW50IGRldl9m ZCwgcmV0ID0gMDsKPiAgICAgICAgIGNoYXIgZHBjZF9uYW1lWzhdOwo+ICsgICAgICAgY2hhciBk ZXZfcGF0dGVyblsxNl07Cj4gICAgICAgICBjaGFyIGRpc2NhcmQ7Cj4gCj4gKyAgICAgICBpZiAo ZGV2aWQgPCAwKQo+ICsgICAgICAgICAgICAgICBzdHJjcHkoZGV2X3BhdHRlcm4sICJkcm1fZHBf YXV4Iik7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgIHNucHJpbnRmKGRldl9wYXR0 ZXJuLCBzaXplb2YoZGV2X3BhdHRlcm4pLCAiZHJtX2RwX2F1eCVkIiwgZGV2aWQpOwo+ICsKPiAg ICAgICAgIGRpciA9IG9wZW5kaXIoIi9zeXMvY2xhc3MvZHJtX2RwX2F1eF9kZXYvIik7Cj4gICAg ICAgICBpZiAoIWRpcikgewo+ICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWwg dG8gcmVhZCAvZGV2XG4iKTsKPiBAQCAtMzI2LDcgKzMzMSw3IEBAIHN0YXRpYyBpbnQgZHBjZF9k dW1wX2FsbCh2b2lkKQo+ICAgICAgICAgfQo+IAo+ICAgICAgICAgd2hpbGUgKChkaXJlbnQgPSBy ZWFkZGlyKGRpcikpKSB7Cj4gLSAgICAgICAgICAgICAgIGlmIChzdHJuY21wKGRpcmVudC0+ZF9u YW1lLCAiZHJtX2RwX2F1eCIsIDEwKSA9PSAwKSB7Cj4gKyAgICAgICAgICAgICAgIGlmIChzdHJu Y21wKGRpcmVudC0+ZF9uYW1lLCBkZXZfcGF0dGVybiwgc3RybGVuKGRldl9wYXR0ZXJuKSkgPT0g MCkgewo+ICAgICAgICAgICAgICAgICAgICAgICAgIHNucHJpbnRmKGRldl9wYXRoLCBQQVRIX01B WCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvZGV2LyVzIiwgZGlyZW50LT5k X25hbWUpOwo+IAo+IEBAIC0zMzcsMTcgKzM0MiwxOCBAQCBzdGF0aWMgaW50IGRwY2RfZHVtcF9h bGwodm9pZCkKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICAg ICAgICAgICAgICAgICAgICAgICAgIH0KPiAKPiAtICAgICAgICAgICAgICAgICAgICAgICBwcmlu dGYoIlxuRHVtcGluZyAiKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3JfbmFt ZShkaXJlbnQtPmRfbmFtZSwgZHBjZF9uYW1lKTsKPiArICAgICAgICAgICAgICAgICAgICAgICBj b25uZWN0b3JfbmFtZShkaXJlbnQtPmRfbmFtZSwgZHBjZF9uYW1lLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkcGNkX25hbWUpKTsKPiAKPiAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBEdW1teSByZWFkIHRvIGNoZWNrIGlmIGRwY2QgaXMgYXZhaWxh YmxlICovCj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gcmVhZChkZXZfZmQsICZkaXNj YXJkLCAxKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDEpIHsKPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAocmV0IDwgMCkgewo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJpbnRmKCJEUENEICVzIHNlZW1zIG5vdCBhdmFpbGFibGUuIHNraXBwaW5n Li4uXG4iLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcGNkX25h bWUpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gICAgICAg ICAgICAgICAgICAgICAgICAgfQo+IAo+ICsgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigi XG5EdW1waW5nICVzXG4iLCBkcGNkX25hbWUpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIGRw Y2RfZHVtcChkZXZfZmQpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlKGRldl9mZCk7 Cj4gICAgICAgICAgICAgICAgIH0KPiBAQCAtMzc1LDE1ICszODEsMTQgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAgICAgICAgaWYgKHJldCAhPSBFWElUX1NVQ0NFU1MpCj4g ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gCj4gLSAgICAgICBpZiAoZHBjZC5kZXZpZCA8 IDApIHsKPiAtICAgICAgICAgICAgICAgaWYgKGRwY2QuY21kID09IERVTVApCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGRwY2RfZHVtcF9hbGwoKTsKPiAtCj4gKyAgICAgICBpZiAo ZHBjZC5jbWQgPT0gRFVNUCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIGRwY2RfZHVtcF9hbGwo ZHBjZC5kZXZpZCk7Cj4gKyAgICAgICBlbHNlIGlmIChkcGNkLmRldmlkIDwgMCkKPiAgICAgICAg ICAgICAgICAgZHBjZC5kZXZpZCA9IDA7Cj4gLSAgICAgICB9Cj4gCj4gLSAgICAgICBzbnByaW50 ZihkZXZfbmFtZSwgc3RybGVuKGF1eF9kZXYpICsgNCwgIiVzJWQiLCBhdXhfZGV2LCBkcGNkLmRl dmlkKTsKPiAtICAgICAgIHNucHJpbnRmKHN5c19uYW1lLCAxNiwgImRybV9kcF9hdXglZCIsIGRw Y2QuZGV2aWQpOwo+ICsKPiArICAgICAgIHNucHJpbnRmKGRldl9uYW1lLCBzaXplb2YoZGV2X25h bWUpLCAiJXMlZCIsIGF1eF9kZXYsIGRwY2QuZGV2aWQpOwo+ICsgICAgICAgc25wcmludGYoc3lz X25hbWUsIHNpemVvZihzeXNfbmFtZSksICJkcm1fZHBfYXV4JWQiLCBkcGNkLmRldmlkKTsKPiAK PiAKPiAgICAgICAgIGZkID0gb3BlbihkZXZfbmFtZSwgZHBjZC5maWxlX29wKTsKPiBAQCAtMzk0 LDggKzM5OSw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgICAgICAgICAg ICAgICAgcmV0dXJuIGVycm5vOwo+ICAgICAgICAgfQo+IAo+IC0gICAgICAgcHJpbnRmKCJcbiIp Owo+IC0gICAgICAgY29ubmVjdG9yX25hbWUoc3lzX25hbWUsIGRwY2RfbmFtZSk7Cj4gKyAgICAg ICBjb25uZWN0b3JfbmFtZShzeXNfbmFtZSwgZHBjZF9uYW1lLCBzaXplb2YoZHBjZF9uYW1lKSk7 Cj4gKyAgICAgICBwcmludGYoIlxuJXNcbiIsIGRwY2RfbmFtZSk7Cj4gCj4gICAgICAgICBzd2l0 Y2ggKGRwY2QuY21kKSB7Cj4gICAgICAgICBjYXNlIFJFQUQ6Cj4gQEAgLTQwNCw5ICs0MDksOCBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICAgICAgICBjYXNlIFdSSVRFOgo+ ICAgICAgICAgICAgICAgICByZXQgPSBkcGNkX3dyaXRlKGZkLCBkcGNkLnJ3Lm9mZnNldCwgZHBj ZC52YWwpOwo+ICAgICAgICAgICAgICAgICBicmVhazsKPiAtICAgICAgIGNhc2UgRFVNUDoKPiAg ICAgICAgIGRlZmF1bHQ6Cj4gLSAgICAgICAgICAgICAgIHJldCA9IGRwY2RfZHVtcChmZCk7Cj4g KyAgICAgICAgICAgICAgIC8qIE5vLW9wIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5ICovCj4g ICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgfQo+IAo+IAo+IFRoYW5rcywKPiBUYXJ1 bgo+ID4gTXkgdGhvdWdodCB3YXMgdGhhdCBhdCB0aGlzIHBvaW50LCBpdCB3b250IGJlIGEgZHVt cCBhbnltb3JlLgo+ID4gSSBtZWFudCB0aGlzIHNwZWNpZmljYWxseSBmb3IgcmVhZHMvd3JpdGVz IG9mIGJ5dGUocyksIHRvIGEgc3BlY2lmaWMgZGV2aWNlLgo+ID4gVGhhdCdzIHdoeSBJIGNoYW5n ZWQgdGhlIGNvbm5lY3Rvcl9uYW1lKCkgdG8gaW5jbHVkZSBwcmludGluZyB0aGUgZHBjZF9uYW1l IAo+ID4gKGJ1dCB0aGF0J3MganVzdCBub3QgcmlnaHQpLiBCdXQsIHllYSwgdGhlIGlkZWEgd2Fz IHRvIG1ha2UgdGhpcyBsb29rIGRpZmZlcmVudAo+ID4gdGhhbiBhIHJlZ3VsYXIgZHVtcCBvZiBh bGwgcmVnaXN0ZXJzLCBiL2MgaGVyZSB3ZSBqdXN0IHdhbnQgdG8gcHJpbnQgdGhlIGNvbm5lY3Rv cgo+ID4gbmFtZSBmb3IgdGhlIGRldmljZSB3ZSBhcmUgbG9va2luZyBhdC4KPiA+IAo+ID4gVGhh bmtzIGZvciB0aGUgcmV2aWV3IEphbmkuCj4gPiAKPiA+IC0gVGFydW4KPiA+ID4gPiAgCXN3aXRj aCAoZHBjZC5jbWQpIHsKPiA+ID4gPiAgCWNhc2UgUkVBRDoKPiA+ID4gPiAgCQlyZXQgPSBkcGNk X3JlYWQoZmQsIGRwY2Qucncub2Zmc2V0LCBkcGNkLnJ3LmNvdW50KTsKPiA+ID4gCj4gPiA+IC0t IAo+ID4gPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBpZ3QtZGV2 IG1haWxpbmcgbGlzdAo+IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0 CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=