From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 10/11] drm/i915: Split out the PCI driver interface to i915_pci.c Date: Mon, 30 May 2016 09:36:36 +0300 Message-ID: <1464590196.4825.2.camel@linux.intel.com> References: <1464357644-16775-1-git-send-email-chris@chris-wilson.co.uk> <1464357644-16775-11-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 38C8A6E630 for ; Mon, 30 May 2016 06:36:40 +0000 (UTC) In-Reply-To: <1464357644-16775-11-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gcGUsIDIwMTYtMDUtMjcgYXQgMTU6MDAgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBU byByZWNsYWltIGEgYml0IG9mIHNwYWNlIGZyb20gaTkxNV9kcnYuYywgd2UgY2FuIG1vdmUgdGhl IHJvdXRpbmVzIHRoYXQKPiBqdXN0IGhvb2sgdXMgaW50byB0aGUgUENJIGRldmljZSB0cmVlIGlu dG8gaTkxNV9wY2kuYwo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgoKQXNzdW1pbmcgYnVsayBtb3ZlICsgYWRkaXRpb24gb2YgYSBmZXcg ZXh0ZXJuIGtleXdvcmRzOwoKUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxh aHRpbmVuQGxpbnV4LmludGVsLmNvbT4KCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZcKgwqDC oHzCoMKgwqAxICsKPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgfCA0NTAgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMgfCA0NjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+IMKgMyBmaWxlcyBjaGFuZ2VkLCA0NzMgaW5zZXJ0aW9ucygrKSwgNDQxIGRlbGV0aW9u cygtKQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNp LmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IGluZGV4IDJlYTdjMjQ1OTIzZS4uN2FlY2QzMDk2 MDRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBAQCAtMTAsNiArMTAsNyBAQCBzdWJkaXIt Y2NmbGFncy0kKENPTkZJR19EUk1fSTkxNV9XRVJST1IpIDo9IC1XZXJyb3IKPiDCoGk5MTUteSA6 PSBpOTE1X2Rydi5vIFwKPiDCoAnCoMKgaTkxNV9pcnEubyBcCj4gwqAJwqDCoGk5MTVfcGFyYW1z Lm8gXAo+ICsJwqDCoGk5MTVfcGNpLm8gXAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpOTE1X3N1 c3BlbmQubyBcCj4gwqAJwqDCoGk5MTVfc3lzZnMubyBcCj4gwqAJwqDCoGludGVsX2Nzci5vIFwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCBlMjBmNjNhYzczZDMuLjc5YjY4MzRiYzZi MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0yOCw3ICsyOCw2IEBACj4gwqAg Ki8KPiDCoAo+IMKgI2luY2x1ZGUgCj4gLSNpbmNsdWRlIAo+IMKgI2luY2x1ZGUgCj4gwqAjaW5j bHVkZSAKPiDCoCNpbmNsdWRlIAo+IEBAIC01NCwzODYgKzUzLDYgQEAKPiDCoAo+IMKgc3RhdGlj IHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlcjsKPiDCoAo+IC0jZGVmaW5lIEdFTl9ERUZBVUxUX1BJ UEVPRkZTRVRTIFwKPiAtCS5waXBlX29mZnNldHMgPSB7IFBJUEVfQV9PRkZTRVQsIFBJUEVfQl9P RkZTRVQsIFwKPiAtCQkJwqDCoFBJUEVfQ19PRkZTRVQsIFBJUEVfRURQX09GRlNFVCB9LCBcCj4g LQkudHJhbnNfb2Zmc2V0cyA9IHsgVFJBTlNDT0RFUl9BX09GRlNFVCwgVFJBTlNDT0RFUl9CX09G RlNFVCwgXAo+IC0JCQnCoMKgwqBUUkFOU0NPREVSX0NfT0ZGU0VULCBUUkFOU0NPREVSX0VEUF9P RkZTRVQgfSwgXAo+IC0JLnBhbGV0dGVfb2Zmc2V0cyA9IHsgUEFMRVRURV9BX09GRlNFVCwgUEFM RVRURV9CX09GRlNFVCB9Cj4gLQo+IC0jZGVmaW5lIEdFTl9DSFZfUElQRU9GRlNFVFMgXAo+IC0J LnBpcGVfb2Zmc2V0cyA9IHsgUElQRV9BX09GRlNFVCwgUElQRV9CX09GRlNFVCwgXAo+IC0JCQnC oMKgQ0hWX1BJUEVfQ19PRkZTRVQgfSwgXAo+IC0JLnRyYW5zX29mZnNldHMgPSB7IFRSQU5TQ09E RVJfQV9PRkZTRVQsIFRSQU5TQ09ERVJfQl9PRkZTRVQsIFwKPiAtCQkJwqDCoMKgQ0hWX1RSQU5T Q09ERVJfQ19PRkZTRVQsIH0sIFwKPiAtCS5wYWxldHRlX29mZnNldHMgPSB7IFBBTEVUVEVfQV9P RkZTRVQsIFBBTEVUVEVfQl9PRkZTRVQsIFwKPiAtCQkJwqDCoMKgwqDCoENIVl9QQUxFVFRFX0Nf T0ZGU0VUIH0KPiAtCj4gLSNkZWZpbmUgQ1VSU09SX09GRlNFVFMgXAo+IC0JLmN1cnNvcl9vZmZz ZXRzID0geyBDVVJTT1JfQV9PRkZTRVQsIENVUlNPUl9CX09GRlNFVCwgQ0hWX0NVUlNPUl9DX09G RlNFVCB9Cj4gLQo+IC0jZGVmaW5lIElWQl9DVVJTT1JfT0ZGU0VUUyBcCj4gLQkuY3Vyc29yX29m ZnNldHMgPSB7IENVUlNPUl9BX09GRlNFVCwgSVZCX0NVUlNPUl9CX09GRlNFVCwgSVZCX0NVUlNP Ul9DX09GRlNFVCB9Cj4gLQo+IC0jZGVmaW5lIEJEV19DT0xPUlMgXAo+IC0JLmNvbG9yID0geyAu ZGVnYW1tYV9sdXRfc2l6ZSA9IDUxMiwgLmdhbW1hX2x1dF9zaXplID0gNTEyIH0KPiAtI2RlZmlu ZSBDSFZfQ09MT1JTIFwKPiAtCS5jb2xvciA9IHsgLmRlZ2FtbWFfbHV0X3NpemUgPSA2NSwgLmdh bW1hX2x1dF9zaXplID0gMjU3IH0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2 aWNlX2luZm8gaW50ZWxfaTgzMF9pbmZvID0gewo+IC0JLmdlbiA9IDIsIC5pc19tb2JpbGUgPSAx LCAuY3Vyc29yX25lZWRzX3BoeXNpY2FsID0gMSwgLm51bV9waXBlcyA9IDIsCj4gLQkuaGFzX292 ZXJsYXkgPSAxLCAub3ZlcmxheV9uZWVkc19waHlzaWNhbCA9IDEsCj4gLQkucmluZ19tYXNrID0g UkVOREVSX1JJTkcsCj4gLQlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiAtCUNVUlNPUl9PRkZT RVRTLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF84NDVnX2luZm8gPSB7Cj4gLQkuZ2VuID0gMiwgLm51bV9waXBlcyA9IDEsCj4gLQkuaGFz X292ZXJsYXkgPSAxLCAub3ZlcmxheV9uZWVkc19waHlzaWNhbCA9IDEsCj4gLQkucmluZ19tYXNr ID0gUkVOREVSX1JJTkcsCj4gLQlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiAtCUNVUlNPUl9P RkZTRVRTLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5m byBpbnRlbF9pODV4X2luZm8gPSB7Cj4gLQkuZ2VuID0gMiwgLmlzX2k4NXggPSAxLCAuaXNfbW9i aWxlID0gMSwgLm51bV9waXBlcyA9IDIsCj4gLQkuY3Vyc29yX25lZWRzX3BoeXNpY2FsID0gMSwK PiAtCS5oYXNfb3ZlcmxheSA9IDEsIC5vdmVybGF5X25lZWRzX3BoeXNpY2FsID0gMSwKPiAtCS5o YXNfZmJjID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywKPiAtCUdFTl9ERUZBVUxU X1BJUEVPRkZTRVRTLAo+IC0JQ1VSU09SX09GRlNFVFMsCj4gLX07Cj4gLQo+IC1zdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k4NjVnX2luZm8gPSB7Cj4gLQkuZ2Vu ID0gMiwgLm51bV9waXBlcyA9IDEsCj4gLQkuaGFzX292ZXJsYXkgPSAxLCAub3ZlcmxheV9uZWVk c19waHlzaWNhbCA9IDEsCj4gLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcsCj4gLQlHRU5fREVG QVVMVF9QSVBFT0ZGU0VUUywKPiAtCUNVUlNPUl9PRkZTRVRTLAo+IC19Owo+IC0KPiAtc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pOTE1Z19pbmZvID0gewo+IC0J LmdlbiA9IDMsIC5pc19pOTE1ZyA9IDEsIC5jdXJzb3JfbmVlZHNfcGh5c2ljYWwgPSAxLCAubnVt X3BpcGVzID0gMiwKPiAtCS5oYXNfb3ZlcmxheSA9IDEsIC5vdmVybGF5X25lZWRzX3BoeXNpY2Fs ID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywKPiAtCUdFTl9ERUZBVUxUX1BJUEVP RkZTRVRTLAo+IC0JQ1VSU09SX09GRlNFVFMsCj4gLX07Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTkxNWdtX2luZm8gPSB7Cj4gLQkuZ2VuID0gMywgLmlz X21vYmlsZSA9IDEsIC5udW1fcGlwZXMgPSAyLAo+IC0JLmN1cnNvcl9uZWVkc19waHlzaWNhbCA9 IDEsCj4gLQkuaGFzX292ZXJsYXkgPSAxLCAub3ZlcmxheV9uZWVkc19waHlzaWNhbCA9IDEsCj4g LQkuc3VwcG9ydHNfdHYgPSAxLAo+IC0JLmhhc19mYmMgPSAxLAo+IC0JLnJpbmdfbWFzayA9IFJF TkRFUl9SSU5HLAo+IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VU UywKPiAtfTsKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9p OTQ1Z19pbmZvID0gewo+IC0JLmdlbiA9IDMsIC5oYXNfaG90cGx1ZyA9IDEsIC5jdXJzb3JfbmVl ZHNfcGh5c2ljYWwgPSAxLCAubnVtX3BpcGVzID0gMiwKPiAtCS5oYXNfb3ZlcmxheSA9IDEsIC5v dmVybGF5X25lZWRzX3BoeXNpY2FsID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywK PiAtCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+IC0JQ1VSU09SX09GRlNFVFMsCj4gLX07Cj4g LXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTk0NWdtX2luZm8g PSB7Cj4gLQkuZ2VuID0gMywgLmlzX2k5NDVnbSA9IDEsIC5pc19tb2JpbGUgPSAxLCAubnVtX3Bp cGVzID0gMiwKPiAtCS5oYXNfaG90cGx1ZyA9IDEsIC5jdXJzb3JfbmVlZHNfcGh5c2ljYWwgPSAx LAo+IC0JLmhhc19vdmVybGF5ID0gMSwgLm92ZXJsYXlfbmVlZHNfcGh5c2ljYWwgPSAxLAo+IC0J LnN1cHBvcnRzX3R2ID0gMSwKPiAtCS5oYXNfZmJjID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5E RVJfUklORywKPiAtCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+IC0JQ1VSU09SX09GRlNFVFMs Cj4gLX07Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVs X2k5NjVnX2luZm8gPSB7Cj4gLQkuZ2VuID0gNCwgLmlzX2Jyb2Fkd2F0ZXIgPSAxLCAubnVtX3Bp cGVzID0gMiwKPiAtCS5oYXNfaG90cGx1ZyA9IDEsCj4gLQkuaGFzX292ZXJsYXkgPSAxLAo+IC0J LnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HLAo+IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4g LQlDVVJTT1JfT0ZGU0VUUywKPiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf ZGV2aWNlX2luZm8gaW50ZWxfaTk2NWdtX2luZm8gPSB7Cj4gLQkuZ2VuID0gNCwgLmlzX2NyZXN0 bGluZSA9IDEsIC5udW1fcGlwZXMgPSAyLAo+IC0JLmlzX21vYmlsZSA9IDEsIC5oYXNfZmJjID0g MSwgLmhhc19ob3RwbHVnID0gMSwKPiAtCS5oYXNfb3ZlcmxheSA9IDEsCj4gLQkuc3VwcG9ydHNf dHYgPSAxLAo+IC0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HLAo+IC0JR0VOX0RFRkFVTFRfUElQ RU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VUUywKPiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfZzMzX2luZm8gPSB7Cj4gLQkuZ2VuID0gMywg LmlzX2czMyA9IDEsIC5udW1fcGlwZXMgPSAyLAo+IC0JLm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNf aG90cGx1ZyA9IDEsCj4gLQkuaGFzX292ZXJsYXkgPSAxLAo+IC0JLnJpbmdfbWFzayA9IFJFTkRF Ul9SSU5HLAo+IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VUUywK PiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf ZzQ1X2luZm8gPSB7Cj4gLQkuZ2VuID0gNCwgLmlzX2c0eCA9IDEsIC5uZWVkX2dmeF9od3MgPSAx LCAubnVtX3BpcGVzID0gMiwKPiAtCS5oYXNfcGlwZV9jeHNyID0gMSwgLmhhc19ob3RwbHVnID0g MSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HLAo+IC0JR0VOX0RFRkFV TFRfUElQRU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VUUywKPiAtfTsKPiAtCj4gLXN0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfZ200NV9pbmZvID0gewo+IC0JLmdl biA9IDQsIC5pc19nNHggPSAxLCAubnVtX3BpcGVzID0gMiwKPiAtCS5pc19tb2JpbGUgPSAxLCAu bmVlZF9nZnhfaHdzID0gMSwgLmhhc19mYmMgPSAxLAo+IC0JLmhhc19waXBlX2N4c3IgPSAxLCAu aGFzX2hvdHBsdWcgPSAxLAo+IC0JLnN1cHBvcnRzX3R2ID0gMSwKPiAtCS5yaW5nX21hc2sgPSBS RU5ERVJfUklORyB8IEJTRF9SSU5HLAo+IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gLQlD VVJTT1JfT0ZGU0VUUywKPiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2 aWNlX2luZm8gaW50ZWxfcGluZXZpZXdfaW5mbyA9IHsKPiAtCS5nZW4gPSAzLCAuaXNfZzMzID0g MSwgLmlzX3BpbmV2aWV3ID0gMSwgLmlzX21vYmlsZSA9IDEsIC5udW1fcGlwZXMgPSAyLAo+IC0J Lm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gLQkuaGFzX292ZXJsYXkgPSAx LAo+IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VUUywKPiAtfTsK PiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXJvbmxh a2VfZF9pbmZvID0gewo+IC0JLmdlbiA9IDUsIC5udW1fcGlwZXMgPSAyLAo+IC0JLm5lZWRfZ2Z4 X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcg fCBCU0RfUklORywKPiAtCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+IC0JQ1VSU09SX09GRlNF VFMsCj4gLX07Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGlu dGVsX2lyb25sYWtlX21faW5mbyA9IHsKPiAtCS5nZW4gPSA1LCAuaXNfbW9iaWxlID0gMSwgLm51 bV9waXBlcyA9IDIsCj4gLQkubmVlZF9nZnhfaHdzID0gMSwgLmhhc19ob3RwbHVnID0gMSwKPiAt CS5oYXNfZmJjID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HLAo+ IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VUUywKPiAtfTsKPiAt Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2FuZHlicmlk Z2VfZF9pbmZvID0gewo+IC0JLmdlbiA9IDYsIC5udW1fcGlwZXMgPSAyLAo+IC0JLm5lZWRfZ2Z4 X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gLQkuaGFzX2ZiYyA9IDEsCj4gLQkucmluZ19t YXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HLAo+IC0JLmhhc19sbGMgPSAx LAo+IC0JR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gLQlDVVJTT1JfT0ZGU0VUUywKPiAtfTsK PiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2FuZHli cmlkZ2VfbV9pbmZvID0gewo+IC0JLmdlbiA9IDYsIC5pc19tb2JpbGUgPSAxLCAubnVtX3BpcGVz ID0gMiwKPiAtCS5uZWVkX2dmeF9od3MgPSAxLCAuaGFzX2hvdHBsdWcgPSAxLAo+IC0JLmhhc19m YmMgPSAxLAo+IC0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklO RywKPiAtCS5oYXNfbGxjID0gMSwKPiAtCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+IC0JQ1VS U09SX09GRlNFVFMsCj4gLX07Cj4gLQo+IC0jZGVmaW5lIEdFTjdfRkVBVFVSRVPCoMKgXAo+IC0J LmdlbiA9IDcsIC5udW1fcGlwZXMgPSAzLCBcCj4gLQkubmVlZF9nZnhfaHdzID0gMSwgLmhhc19o b3RwbHVnID0gMSwgXAo+IC0JLmhhc19mYmMgPSAxLCBcCj4gLQkucmluZ19tYXNrID0gUkVOREVS X1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HLCBcCj4gLQkuaGFzX2xsYyA9IDEsIFwKPiAtCUdF Tl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCj4gLQlJVkJfQ1VSU09SX09GRlNFVFMKPiAtCj4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXZ5YnJpZGdlX2RfaW5m byA9IHsKPiAtCUdFTjdfRkVBVFVSRVMsCj4gLQkuaXNfaXZ5YnJpZGdlID0gMSwKPiAtfTsKPiAt Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXZ5YnJpZGdl X21faW5mbyA9IHsKPiAtCUdFTjdfRkVBVFVSRVMsCj4gLQkuaXNfaXZ5YnJpZGdlID0gMSwKPiAt CS5pc19tb2JpbGUgPSAxLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k ZXZpY2VfaW5mbyBpbnRlbF9pdnlicmlkZ2VfcV9pbmZvID0gewo+IC0JR0VON19GRUFUVVJFUywK PiAtCS5pc19pdnlicmlkZ2UgPSAxLAo+IC0JLm51bV9waXBlcyA9IDAsIC8qIGxlZ2FsLCBsYXN0 IG9uZSB3aW5zICovCj4gLX07Cj4gLQo+IC0jZGVmaW5lIFZMVl9GRUFUVVJFU8KgwqBcCj4gLQku Z2VuID0gNywgLm51bV9waXBlcyA9IDIsIFwKPiAtCS5uZWVkX2dmeF9od3MgPSAxLCAuaGFzX2hv dHBsdWcgPSAxLCBcCj4gLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJM VF9SSU5HLCBcCj4gLQkuZGlzcGxheV9tbWlvX29mZnNldCA9IFZMVl9ESVNQTEFZX0JBU0UsIFwK PiAtCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCj4gLQlDVVJTT1JfT0ZGU0VUUwo+IC0KPiAt c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF92YWxsZXl2aWV3X21f aW5mbyA9IHsKPiAtCVZMVl9GRUFUVVJFUywKPiAtCS5pc192YWxsZXl2aWV3ID0gMSwKPiAtCS5p c19tb2JpbGUgPSAxLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZp Y2VfaW5mbyBpbnRlbF92YWxsZXl2aWV3X2RfaW5mbyA9IHsKPiAtCVZMVl9GRUFUVVJFUywKPiAt CS5pc192YWxsZXl2aWV3ID0gMSwKPiAtfTsKPiAtCj4gLSNkZWZpbmUgSFNXX0ZFQVRVUkVTwqDC oFwKPiAtCUdFTjdfRkVBVFVSRVMsIFwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJT RF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLCBcCj4gLQkuaGFzX2RkaSA9IDEsIFwKPiAt CS5oYXNfZnBnYV9kYmcgPSAxCj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvIGludGVsX2hhc3dlbGxfZF9pbmZvID0gewo+IC0JSFNXX0ZFQVRVUkVTLAo+IC0JLmlz X2hhc3dlbGwgPSAxLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZp Y2VfaW5mbyBpbnRlbF9oYXN3ZWxsX21faW5mbyA9IHsKPiAtCUhTV19GRUFUVVJFUywKPiAtCS5p c19oYXN3ZWxsID0gMSwKPiAtCS5pc19tb2JpbGUgPSAxLAo+IC19Owo+IC0KPiAtI2RlZmluZSBC RFdfRkVBVFVSRVMgXAo+IC0JSFNXX0ZFQVRVUkVTLCBcCj4gLQlCRFdfQ09MT1JTCj4gLQo+IC1z dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2Jyb2Fkd2VsbF9kX2lu Zm8gPSB7Cj4gLQlCRFdfRkVBVFVSRVMsCj4gLQkuZ2VuID0gOCwKPiAtCS5pc19icm9hZHdlbGwg PSAxLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF9icm9hZHdlbGxfbV9pbmZvID0gewo+IC0JQkRXX0ZFQVRVUkVTLAo+IC0JLmdlbiA9IDgs IC5pc19tb2JpbGUgPSAxLAo+IC0JLmlzX2Jyb2Fkd2VsbCA9IDEsCj4gLX07Cj4gLQo+IC1zdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2Jyb2Fkd2VsbF9ndDNkX2lu Zm8gPSB7Cj4gLQlCRFdfRkVBVFVSRVMsCj4gLQkuZ2VuID0gOCwKPiAtCS5pc19icm9hZHdlbGwg PSAxLAo+IC0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8 IFZFQk9YX1JJTkcgfCBCU0QyX1JJTkcsCj4gLX07Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2RldmljZV9pbmZvIGludGVsX2Jyb2Fkd2VsbF9ndDNtX2luZm8gPSB7Cj4gLQlCRFdf RkVBVFVSRVMsCj4gLQkuZ2VuID0gOCwgLmlzX21vYmlsZSA9IDEsCj4gLQkuaXNfYnJvYWR3ZWxs ID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcg fCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9jaGVycnl2aWV3X2luZm8gPSB7Cj4gLQkuZ2VuID0g OCwgLm51bV9waXBlcyA9IDMsCj4gLQkubmVlZF9nZnhfaHdzID0gMSwgLmhhc19ob3RwbHVnID0g MSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBW RUJPWF9SSU5HLAo+IC0JLmlzX2NoZXJyeXZpZXcgPSAxLAo+IC0JLmRpc3BsYXlfbW1pb19vZmZz ZXQgPSBWTFZfRElTUExBWV9CQVNFLAo+IC0JR0VOX0NIVl9QSVBFT0ZGU0VUUywKPiAtCUNVUlNP Ul9PRkZTRVRTLAo+IC0JQ0hWX0NPTE9SUywKPiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2t5bGFrZV9pbmZvID0gewo+IC0JQkRXX0ZFQVRV UkVTLAo+IC0JLmlzX3NreWxha2UgPSAxLAo+IC0JLmdlbiA9IDksCj4gLX07Cj4gLQo+IC1zdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NreWxha2VfZ3QzX2luZm8g PSB7Cj4gLQlCRFdfRkVBVFVSRVMsCj4gLQkuaXNfc2t5bGFrZSA9IDEsCj4gLQkuZ2VuID0gOSwK PiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJP WF9SSU5HIHwgQlNEMl9SSU5HLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9kZXZpY2VfaW5mbyBpbnRlbF9icm94dG9uX2luZm8gPSB7Cj4gLQkuaXNfcHJlbGltaW5hcnkg PSAxLAo+IC0JLmlzX2Jyb3h0b24gPSAxLAo+IC0JLmdlbiA9IDksCj4gLQkubmVlZF9nZnhfaHdz ID0gMSwgLmhhc19ob3RwbHVnID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJT RF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLAo+IC0JLm51bV9waXBlcyA9IDMsCj4gLQku aGFzX2RkaSA9IDEsCj4gLQkuaGFzX2ZwZ2FfZGJnID0gMSwKPiAtCS5oYXNfZmJjID0gMSwKPiAt CUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+IC0JSVZCX0NVUlNPUl9PRkZTRVRTLAo+IC0JQkRX X0NPTE9SUywKPiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2lu Zm8gaW50ZWxfa2FieWxha2VfaW5mbyA9IHsKPiAtCUJEV19GRUFUVVJFUywKPiAtCS5pc19rYWJ5 bGFrZSA9IDEsCj4gLQkuZ2VuID0gOSwKPiAtfTsKPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfa2FieWxha2VfZ3QzX2luZm8gPSB7Cj4gLQlCRFdfRkVB VFVSRVMsCj4gLQkuaXNfa2FieWxha2UgPSAxLAo+IC0JLmdlbiA9IDksCj4gLQkucmluZ19tYXNr ID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRDJf UklORywKPiAtfTsKPiAtCj4gLS8qCj4gLSAqIE1ha2Ugc3VyZSBhbnkgZGV2aWNlIG1hdGNoZXMg aGVyZSBhcmUgZnJvbSBtb3N0IHNwZWNpZmljIHRvIG1vc3QKPiAtICogZ2VuZXJhbC7CoMKgRm9y IGV4YW1wbGUsIHNpbmNlIHRoZSBRdWFudGEgbWF0Y2ggaXMgYmFzZWQgb24gdGhlIHN1YnN5c3Rl bQo+IC0gKiBhbmQgc3VidmVuZG9yIElEcywgd2UgbmVlZCBpdCB0byBjb21lIGJlZm9yZSB0aGUg bW9yZSBnZW5lcmFsIElWQgo+IC0gKiBQQ0kgSUQgbWF0Y2hlcywgb3RoZXJ3aXNlIHdlJ2xsIHVz ZSB0aGUgd3JvbmcgaW5mbyBzdHJ1Y3QgYWJvdmUuCj4gLSAqLwo+IC1zdGF0aWMgY29uc3Qgc3Ry dWN0IHBjaV9kZXZpY2VfaWQgcGNpaWRsaXN0W10gPSB7Cj4gLQlJTlRFTF9JODMwX0lEUygmaW50 ZWxfaTgzMF9pbmZvKSwKPiAtCUlOVEVMX0k4NDVHX0lEUygmaW50ZWxfODQ1Z19pbmZvKSwKPiAt CUlOVEVMX0k4NVhfSURTKCZpbnRlbF9pODV4X2luZm8pLAo+IC0JSU5URUxfSTg2NUdfSURTKCZp bnRlbF9pODY1Z19pbmZvKSwKPiAtCUlOVEVMX0k5MTVHX0lEUygmaW50ZWxfaTkxNWdfaW5mbyks Cj4gLQlJTlRFTF9JOTE1R01fSURTKCZpbnRlbF9pOTE1Z21faW5mbyksCj4gLQlJTlRFTF9JOTQ1 R19JRFMoJmludGVsX2k5NDVnX2luZm8pLAo+IC0JSU5URUxfSTk0NUdNX0lEUygmaW50ZWxfaTk0 NWdtX2luZm8pLAo+IC0JSU5URUxfSTk2NUdfSURTKCZpbnRlbF9pOTY1Z19pbmZvKSwKPiAtCUlO VEVMX0czM19JRFMoJmludGVsX2czM19pbmZvKSwKPiAtCUlOVEVMX0k5NjVHTV9JRFMoJmludGVs X2k5NjVnbV9pbmZvKSwKPiAtCUlOVEVMX0dNNDVfSURTKCZpbnRlbF9nbTQ1X2luZm8pLAo+IC0J SU5URUxfRzQ1X0lEUygmaW50ZWxfZzQ1X2luZm8pLAo+IC0JSU5URUxfUElORVZJRVdfSURTKCZp bnRlbF9waW5ldmlld19pbmZvKSwKPiAtCUlOVEVMX0lST05MQUtFX0RfSURTKCZpbnRlbF9pcm9u bGFrZV9kX2luZm8pLAo+IC0JSU5URUxfSVJPTkxBS0VfTV9JRFMoJmludGVsX2lyb25sYWtlX21f aW5mbyksCj4gLQlJTlRFTF9TTkJfRF9JRFMoJmludGVsX3NhbmR5YnJpZGdlX2RfaW5mbyksCj4g LQlJTlRFTF9TTkJfTV9JRFMoJmludGVsX3NhbmR5YnJpZGdlX21faW5mbyksCj4gLQlJTlRFTF9J VkJfUV9JRFMoJmludGVsX2l2eWJyaWRnZV9xX2luZm8pLCAvKiBtdXN0IGJlIGZpcnN0IElWQiAq Lwo+IC0JSU5URUxfSVZCX01fSURTKCZpbnRlbF9pdnlicmlkZ2VfbV9pbmZvKSwKPiAtCUlOVEVM X0lWQl9EX0lEUygmaW50ZWxfaXZ5YnJpZGdlX2RfaW5mbyksCj4gLQlJTlRFTF9IU1dfRF9JRFMo JmludGVsX2hhc3dlbGxfZF9pbmZvKSwKPiAtCUlOVEVMX0hTV19NX0lEUygmaW50ZWxfaGFzd2Vs bF9tX2luZm8pLAo+IC0JSU5URUxfVkxWX01fSURTKCZpbnRlbF92YWxsZXl2aWV3X21faW5mbyks Cj4gLQlJTlRFTF9WTFZfRF9JRFMoJmludGVsX3ZhbGxleXZpZXdfZF9pbmZvKSwKPiAtCUlOVEVM X0JEV19HVDEyTV9JRFMoJmludGVsX2Jyb2Fkd2VsbF9tX2luZm8pLAo+IC0JSU5URUxfQkRXX0dU MTJEX0lEUygmaW50ZWxfYnJvYWR3ZWxsX2RfaW5mbyksCj4gLQlJTlRFTF9CRFdfR1QzTV9JRFMo JmludGVsX2Jyb2Fkd2VsbF9ndDNtX2luZm8pLAo+IC0JSU5URUxfQkRXX0dUM0RfSURTKCZpbnRl bF9icm9hZHdlbGxfZ3QzZF9pbmZvKSwKPiAtCUlOVEVMX0NIVl9JRFMoJmludGVsX2NoZXJyeXZp ZXdfaW5mbyksCj4gLQlJTlRFTF9TS0xfR1QxX0lEUygmaW50ZWxfc2t5bGFrZV9pbmZvKSwKPiAt CUlOVEVMX1NLTF9HVDJfSURTKCZpbnRlbF9za3lsYWtlX2luZm8pLAo+IC0JSU5URUxfU0tMX0dU M19JRFMoJmludGVsX3NreWxha2VfZ3QzX2luZm8pLAo+IC0JSU5URUxfU0tMX0dUNF9JRFMoJmlu dGVsX3NreWxha2VfZ3QzX2luZm8pLAo+IC0JSU5URUxfQlhUX0lEUygmaW50ZWxfYnJveHRvbl9p bmZvKSwKPiAtCUlOVEVMX0tCTF9HVDFfSURTKCZpbnRlbF9rYWJ5bGFrZV9pbmZvKSwKPiAtCUlO VEVMX0tCTF9HVDJfSURTKCZpbnRlbF9rYWJ5bGFrZV9pbmZvKSwKPiAtCUlOVEVMX0tCTF9HVDNf SURTKCZpbnRlbF9rYWJ5bGFrZV9ndDNfaW5mbyksCj4gLQlJTlRFTF9LQkxfR1Q0X0lEUygmaW50 ZWxfa2FieWxha2VfZ3QzX2luZm8pLAo+IC0JezAsIDAsIDB9Cj4gLX07Cj4gLU1PRFVMRV9ERVZJ Q0VfVEFCTEUocGNpLCBwY2lpZGxpc3QpOwo+IC0KPiDCoHN0YXRpYyB1bnNpZ25lZCBpbnQgaTkx NV9sb2FkX2ZhaWxfY291bnQ7Cj4gwqAKPiDCoGJvb2wgX19pOTE1X2luamVjdF9sb2FkX2ZhaWx1 cmUoY29uc3QgY2hhciAqZnVuYywgaW50IGxpbmUpCj4gQEAgLTE5MzksOCArMTU1OCw3IEBAIHN0 YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IMKgICrCoMKgwqAtIGFsbG9jYXRlIGluaXRpYWwgY29uZmlnIG1lbW9yeQo+ IMKgICrCoMKgwqAtIHNldHVwIHRoZSBEUk0gZnJhbWVidWZmZXIgd2l0aCB0aGUgYWxsb2NhdGVk IG1lbW9yeQo+IMKgICovCj4gLXN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNp X2RldiAqcGRldiwKPiAtCQkJwqDCoMKgwqBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50 KQo+ICtpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3Ry dWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXY7Cj4gwqAJaW50IHJldDsKPiBAQCAtMjAyMSwxOCArMTYzOSwxNCBAQCBvdXRf ZnJlZV9wcml2Ogo+IMKgCXJldHVybiByZXQ7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGludCBpOTE1 X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArdm9pZCBpOTE1X2RyaXZl cl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaW50IHJldDsKPiDC oAo+IMKgCWludGVsX2ZiZGV2X2ZpbmkoZGV2KTsKPiDCoAo+IC0JcmV0ID0gaTkxNV9nZW1fc3Vz cGVuZChkZXYpOwo+IC0JaWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGlkbGUg aGFyZHdhcmU6ICVkXG4iLCByZXQpOwo+IC0JCXJldHVybiByZXQ7Cj4gLQl9Cj4gKwlpZiAoaTkx NV9nZW1fc3VzcGVuZChkZXYpKQo+ICsJCURSTV9FUlJPUigiZmFpbGVkIHRvIGlkbGUgaGFyZHdh cmU7IGNvbnRpbnVpbmcgdG8gdW5sb2FkIVxuIik7Cj4gwqAKPiDCoAlpbnRlbF9kaXNwbGF5X3Bv d2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0lOSVQpOwo+IMKgCj4gQEAgLTIwODAsOCAr MTY5NCw2IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gwqAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJ Tl9JTklUKTsKPiDCoAo+IMKgCWk5MTVfZHJpdmVyX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOwo+ IC0KPiAtCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX29w ZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+IEBAIC0y NTg0LDQ2ICsyMTk2LDYgQEAgZXJyb3I6Cj4gwqAJcmV0dXJuIHJldDsKPiDCoH0KPiDCoAo+IC1z dGF0aWMgaW50IGk5MTVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1 Y3QgcGNpX2RldmljZV9pZCAqZW50KQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8g KmludGVsX2luZm8gPQo+IC0JCShzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKikgZW50LT5kcml2 ZXJfZGF0YTsKPiAtCj4gLQlpZiAoSVNfUFJFTElNSU5BUllfSFcoaW50ZWxfaW5mbykgJiYgIWk5 MTUucHJlbGltaW5hcnlfaHdfc3VwcG9ydCkgewo+IC0JCURSTV9JTkZPKCJUaGlzIGhhcmR3YXJl IHJlcXVpcmVzIHByZWxpbWluYXJ5IGhhcmR3YXJlIHN1cHBvcnQuXG4iCj4gLQkJCcKgIlNlZSBD T05GSUdfRFJNX0k5MTVfUFJFTElNSU5BUllfSFdfU1VQUE9SVCwgYW5kL29yIG1vZHBhcmFtIHBy ZWxpbWluYXJ5X2h3X3N1cHBvcnRcbiIpOwo+IC0JCXJldHVybiAtRU5PREVWOwo+IC0JfQo+IC0K PiAtCS8qIE9ubHkgYmluZCB0byBmdW5jdGlvbiAwIG9mIHRoZSBkZXZpY2UuIEVhcmx5IGdlbmVy YXRpb25zCj4gLQnCoCogdXNlZCBmdW5jdGlvbiAxIGFzIGEgcGxhY2Vob2xkZXIgZm9yIG11bHRp LWhlYWQuIFRoaXMgY2F1c2VzCj4gLQnCoCogdXMgY29uZnVzaW9uIGluc3RlYWQsIGVzcGVjaWFs bHkgb24gdGhlIHN5c3RlbXMgd2hlcmUgYm90aAo+IC0JwqAqIGZ1bmN0aW9ucyBoYXZlIHRoZSBz YW1lIFBDSS1JRCEKPiAtCcKgKi8KPiAtCWlmIChQQ0lfRlVOQyhwZGV2LT5kZXZmbikpCj4gLQkJ cmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0JLyoKPiAtCcKgKiBhcHBsZS1nbXV4IGlzIG5lZWRlZCBv biBkdWFsIEdQVSBNYWNCb29rIFBybwo+IC0JwqAqIHRvIHByb2JlIHRoZSBwYW5lbCBpZiB3ZSdy ZSB0aGUgaW5hY3RpdmUgR1BVLgo+IC0JwqAqLwo+IC0JaWYgKElTX0VOQUJMRUQoQ09ORklHX1ZH QV9BUkIpICYmIElTX0VOQUJMRUQoQ09ORklHX1ZHQV9TV0lUQ0hFUk9PKSAmJgo+IC0JwqDCoMKg wqBhcHBsZV9nbXV4X3ByZXNlbnQoKSAmJiBwZGV2ICE9IHZnYV9kZWZhdWx0X2RldmljZSgpICYm Cj4gLQnCoMKgwqDCoCF2Z2Ffc3dpdGNoZXJvb19oYW5kbGVyX2ZsYWdzKCkpCj4gLQkJcmV0dXJu IC1FUFJPQkVfREVGRVI7Cj4gLQo+IC0JcmV0dXJuIGk5MTVfZHJpdmVyX2xvYWQocGRldiwgZW50 KTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQKPiAtaTkxNV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZk YXRhKHBkZXYpOwo+IC0KPiAtCWk5MTVfZHJpdmVyX3VubG9hZChkZXYpOwo+IC0JZHJtX2Rldl91 bnJlZihkZXYpOwo+IC19Cj4gLQo+IMKgc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmQoc3RydWN0 IGRldmljZSAqZGV2KQo+IMKgewo+IMKgCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2Rl dihkZXYpOwo+IEBAIC0zMjYxLDcgKzI4MzMsNyBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKPiDCoAlyZXR1cm4gcmV0Owo+IMKgfQo+IMKg Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpOTE1X3BtX29wcyA9IHsKPiArY29u c3Qgc3RydWN0IGRldl9wbV9vcHMgaTkxNV9wbV9vcHMgPSB7Cj4gwqAJLyoKPiDCoAnCoCogUzBp eCAodmlhIHN5c3RlbSBzdXNwZW5kKSBhbmQgUzMgZXZlbnQgaGFuZGxlcnMgW1BNU0dfU1VTUEVO RCwKPiDCoAnCoCogUE1TR19SRVNVTUVdCj4gQEAgLTM0MTcsMTYgKzI5ODksMTAgQEAgc3RhdGlj IHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKPiDCoAkucGF0Y2hsZXZlbCA9IERSSVZFUl9Q QVRDSExFVkVMLAo+IMKgfTsKPiDCoAo+IC1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaTkxNV9w Y2lfZHJpdmVyID0gewo+IC0JLm5hbWUgPSBEUklWRVJfTkFNRSwKPiAtCS5pZF90YWJsZSA9IHBj aWlkbGlzdCwKPiAtCS5wcm9iZSA9IGk5MTVfcGNpX3Byb2JlLAo+IC0JLnJlbW92ZSA9IGk5MTVf cGNpX3JlbW92ZSwKPiAtCS5kcml2ZXIucG0gPSAmaTkxNV9wbV9vcHMsCj4gLX07Cj4gLQo+IMKg c3RhdGljIGludCBfX2luaXQgaTkxNV9pbml0KHZvaWQpCj4gwqB7Cj4gKwlleHRlcm4gc3RydWN0 IHBjaV9kcml2ZXIgaTkxNV9wY2lfZHJpdmVyOwo+ICsKPiDCoAkvKgo+IMKgCcKgKiBFbmFibGUg S01TIGJ5IGRlZmF1bHQsIHVubGVzcyBleHBsaWNpdGx5IG92ZXJyaWRlbiBieQo+IMKgCcKgKiBl aXRoZXIgdGhlIGk5MTUubW9kZXNldCBwcmFyYW1ldGVyIG9yIGJ5IHRoZQo+IEBAIC0zNDUzLDYg KzMwMTksOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpOTE1X2luaXQodm9pZCkKPiDCoAo+IMKgc3Rh dGljIHZvaWQgX19leGl0IGk5MTVfZXhpdCh2b2lkKQo+IMKgewo+ICsJZXh0ZXJuIHN0cnVjdCBw Y2lfZHJpdmVyIGk5MTVfcGNpX2RyaXZlcjsKPiArCj4gwqAJaWYgKCEoZHJpdmVyLmRyaXZlcl9m ZWF0dXJlcyAmIERSSVZFUl9NT0RFU0VUKSkKPiDCoAkJcmV0dXJuOyAvKiBOZXZlciBsb2FkZWQg YSBkcml2ZXIuICovCj4gwqAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTE0ZDhiNzg0MzE5Cj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBAQCAtMCwwICsxLDQ2 MyBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsg Kgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiAr ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3Jh cGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC7CoMKgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H Uwo+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgCj4g KyNpbmNsdWRlIAo+ICsjaW5jbHVkZSAKPiArCj4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICsK PiArI2RlZmluZSBHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUyBcCj4gKwkucGlwZV9vZmZzZXRzID0g eyBQSVBFX0FfT0ZGU0VULCBQSVBFX0JfT0ZGU0VULCBcCj4gKwkJCcKgwqBQSVBFX0NfT0ZGU0VU LCBQSVBFX0VEUF9PRkZTRVQgfSwgXAo+ICsJLnRyYW5zX29mZnNldHMgPSB7IFRSQU5TQ09ERVJf QV9PRkZTRVQsIFRSQU5TQ09ERVJfQl9PRkZTRVQsIFwKPiArCQkJwqDCoMKgVFJBTlNDT0RFUl9D X09GRlNFVCwgVFJBTlNDT0RFUl9FRFBfT0ZGU0VUIH0sIFwKPiArCS5wYWxldHRlX29mZnNldHMg PSB7IFBBTEVUVEVfQV9PRkZTRVQsIFBBTEVUVEVfQl9PRkZTRVQgfQo+ICsKPiArI2RlZmluZSBH RU5fQ0hWX1BJUEVPRkZTRVRTIFwKPiArCS5waXBlX29mZnNldHMgPSB7IFBJUEVfQV9PRkZTRVQs IFBJUEVfQl9PRkZTRVQsIFwKPiArCQkJwqDCoENIVl9QSVBFX0NfT0ZGU0VUIH0sIFwKPiArCS50 cmFuc19vZmZzZXRzID0geyBUUkFOU0NPREVSX0FfT0ZGU0VULCBUUkFOU0NPREVSX0JfT0ZGU0VU LCBcCj4gKwkJCcKgwqDCoENIVl9UUkFOU0NPREVSX0NfT0ZGU0VULCB9LCBcCj4gKwkucGFsZXR0 ZV9vZmZzZXRzID0geyBQQUxFVFRFX0FfT0ZGU0VULCBQQUxFVFRFX0JfT0ZGU0VULCBcCj4gKwkJ CcKgwqDCoMKgwqBDSFZfUEFMRVRURV9DX09GRlNFVCB9Cj4gKwo+ICsjZGVmaW5lIENVUlNPUl9P RkZTRVRTIFwKPiArCS5jdXJzb3Jfb2Zmc2V0cyA9IHsgQ1VSU09SX0FfT0ZGU0VULCBDVVJTT1Jf Ql9PRkZTRVQsIENIVl9DVVJTT1JfQ19PRkZTRVQgfQo+ICsKPiArI2RlZmluZSBJVkJfQ1VSU09S X09GRlNFVFMgXAo+ICsJLmN1cnNvcl9vZmZzZXRzID0geyBDVVJTT1JfQV9PRkZTRVQsIElWQl9D VVJTT1JfQl9PRkZTRVQsIElWQl9DVVJTT1JfQ19PRkZTRVQgfQo+ICsKPiArI2RlZmluZSBCRFdf Q09MT1JTIFwKPiArCS5jb2xvciA9IHsgLmRlZ2FtbWFfbHV0X3NpemUgPSA1MTIsIC5nYW1tYV9s dXRfc2l6ZSA9IDUxMiB9Cj4gKyNkZWZpbmUgQ0hWX0NPTE9SUyBcCj4gKwkuY29sb3IgPSB7IC5k ZWdhbW1hX2x1dF9zaXplID0gNjUsIC5nYW1tYV9sdXRfc2l6ZSA9IDI1NyB9Cj4gKwo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k4MzBfaW5mbyA9IHsKPiAr CS5nZW4gPSAyLCAuaXNfbW9iaWxlID0gMSwgLmN1cnNvcl9uZWVkc19waHlzaWNhbCA9IDEsIC5u dW1fcGlwZXMgPSAyLAo+ICsJLmhhc19vdmVybGF5ID0gMSwgLm92ZXJsYXlfbmVlZHNfcGh5c2lj YWwgPSAxLAo+ICsJLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HLAo+ICsJR0VOX0RFRkFVTFRfUElQ RU9GRlNFVFMsCj4gKwlDVVJTT1JfT0ZGU0VUUywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfODQ1Z19pbmZvID0gewo+ICsJLmdlbiA9IDIs IC5udW1fcGlwZXMgPSAxLAo+ICsJLmhhc19vdmVybGF5ID0gMSwgLm92ZXJsYXlfbmVlZHNfcGh5 c2ljYWwgPSAxLAo+ICsJLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HLAo+ICsJR0VOX0RFRkFVTFRf UElQRU9GRlNFVFMsCj4gKwlDVVJTT1JfT0ZGU0VUUywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTg1eF9pbmZvID0gewo+ICsJLmdlbiA9 IDIsIC5pc19pODV4ID0gMSwgLmlzX21vYmlsZSA9IDEsIC5udW1fcGlwZXMgPSAyLAo+ICsJLmN1 cnNvcl9uZWVkc19waHlzaWNhbCA9IDEsCj4gKwkuaGFzX292ZXJsYXkgPSAxLCAub3ZlcmxheV9u ZWVkc19waHlzaWNhbCA9IDEsCj4gKwkuaGFzX2ZiYyA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVO REVSX1JJTkcsCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiArCUNVUlNPUl9PRkZTRVRT LAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRl bF9pODY1Z19pbmZvID0gewo+ICsJLmdlbiA9IDIsIC5udW1fcGlwZXMgPSAxLAo+ICsJLmhhc19v dmVybGF5ID0gMSwgLm92ZXJsYXlfbmVlZHNfcGh5c2ljYWwgPSAxLAo+ICsJLnJpbmdfbWFzayA9 IFJFTkRFUl9SSU5HLAo+ICsJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gKwlDVVJTT1JfT0ZG U0VUUywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8g aW50ZWxfaTkxNWdfaW5mbyA9IHsKPiArCS5nZW4gPSAzLCAuaXNfaTkxNWcgPSAxLCAuY3Vyc29y X25lZWRzX3BoeXNpY2FsID0gMSwgLm51bV9waXBlcyA9IDIsCj4gKwkuaGFzX292ZXJsYXkgPSAx LCAub3ZlcmxheV9uZWVkc19waHlzaWNhbCA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJ TkcsCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiArCUNVUlNPUl9PRkZTRVRTLAo+ICt9 Owo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k5MTVnbV9p bmZvID0gewo+ICsJLmdlbiA9IDMsIC5pc19tb2JpbGUgPSAxLCAubnVtX3BpcGVzID0gMiwKPiAr CS5jdXJzb3JfbmVlZHNfcGh5c2ljYWwgPSAxLAo+ICsJLmhhc19vdmVybGF5ID0gMSwgLm92ZXJs YXlfbmVlZHNfcGh5c2ljYWwgPSAxLAo+ICsJLnN1cHBvcnRzX3R2ID0gMSwKPiArCS5oYXNfZmJj ID0gMSwKPiArCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywKPiArCUdFTl9ERUZBVUxUX1BJUEVP RkZTRVRTLAo+ICsJQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTk0NWdfaW5mbyA9IHsKPiArCS5nZW4gPSAzLCAuaGFz X2hvdHBsdWcgPSAxLCAuY3Vyc29yX25lZWRzX3BoeXNpY2FsID0gMSwgLm51bV9waXBlcyA9IDIs Cj4gKwkuaGFzX292ZXJsYXkgPSAxLCAub3ZlcmxheV9uZWVkc19waHlzaWNhbCA9IDEsCj4gKwku cmluZ19tYXNrID0gUkVOREVSX1JJTkcsCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiAr CUNVUlNPUl9PRkZTRVRTLAo+ICt9Owo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvIGludGVsX2k5NDVnbV9pbmZvID0gewo+ICsJLmdlbiA9IDMsIC5pc19pOTQ1Z20gPSAx LCAuaXNfbW9iaWxlID0gMSwgLm51bV9waXBlcyA9IDIsCj4gKwkuaGFzX2hvdHBsdWcgPSAxLCAu Y3Vyc29yX25lZWRzX3BoeXNpY2FsID0gMSwKPiArCS5oYXNfb3ZlcmxheSA9IDEsIC5vdmVybGF5 X25lZWRzX3BoeXNpY2FsID0gMSwKPiArCS5zdXBwb3J0c190diA9IDEsCj4gKwkuaGFzX2ZiYyA9 IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcsCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZG U0VUUywKPiArCUNVUlNPUl9PRkZTRVRTLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pOTY1Z19pbmZvID0gewo+ICsJLmdlbiA9IDQsIC5p c19icm9hZHdhdGVyID0gMSwgLm51bV9waXBlcyA9IDIsCj4gKwkuaGFzX2hvdHBsdWcgPSAxLAo+ ICsJLmhhc19vdmVybGF5ID0gMSwKPiArCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywKPiArCUdF Tl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+ICsJQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k5NjVnbV9pbmZvID0g ewo+ICsJLmdlbiA9IDQsIC5pc19jcmVzdGxpbmUgPSAxLCAubnVtX3BpcGVzID0gMiwKPiArCS5p c19tb2JpbGUgPSAxLCAuaGFzX2ZiYyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkuaGFzX292 ZXJsYXkgPSAxLAo+ICsJLnN1cHBvcnRzX3R2ID0gMSwKPiArCS5yaW5nX21hc2sgPSBSRU5ERVJf UklORywKPiArCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+ICsJQ1VSU09SX09GRlNFVFMsCj4g K307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2cz M19pbmZvID0gewo+ICsJLmdlbiA9IDMsIC5pc19nMzMgPSAxLCAubnVtX3BpcGVzID0gMiwKPiAr CS5uZWVkX2dmeF9od3MgPSAxLCAuaGFzX2hvdHBsdWcgPSAxLAo+ICsJLmhhc19vdmVybGF5ID0g MSwKPiArCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywKPiArCUdFTl9ERUZBVUxUX1BJUEVPRkZT RVRTLAo+ICsJQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2RldmljZV9pbmZvIGludGVsX2c0NV9pbmZvID0gewo+ICsJLmdlbiA9IDQsIC5pc19n NHggPSAxLCAubmVlZF9nZnhfaHdzID0gMSwgLm51bV9waXBlcyA9IDIsCj4gKwkuaGFzX3BpcGVf Y3hzciA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcg fCBCU0RfUklORywKPiArCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+ICsJQ1VSU09SX09GRlNF VFMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGlu dGVsX2dtNDVfaW5mbyA9IHsKPiArCS5nZW4gPSA0LCAuaXNfZzR4ID0gMSwgLm51bV9waXBlcyA9 IDIsCj4gKwkuaXNfbW9iaWxlID0gMSwgLm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNfZmJjID0gMSwK PiArCS5oYXNfcGlwZV9jeHNyID0gMSwgLmhhc19ob3RwbHVnID0gMSwKPiArCS5zdXBwb3J0c190 diA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORywKPiArCUdFTl9E RUZBVUxUX1BJUEVPRkZTRVRTLAo+ICsJQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3BpbmV2aWV3X2luZm8gPSB7 Cj4gKwkuZ2VuID0gMywgLmlzX2czMyA9IDEsIC5pc19waW5ldmlldyA9IDEsIC5pc19tb2JpbGUg PSAxLCAubnVtX3BpcGVzID0gMiwKPiArCS5uZWVkX2dmeF9od3MgPSAxLCAuaGFzX2hvdHBsdWcg PSAxLAo+ICsJLmhhc19vdmVybGF5ID0gMSwKPiArCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+ ICsJQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX2lyb25sYWtlX2RfaW5mbyA9IHsKPiArCS5nZW4gPSA1LCAubnVt X3BpcGVzID0gMiwKPiArCS5uZWVkX2dmeF9od3MgPSAxLCAuaGFzX2hvdHBsdWcgPSAxLAo+ICsJ LnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcsCj4gKwlHRU5fREVGQVVMVF9QSVBF T0ZGU0VUUywKPiArCUNVUlNPUl9PRkZTRVRTLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pcm9ubGFrZV9tX2luZm8gPSB7Cj4gKwkuZ2Vu ID0gNSwgLmlzX21vYmlsZSA9IDEsIC5udW1fcGlwZXMgPSAyLAo+ICsJLm5lZWRfZ2Z4X2h3cyA9 IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkuaGFzX2ZiYyA9IDEsCj4gKwkucmluZ19tYXNrID0g UkVOREVSX1JJTkcgfCBCU0RfUklORywKPiArCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+ICsJ Q1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvIGludGVsX3NhbmR5YnJpZGdlX2RfaW5mbyA9IHsKPiArCS5nZW4gPSA2LCAubnVt X3BpcGVzID0gMiwKPiArCS5uZWVkX2dmeF9od3MgPSAxLCAuaGFzX2hvdHBsdWcgPSAxLAo+ICsJ Lmhhc19mYmMgPSAxLAo+ICsJLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBC TFRfUklORywKPiArCS5oYXNfbGxjID0gMSwKPiArCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLAo+ ICsJQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX3NhbmR5YnJpZGdlX21faW5mbyA9IHsKPiArCS5nZW4gPSA2LCAu aXNfbW9iaWxlID0gMSwgLm51bV9waXBlcyA9IDIsCj4gKwkubmVlZF9nZnhfaHdzID0gMSwgLmhh c19ob3RwbHVnID0gMSwKPiArCS5oYXNfZmJjID0gMSwKPiArCS5yaW5nX21hc2sgPSBSRU5ERVJf UklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcsCj4gKwkuaGFzX2xsYyA9IDEsCj4gKwlHRU5fREVG QVVMVF9QSVBFT0ZGU0VUUywKPiArCUNVUlNPUl9PRkZTRVRTLAo+ICt9Owo+ICsKPiArI2RlZmlu ZSBHRU43X0ZFQVRVUkVTwqDCoFwKPiArCS5nZW4gPSA3LCAubnVtX3BpcGVzID0gMywgXAo+ICsJ Lm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsIFwKPiArCS5oYXNfZmJjID0gMSwg XAo+ICsJLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORywgXAo+ ICsJLmhhc19sbGMgPSAxLCBcCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywgXAo+ICsJSVZC X0NVUlNPUl9PRkZTRVRTCj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9p bmZvIGludGVsX2l2eWJyaWRnZV9kX2luZm8gPSB7Cj4gKwlHRU43X0ZFQVRVUkVTLAo+ICsJLmlz X2l2eWJyaWRnZSA9IDEsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvIGludGVsX2l2eWJyaWRnZV9tX2luZm8gPSB7Cj4gKwlHRU43X0ZFQVRVUkVTLAo+ ICsJLmlzX2l2eWJyaWRnZSA9IDEsCj4gKwkuaXNfbW9iaWxlID0gMSwKPiArfTsKPiArCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXZ5YnJpZGdlX3FfaW5m byA9IHsKPiArCUdFTjdfRkVBVFVSRVMsCj4gKwkuaXNfaXZ5YnJpZGdlID0gMSwKPiArCS5udW1f cGlwZXMgPSAwLCAvKiBsZWdhbCwgbGFzdCBvbmUgd2lucyAqLwo+ICt9Owo+ICsKPiArI2RlZmlu ZSBWTFZfRkVBVFVSRVPCoMKgXAo+ICsJLmdlbiA9IDcsIC5udW1fcGlwZXMgPSAyLCBcCj4gKwku bmVlZF9nZnhfaHdzID0gMSwgLmhhc19ob3RwbHVnID0gMSwgXAo+ICsJLnJpbmdfbWFzayA9IFJF TkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORywgXAo+ICsJLmRpc3BsYXlfbW1pb19vZmZz ZXQgPSBWTFZfRElTUExBWV9CQVNFLCBcCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywgXAo+ ICsJQ1VSU09SX09GRlNFVFMKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNl X2luZm8gaW50ZWxfdmFsbGV5dmlld19tX2luZm8gPSB7Cj4gKwlWTFZfRkVBVFVSRVMsCj4gKwku aXNfdmFsbGV5dmlldyA9IDEsCj4gKwkuaXNfbW9iaWxlID0gMSwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfdmFsbGV5dmlld19kX2luZm8g PSB7Cj4gKwlWTFZfRkVBVFVSRVMsCj4gKwkuaXNfdmFsbGV5dmlldyA9IDEsCj4gK307Cj4gKwo+ ICsjZGVmaW5lIEhTV19GRUFUVVJFU8KgwqBcCj4gKwlHRU43X0ZFQVRVUkVTLCBcCj4gKwkucmlu Z19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywg XAo+ICsJLmhhc19kZGkgPSAxLCBcCj4gKwkuaGFzX2ZwZ2FfZGJnID0gMQo+ICsKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9oYXN3ZWxsX2RfaW5mbyA9IHsK PiArCUhTV19GRUFUVVJFUywKPiArCS5pc19oYXN3ZWxsID0gMSwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaGFzd2VsbF9tX2luZm8gPSB7 Cj4gKwlIU1dfRkVBVFVSRVMsCj4gKwkuaXNfaGFzd2VsbCA9IDEsCj4gKwkuaXNfbW9iaWxlID0g MSwKPiArfTsKPiArCj4gKyNkZWZpbmUgQkRXX0ZFQVRVUkVTIFwKPiArCUhTV19GRUFUVVJFUywg XAo+ICsJQkRXX0NPTE9SUwo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2Vf aW5mbyBpbnRlbF9icm9hZHdlbGxfZF9pbmZvID0gewo+ICsJQkRXX0ZFQVRVUkVTLAo+ICsJLmdl biA9IDgsCj4gKwkuaXNfYnJvYWR3ZWxsID0gMSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfYnJvYWR3ZWxsX21faW5mbyA9IHsKPiArCUJE V19GRUFUVVJFUywKPiArCS5nZW4gPSA4LCAuaXNfbW9iaWxlID0gMSwKPiArCS5pc19icm9hZHdl bGwgPSAxLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5m byBpbnRlbF9icm9hZHdlbGxfZ3QzZF9pbmZvID0gewo+ICsJQkRXX0ZFQVRVUkVTLAo+ICsJLmdl biA9IDgsCj4gKwkuaXNfYnJvYWR3ZWxsID0gMSwKPiArCS5yaW5nX21hc2sgPSBSRU5ERVJfUklO RyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HLAo+ICt9Owo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9icm9hZHdl bGxfZ3QzbV9pbmZvID0gewo+ICsJQkRXX0ZFQVRVUkVTLAo+ICsJLmdlbiA9IDgsIC5pc19tb2Jp bGUgPSAxLAo+ICsJLmlzX2Jyb2Fkd2VsbCA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJ TkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRDJfUklORywKPiArfTsK PiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2hlcnJ5 dmlld19pbmZvID0gewo+ICsJLmdlbiA9IDgsIC5udW1fcGlwZXMgPSAzLAo+ICsJLm5lZWRfZ2Z4 X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcg fCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywKPiArCS5pc19jaGVycnl2aWV3ID0g MSwKPiArCS5kaXNwbGF5X21taW9fb2Zmc2V0ID0gVkxWX0RJU1BMQVlfQkFTRSwKPiArCUdFTl9D SFZfUElQRU9GRlNFVFMsCj4gKwlDVVJTT1JfT0ZGU0VUUywKPiArCUNIVl9DT0xPUlMsCj4gK307 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NreWxh a2VfaW5mbyA9IHsKPiArCUJEV19GRUFUVVJFUywKPiArCS5pc19za3lsYWtlID0gMSwKPiArCS5n ZW4gPSA5LAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5m byBpbnRlbF9za3lsYWtlX2d0M19pbmZvID0gewo+ICsJQkRXX0ZFQVRVUkVTLAo+ICsJLmlzX3Nr eWxha2UgPSAxLAo+ICsJLmdlbiA9IDksCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBC U0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRDJfUklORywKPiArfTsKPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfYnJveHRvbl9pbmZv ID0gewo+ICsJLmlzX3ByZWxpbWluYXJ5ID0gMSwKPiArCS5pc19icm94dG9uID0gMSwKPiArCS5n ZW4gPSA5LAo+ICsJLm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmlu Z19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywK PiArCS5udW1fcGlwZXMgPSAzLAo+ICsJLmhhc19kZGkgPSAxLAo+ICsJLmhhc19mcGdhX2RiZyA9 IDEsCj4gKwkuaGFzX2ZiYyA9IDEsCj4gKwlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiArCUlW Ql9DVVJTT1JfT0ZGU0VUUywKPiArCUJEV19DT0xPUlMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2thYnlsYWtlX2luZm8gPSB7Cj4gKwlC RFdfRkVBVFVSRVMsCj4gKwkuaXNfa2FieWxha2UgPSAxLAo+ICsJLmdlbiA9IDksCj4gK307Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2thYnlsYWtl X2d0M19pbmZvID0gewo+ICsJQkRXX0ZFQVRVUkVTLAo+ICsJLmlzX2thYnlsYWtlID0gMSwKPiAr CS5nZW4gPSA5LAo+ICsJLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRf UklORyB8IFZFQk9YX1JJTkcgfCBCU0QyX1JJTkcsCj4gK307Cj4gKwo+ICsvKgo+ICsgKiBNYWtl IHN1cmUgYW55IGRldmljZSBtYXRjaGVzIGhlcmUgYXJlIGZyb20gbW9zdCBzcGVjaWZpYyB0byBt b3N0Cj4gKyAqIGdlbmVyYWwuwqDCoEZvciBleGFtcGxlLCBzaW5jZSB0aGUgUXVhbnRhIG1hdGNo IGlzIGJhc2VkIG9uIHRoZSBzdWJzeXN0ZW0KPiArICogYW5kIHN1YnZlbmRvciBJRHMsIHdlIG5l ZWQgaXQgdG8gY29tZSBiZWZvcmUgdGhlIG1vcmUgZ2VuZXJhbCBJVkIKPiArICogUENJIElEIG1h dGNoZXMsIG90aGVyd2lzZSB3ZSdsbCB1c2UgdGhlIHdyb25nIGluZm8gc3RydWN0IGFib3ZlLgo+ ICsgKi8KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0g ewo+ICsJSU5URUxfSTgzMF9JRFMoJmludGVsX2k4MzBfaW5mbyksCj4gKwlJTlRFTF9JODQ1R19J RFMoJmludGVsXzg0NWdfaW5mbyksCj4gKwlJTlRFTF9JODVYX0lEUygmaW50ZWxfaTg1eF9pbmZv KSwKPiArCUlOVEVMX0k4NjVHX0lEUygmaW50ZWxfaTg2NWdfaW5mbyksCj4gKwlJTlRFTF9JOTE1 R19JRFMoJmludGVsX2k5MTVnX2luZm8pLAo+ICsJSU5URUxfSTkxNUdNX0lEUygmaW50ZWxfaTkx NWdtX2luZm8pLAo+ICsJSU5URUxfSTk0NUdfSURTKCZpbnRlbF9pOTQ1Z19pbmZvKSwKPiArCUlO VEVMX0k5NDVHTV9JRFMoJmludGVsX2k5NDVnbV9pbmZvKSwKPiArCUlOVEVMX0k5NjVHX0lEUygm aW50ZWxfaTk2NWdfaW5mbyksCj4gKwlJTlRFTF9HMzNfSURTKCZpbnRlbF9nMzNfaW5mbyksCj4g KwlJTlRFTF9JOTY1R01fSURTKCZpbnRlbF9pOTY1Z21faW5mbyksCj4gKwlJTlRFTF9HTTQ1X0lE UygmaW50ZWxfZ200NV9pbmZvKSwKPiArCUlOVEVMX0c0NV9JRFMoJmludGVsX2c0NV9pbmZvKSwK PiArCUlOVEVMX1BJTkVWSUVXX0lEUygmaW50ZWxfcGluZXZpZXdfaW5mbyksCj4gKwlJTlRFTF9J Uk9OTEFLRV9EX0lEUygmaW50ZWxfaXJvbmxha2VfZF9pbmZvKSwKPiArCUlOVEVMX0lST05MQUtF X01fSURTKCZpbnRlbF9pcm9ubGFrZV9tX2luZm8pLAo+ICsJSU5URUxfU05CX0RfSURTKCZpbnRl bF9zYW5keWJyaWRnZV9kX2luZm8pLAo+ICsJSU5URUxfU05CX01fSURTKCZpbnRlbF9zYW5keWJy aWRnZV9tX2luZm8pLAo+ICsJSU5URUxfSVZCX1FfSURTKCZpbnRlbF9pdnlicmlkZ2VfcV9pbmZv KSwgLyogbXVzdCBiZSBmaXJzdCBJVkIgKi8KPiArCUlOVEVMX0lWQl9NX0lEUygmaW50ZWxfaXZ5 YnJpZGdlX21faW5mbyksCj4gKwlJTlRFTF9JVkJfRF9JRFMoJmludGVsX2l2eWJyaWRnZV9kX2lu Zm8pLAo+ICsJSU5URUxfSFNXX0RfSURTKCZpbnRlbF9oYXN3ZWxsX2RfaW5mbyksCj4gKwlJTlRF TF9IU1dfTV9JRFMoJmludGVsX2hhc3dlbGxfbV9pbmZvKSwKPiArCUlOVEVMX1ZMVl9NX0lEUygm aW50ZWxfdmFsbGV5dmlld19tX2luZm8pLAo+ICsJSU5URUxfVkxWX0RfSURTKCZpbnRlbF92YWxs ZXl2aWV3X2RfaW5mbyksCj4gKwlJTlRFTF9CRFdfR1QxMk1fSURTKCZpbnRlbF9icm9hZHdlbGxf bV9pbmZvKSwKPiArCUlOVEVMX0JEV19HVDEyRF9JRFMoJmludGVsX2Jyb2Fkd2VsbF9kX2luZm8p LAo+ICsJSU5URUxfQkRXX0dUM01fSURTKCZpbnRlbF9icm9hZHdlbGxfZ3QzbV9pbmZvKSwKPiAr CUlOVEVMX0JEV19HVDNEX0lEUygmaW50ZWxfYnJvYWR3ZWxsX2d0M2RfaW5mbyksCj4gKwlJTlRF TF9DSFZfSURTKCZpbnRlbF9jaGVycnl2aWV3X2luZm8pLAo+ICsJSU5URUxfU0tMX0dUMV9JRFMo JmludGVsX3NreWxha2VfaW5mbyksCj4gKwlJTlRFTF9TS0xfR1QyX0lEUygmaW50ZWxfc2t5bGFr ZV9pbmZvKSwKPiArCUlOVEVMX1NLTF9HVDNfSURTKCZpbnRlbF9za3lsYWtlX2d0M19pbmZvKSwK PiArCUlOVEVMX1NLTF9HVDRfSURTKCZpbnRlbF9za3lsYWtlX2d0M19pbmZvKSwKPiArCUlOVEVM X0JYVF9JRFMoJmludGVsX2Jyb3h0b25faW5mbyksCj4gKwlJTlRFTF9LQkxfR1QxX0lEUygmaW50 ZWxfa2FieWxha2VfaW5mbyksCj4gKwlJTlRFTF9LQkxfR1QyX0lEUygmaW50ZWxfa2FieWxha2Vf aW5mbyksCj4gKwlJTlRFTF9LQkxfR1QzX0lEUygmaW50ZWxfa2FieWxha2VfZ3QzX2luZm8pLAo+ ICsJSU5URUxfS0JMX0dUNF9JRFMoJmludGVsX2thYnlsYWtlX2d0M19pbmZvKSwKPiArCXswLCAw LCAwfQo+ICt9Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgcGNpaWRsaXN0KTsKPiArCj4g K2V4dGVybiBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiArCQkJ wqDCoMKgwqBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KTsKPiArCj4gK3N0YXRpYyBp bnQgaTkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lf ZGV2aWNlX2lkICplbnQpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW50ZWxf aW5mbyA9Cj4gKwkJKHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqKSBlbnQtPmRyaXZlcl9kYXRh Owo+ICsKPiArCWlmIChJU19QUkVMSU1JTkFSWV9IVyhpbnRlbF9pbmZvKSAmJiAhaTkxNS5wcmVs aW1pbmFyeV9od19zdXBwb3J0KSB7Cj4gKwkJRFJNX0lORk8oIlRoaXMgaGFyZHdhcmUgcmVxdWly ZXMgcHJlbGltaW5hcnkgaGFyZHdhcmUgc3VwcG9ydC5cbiIKPiArCQkJwqAiU2VlIENPTkZJR19E Uk1fSTkxNV9QUkVMSU1JTkFSWV9IV19TVVBQT1JULCBhbmQvb3IgbW9kcGFyYW0gcHJlbGltaW5h cnlfaHdfc3VwcG9ydFxuIik7Cj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwl9Cj4gKwo+ICsJLyog T25seSBiaW5kIHRvIGZ1bmN0aW9uIDAgb2YgdGhlIGRldmljZS4gRWFybHkgZ2VuZXJhdGlvbnMK PiArCcKgKiB1c2VkIGZ1bmN0aW9uIDEgYXMgYSBwbGFjZWhvbGRlciBmb3IgbXVsdGktaGVhZC4g VGhpcyBjYXVzZXMKPiArCcKgKiB1cyBjb25mdXNpb24gaW5zdGVhZCwgZXNwZWNpYWxseSBvbiB0 aGUgc3lzdGVtcyB3aGVyZSBib3RoCj4gKwnCoCogZnVuY3Rpb25zIGhhdmUgdGhlIHNhbWUgUENJ LUlEIQo+ICsJwqAqLwo+ICsJaWYgKFBDSV9GVU5DKHBkZXYtPmRldmZuKSkKPiArCQlyZXR1cm4g LUVOT0RFVjsKPiArCj4gKwkvKgo+ICsJwqAqIGFwcGxlLWdtdXggaXMgbmVlZGVkIG9uIGR1YWwg R1BVIE1hY0Jvb2sgUHJvCj4gKwnCoCogdG8gcHJvYmUgdGhlIHBhbmVsIGlmIHdlJ3JlIHRoZSBp bmFjdGl2ZSBHUFUuCj4gKwnCoCovCj4gKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfVkdBX0FSQikg JiYgSVNfRU5BQkxFRChDT05GSUdfVkdBX1NXSVRDSEVST08pICYmCj4gKwnCoMKgwqDCoGFwcGxl X2dtdXhfcHJlc2VudCgpICYmIHBkZXYgIT0gdmdhX2RlZmF1bHRfZGV2aWNlKCkgJiYKPiArCcKg wqDCoMKgIXZnYV9zd2l0Y2hlcm9vX2hhbmRsZXJfZmxhZ3MoKSkKPiArCQlyZXR1cm4gLUVQUk9C RV9ERUZFUjsKPiArCj4gKwlyZXR1cm4gaTkxNV9kcml2ZXJfbG9hZChwZGV2LCBlbnQpOwo+ICt9 Cj4gKwo+ICtleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gKwo+ICtzdGF0aWMgdm9pZCBpOTE1X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYg KnBkZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEo cGRldik7Cj4gKwo+ICsJaTkxNV9kcml2ZXJfdW5sb2FkKGRldik7Cj4gKwlkcm1fZGV2X3VucmVm KGRldik7Cj4gK30KPiArCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpOTE1X3Bt X29wczsKPiArCj4gK3N0cnVjdCBwY2lfZHJpdmVyIGk5MTVfcGNpX2RyaXZlciA9IHsKPiArCS5u YW1lID0gRFJJVkVSX05BTUUsCj4gKwkuaWRfdGFibGUgPSBwY2lpZGxpc3QsCj4gKwkucHJvYmUg PSBpOTE1X3BjaV9wcm9iZSwKPiArCS5yZW1vdmUgPSBpOTE1X3BjaV9yZW1vdmUsCj4gKwkuZHJp dmVyLnBtID0gJmk5MTVfcG1fb3BzLAo+ICt9OwotLSAKSm9vbmFzIExhaHRpbmVuCk9wZW4gU291 cmNlIFRlY2hub2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9uCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=