From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1823DC10F05 for ; Mon, 1 Apr 2019 17:48:23 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DBC8220896 for ; Mon, 1 Apr 2019 17:48:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ecnNYwyY"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=tronnes.org header.i=@tronnes.org header.b="FjQRqBPx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DBC8220896 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=tronnes.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=N/v92OJzRAOdq5s3D0GDos7jHJlllx0PZ3JmhVT5gIU=; b=ecnNYwyYkMUVZk bpngpbGRDDmfU/aXuOpU00Bn1c4P5D0AlUnzG65vWMShwhE9oXpC0mZoyKUfNMz7TURB1E0YYoRkM VOV510WS293THggE5Rc6ec8A5ZgMcx2k0beljiXGPQWQGm/BRodN3rtyMCbXjtzDpp/ljJ8BC92rv U/oiUdOsfw40zXgIXTvYIfFbtsr5RaIPtpUZutnnpfB1k39k/wtcO3JJLwtibVo5MEy8X/ZPJbl9h TjKSQt7uvlGDfqBwOZ/WjoZpHEtTEUSdcVB3B/g1rSs0CgdGLbQTi9zDgbwdpO+0/mIErKuWWM/N6 y45yQ1yh4UJlnza2288w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hB12b-0002Q6-SF; Mon, 01 Apr 2019 17:48:13 +0000 Received: from smtp.domeneshop.no ([2a01:5b40:0:3005::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hB12W-0002Oj-9q for linux-arm-kernel@lists.infradead.org; Mon, 01 Apr 2019 17:48:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tronnes.org; s=ds201810; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject; bh=5oAQRVcAab3Vbj3oY02RFPbbA0XGSybNmQLU4tQkw+o=; b=FjQRqBPxeV7nctBixFzkXylRp1xWnqpns9f12F6xBPOx75AgezAOyZ5fqIqeExGe+QNlvs4MG21f/PzEdD6XWOYC6Q7qec7/tNPUAegrMhfr5CzyfVDkO9/i6T4YJhcLg+1qhcyXu4vyGFGq+3WF8toSCgxum7jgWgJIzND5Dt1n/fvRPnKct8ySP/2qtetmxRqHz7mKdEnIERJZDYfxjmK4ZKMFxbuUUHxhJa+FUO5ZKqXDA1W6ZIAec5JlfNuuvuUrxPnFpicOmh8a1VMmauWC/Myz0lKkuxN+25cNr614jyhFayCePFEa1E4QSAX1P68SM4GlTYfDPjaM3l2k3A==; Received: from 211.81-166-168.customer.lyse.net ([81.166.168.211]:64705 helo=[192.168.10.179]) by smtp.domeneshop.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1hB12R-0006OI-Eg; Mon, 01 Apr 2019 19:48:03 +0200 Subject: Re: [PATCH 2/2] drm: Add ASPEED GFX driver To: Joel Stanley , David Airlie , Daniel Vetter , Rob Herring References: <20190328054316.17939-1-joel@jms.id.au> <20190328054316.17939-3-joel@jms.id.au> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <730c140f-b4a2-7df9-3d90-9d47d720f643@tronnes.org> Date: Mon, 1 Apr 2019 19:48:00 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190328054316.17939-3-joel@jms.id.au> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190401_104808_692632_E7D1680F X-CRM114-Status: GOOD ( 26.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-aspeed@lists.ozlabs.org, Andrew Jeffery , dri-devel@lists.freedesktop.org, Maxime Ripard , Sean Paul , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpEZW4gMjguMDMuMjAxOSAwNi40Mywgc2tyZXYgSm9lbCBTdGFubGV5Ogo+IFRoaXMgZHJpdmVy IGlzIGZvciB0aGUgQVNQRUVEIEJNQyBTb0MncyBHRlggZGlzcGxheSBoYXJkd2FyZS4gVGhpcwo+ IGRyaXZlciBydW5zIG9uIHRoZSBBUk0gYmFzZWQgQk1DIHN5c3RlbXMsIHVubGlrZSB0aGUgYXN0 IGRyaXZlciB3aGljaAo+IHJ1bnMgb24gYSBob3N0IENQVSBhbmQgaXMgaXMgZm9yIGEgUENJIGdy YXBoaWNzIGRldmljZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKb2VsIFN0YW5sZXkgPGpvZWxAam1z LmlkLmF1Pgo+IC0tCj4gQ2hhbmdlcyBzaW5jZSBSRkM6Cj4gIGRybV9mYmRldl9jbWFfaW5pdCAt PiBkcm1fZmJfY21hX2ZiZGV2X2luaXQgYW5kIHVzZSBnZW5lcmljIGxhc3RjbG9zZSBjYWxsYmFj awo+ICBVc2UgZ2VuZXJpYyBpcnEgaGFuZGxpbmcgaW5zdGVhZCBvZiBkcm1faXJxX2luc3RhbGwK PiAgQWRkIGRvYyB0byBkcml2ZXIKPiAgR2V0IHJpZCBvZiB1bm5jZXNzYXJ5IHJlYWRzIGluIGly cSBlbmFibGUvZGlzYWJsZSBwYXRoCj4gIFJlYmFzZSBvbiBsaW51eC1uZXh0Cj4gCj4gIGRyaXZl cnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgICAgICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dw dS9kcm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJt L2FzcGVlZC9LY29uZmlnICAgICAgICAgICB8ICAxNSArKwo+ICBkcml2ZXJzL2dwdS9kcm0vYXNw ZWVkL01ha2VmaWxlICAgICAgICAgIHwgICAzICsKPiAgZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9h c3BlZWRfZ2Z4LmggICAgICB8IDEwNCArKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2FzcGVl ZC9hc3BlZWRfZ2Z4X2NydGMuYyB8IDI0OCArKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVy cy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4X2Rydi5jICB8IDI2OSArKysrKysrKysrKysrKysr KysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfb3V0LmMgIHwgIDQ5 ICsrKysrCj4gIDggZmlsZXMgY2hhbmdlZCwgNjkxIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hc3BlZWQvS2NvbmZpZwo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9NYWtlZmlsZQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4LmgKPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeF9jcnRjLmMKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeF9kcnYuYwo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4X291dC5jCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJt L0tjb25maWcKPiBpbmRleCA4MmJiMjIxZWM5NGUuLmIxZWM4Zjg1YzJhOCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmln Cj4gQEAgLTMzNSw2ICszMzUsOCBAQCBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS94ZW4vS2NvbmZp ZyIKPiAgCj4gIHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnIgo+ICAK PiArc291cmNlICJkcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWciCj4gKwo+ICAjIEtlZXAg bGVnYWN5IGRyaXZlcnMgbGFzdAo+ICAKPiAgbWVudWNvbmZpZyBEUk1fTEVHQUNZCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmls ZQo+IGluZGV4IDBiYWYxNDhlMzY4Ny4uZGY4ODM1MDQ1MzEwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+IEBA IC0xMTAsMyArMTEwLDQgQEAgb2JqLSQoQ09ORklHX0RSTV9QTDExMSkgKz0gcGwxMTEvCj4gIG9i ai0kKENPTkZJR19EUk1fVFZFMjAwKSArPSB0dmUyMDAvCj4gIG9iai0kKENPTkZJR19EUk1fWEVO KSArPSB4ZW4vCj4gIG9iai0kKENPTkZJR19EUk1fVkJPWFZJREVPKSArPSB2Ym94dmlkZW8vCj4g K29iai0kKENPTkZJR19EUk1fQVNQRUVEX0dGWCkgKz0gYXNwZWVkLwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tj b25maWcKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNmYxZTY0 YzBhNmNlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3BlZWQvS2Nv bmZpZwo+IEBAIC0wLDAgKzEsMTUgQEAKPiArY29uZmlnIERSTV9BU1BFRURfR0ZYCj4gKwl0cmlz dGF0ZSAiQVNQRUVEIEJNQyBEaXNwbGF5IENvbnRyb2xsZXIiCj4gKwlkZXBlbmRzIG9uIERSTSAm JiBPRgo+ICsJc2VsZWN0IERSTV9LTVNfSEVMUEVSCj4gKwlzZWxlY3QgRFJNX0tNU19GQl9IRUxQ RVIKClRoaXMgZm9yY2VzIGZiZGV2IHRvIGFsd2F5cyBiZSBidWlsdC4gSWYgeW91IGRyb3AgdGhp cywKRFJNX0ZCREVWX0VNVUxBVElPTiB3aGljaCBpcyB5ZXMgYnkgZGVmYXVsdCB3aWxsIHNldCBp dC4gVGhpcyB3YXkgaXQncwpwb3NzaWJsZSB0byBidWlsZCBhIGtlcm5lbCB3aXRob3V0IGZiZGV2 LgoKPiArCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKPiArCXNlbGVjdCBEUk1fUEFORUwKPiAr CXNlbGVjdCBETUFfQ01BCj4gKwlzZWxlY3QgQ01BCj4gKwlzZWxlY3QgTUZEX1NZU0NPTgo+ICsJ aGVscAo+ICsJICBDaG9zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhbiBBU1BFRUQgQVNUMjQw MC9BU1QyNTAwCj4gKwkgIFNPQyBEaXNwbGF5IENvbnRyb2xsZXIgKGFrYSBHRlgpLgo+ICsKPiAr CSAgSWYgTSBpcyBzZWxlY3RlZCB0aGlzIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBhc3BlZWRfZ2Z4 Lgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL2FzcGVlZC9NYWtlZmlsZQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAwMDAwLi42ZTE5NGNkNzkwZDgKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FzcGVlZC9NYWtlZmlsZQo+IEBAIC0wLDAgKzEsMyBAQAo+ICthc3BlZWRfZ2Z4 LXkgOj0gYXNwZWVkX2dmeF9kcnYubyBhc3BlZWRfZ2Z4X2NydGMubyBhc3BlZWRfZ2Z4X291dC5v Cj4gKwo+ICtvYmotJChDT05GSUdfRFJNX0FTUEVFRF9HRlgpICs9IGFzcGVlZF9nZngubwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnguaCBiL2RyaXZlcnMv Z3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwMDAwMDAuLmZiNTZlNDI1YmQ0OAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnguaAo+IEBAIC0wLDAgKzEsMTA0IEBACj4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwo+ICsvLyBDb3B5cmlnaHQgMjAxOCBJ Qk0gQ29ycG9yYXRpb24KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgoKUGxlYXNlIGRvbid0 IGluY2x1ZGUgZHJtUC5oLCB3ZSdyZSB0cnlpbmcgdG8gZ2V0IHJpZCBvZiBpdC4KCj4gKyNpbmNs dWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+Cj4gKwo+ICtzdHJ1Y3QgYXNwZWVkX2dm eCB7Cj4gKwl2b2lkIF9faW9tZW0JCQkqYmFzZTsKPiArCXN0cnVjdCBjbGsJCQkqY2xrOwo+ICsJ c3RydWN0IHJlc2V0X2NvbnRyb2wJCSpyc3Q7Cj4gKwlzdHJ1Y3QgcmVnbWFwCQkJKnNjdTsKPiAr Cj4gKwlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUJcGlwZTsKPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yCQljb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2ZiZGV2X2NtYQkJKmZiZGV2Owo+ ICt9Owo+ICsKPiAraW50IGFzcGVlZF9nZnhfY3JlYXRlX3BpcGUoc3RydWN0IGRybV9kZXZpY2Ug KmRybSk7Cj4gK2ludCBhc3BlZWRfZ2Z4X2NyZWF0ZV9vdXRwdXQoc3RydWN0IGRybV9kZXZpY2Ug KmRybSk7Cj4gKwo+ICsjZGVmaW5lIENSVF9DVFJMMQkJMHg2MCAvKiBDUlQgQ29udHJvbCBJICov Cj4gKyNkZWZpbmUgQ1JUX0NUUkwyCQkweDY0IC8qIENSVCBDb250cm9sIElJICovCj4gKyNkZWZp bmUgQ1JUX1NUQVRVUwkJMHg2OCAvKiBDUlQgU3RhdHVzICovCj4gKyNkZWZpbmUgQ1JUX01JU0MJ CTB4NmMgLyogQ1JUIE1pc2MgU2V0dGluZyAqLwo+ICsjZGVmaW5lIENSVF9IT1JJWjAJCTB4NzAg LyogQ1JUIEhvcml6b250YWwgVG90YWwgJiBEaXNwbGF5IEVuYWJsZSBFbmQgKi8KPiArI2RlZmlu ZSBDUlRfSE9SSVoxCQkweDc0IC8qIENSVCBIb3Jpem9udGFsIFJldHJhY2UgU3RhcnQgJiBFbmQg Ki8KPiArI2RlZmluZSBDUlRfVkVSVDAJCTB4NzggLyogQ1JUIFZlcnRpY2FsIFRvdGFsICYgRGlz cGxheSBFbmFibGUgRW5kICovCj4gKyNkZWZpbmUgQ1JUX1ZFUlQxCQkweDdDIC8qIENSVCBWZXJ0 aWNhbCBSZXRyYWNlIFN0YXJ0ICYgRW5kICovCj4gKyNkZWZpbmUgQ1JUX0FERFIJCTB4ODAgLyog Q1JUIERpc3BsYXkgU3RhcnRpbmcgQWRkcmVzcyAqLwo+ICsjZGVmaW5lIENSVF9PRkZTRVQJCTB4 ODQgLyogQ1JUIERpc3BsYXkgT2Zmc2V0ICYgVGVybWluYWwgQ291bnQgKi8KPiArI2RlZmluZSBD UlRfVEhST0QJCTB4ODggLyogQ1JUIFRocmVzaG9sZCAqLwo+ICsjZGVmaW5lIENSVF9YU0NBTEUJ CTB4OEMgLyogQ1JUIFNjYWxpbmctVXAgRmFjdG9yICovCj4gKyNkZWZpbmUgQ1JUX0NVUlNPUjAJ CTB4OTAgLyogQ1JUIEhhcmR3YXJlIEN1cnNvciBYICYgWSBPZmZzZXQgKi8KPiArI2RlZmluZSBD UlRfQ1VSU09SMQkJMHg5NCAvKiBDUlQgSGFyZHdhcmUgQ3Vyc29yIFggJiBZIFBvc2l0aW9uICov Cj4gKyNkZWZpbmUgQ1JUX0NVUlNPUjIJCTB4OTggLyogQ1JUIEhhcmR3YXJlIEN1cnNvciBQYXR0 ZXJuIEFkZHJlc3MgKi8KPiArI2RlZmluZSBDUlRfOUMJCQkweDlDCj4gKyNkZWZpbmUgQ1JUX09T RF9ICQkweEEwIC8qIENSVCBPU0QgSG9yaXpvbnRhbCBTdGFydC9FbmQgKi8KPiArI2RlZmluZSBD UlRfT1NEX1YJCTB4QTQgLyogQ1JUIE9TRCBWZXJ0aWNhbCBTdGFydC9FbmQgKi8KPiArI2RlZmlu ZSBDUlRfT1NEX0FERFIJCTB4QTggLyogQ1JUIE9TRCBQYXR0ZXJuIEFkZHJlc3MgKi8KPiArI2Rl ZmluZSBDUlRfT1NEX0RJU1AJCTB4QUMgLyogQ1JUIE9TRCBPZmZzZXQgKi8KPiArI2RlZmluZSBD UlRfT1NEX1RIUkVTSAkJMHhCMCAvKiBDUlQgT1NEIFRocmVzaG9sZCAmIEFscGhhICovCj4gKyNk ZWZpbmUgQ1JUX0I0CQkJMHhCNAo+ICsjZGVmaW5lIENSVF9TVFNfVgkJMHhCOCAvKiBDUlQgU3Rh dHVzIFYgKi8KPiArI2RlZmluZSBDUlRfU0NSQVRDSAkJMHhCQyAvKiBTY3JhdGNocGFkICovCj4g KyNkZWZpbmUgQ1JUX0JCMF9BRERSCQkweEQwIC8qIENSVCBEaXNwbGF5IEJCMCBTdGFydGluZyBB ZGRyZXNzICovCj4gKyNkZWZpbmUgQ1JUX0JCMV9BRERSCQkweEQ0IC8qIENSVCBEaXNwbGF5IEJC MSBTdGFydGluZyBBZGRyZXNzICovCj4gKyNkZWZpbmUgQ1JUX0JCX0NPVU5UCQkweEQ4IC8qIENS VCBEaXNwbGF5IEJCIFRlcm1pbmFsIENvdW50ICovCj4gKyNkZWZpbmUgT1NEX0NPTE9SMQkJMHhF MCAvKiBPU0QgQ29sb3IgUGFsZXR0ZSBJbmRleCAxICYgMCAqLwo+ICsjZGVmaW5lIE9TRF9DT0xP UjIJCTB4RTQgLyogT1NEIENvbG9yIFBhbGV0dGUgSW5kZXggMyAmIDIgKi8KPiArI2RlZmluZSBP U0RfQ09MT1IzCQkweEU4IC8qIE9TRCBDb2xvciBQYWxldHRlIEluZGV4IDUgJiA0ICovCj4gKyNk ZWZpbmUgT1NEX0NPTE9SNAkJMHhFQyAvKiBPU0QgQ29sb3IgUGFsZXR0ZSBJbmRleCA3ICYgNiAq Lwo+ICsjZGVmaW5lIE9TRF9DT0xPUjUJCTB4RjAgLyogT1NEIENvbG9yIFBhbGV0dGUgSW5kZXgg OSAmIDggKi8KPiArI2RlZmluZSBPU0RfQ09MT1I2CQkweEY0IC8qIE9TRCBDb2xvciBQYWxldHRl IEluZGV4IDExICYgMTAgKi8KPiArI2RlZmluZSBPU0RfQ09MT1I3CQkweEY4IC8qIE9TRCBDb2xv ciBQYWxldHRlIEluZGV4IDEzICYgMTIgKi8KPiArI2RlZmluZSBPU0RfQ09MT1I4CQkweEZDIC8q IE9TRCBDb2xvciBQYWxldHRlIEluZGV4IDE1ICYgMTQgKi8KPiArCj4gKy8qIENUUkwxICovCj4g KyNkZWZpbmUgQ1JUX0NUUkxfRU4JCQlCSVQoMCkKPiArI2RlZmluZSBDUlRfQ1RSTF9IV19DVVJT T1JfRU4JCUJJVCgxKQo+ICsjZGVmaW5lIENSVF9DVFJMX09TRF9FTgkJCUJJVCgyKQo+ICsjZGVm aW5lIENSVF9DVFJMX0lOVEVSTEFDRUQJCUJJVCgzKQo+ICsjZGVmaW5lIENSVF9DVFJMX0NPTE9S X1JHQjU2NQkJKDAgPDwgNykKPiArI2RlZmluZSBDUlRfQ1RSTF9DT0xPUl9ZVVY0NDQJCSgxIDw8 IDcpCj4gKyNkZWZpbmUgQ1JUX0NUUkxfQ09MT1JfWFJHQjg4ODgJCSgyIDw8IDcpCj4gKyNkZWZp bmUgQ1JUX0NUUkxfQ09MT1JfUkdCODg4CQkoMyA8PCA3KQo+ICsjZGVmaW5lIENSVF9DVFJMX0NP TE9SX1lVVjQ0NF8yUkdCCSg1IDw8IDcpCj4gKyNkZWZpbmUgQ1JUX0NUUkxfQ09MT1JfWVVWNDIy CQkoNyA8PCA3KQo+ICsjZGVmaW5lIENSVF9DVFJMX0NPTE9SX01BU0sJCUdFTk1BU0soOSwgNykK PiArI2RlZmluZSBDUlRfQ1RSTF9IU1lOQ19ORUdBVElWRQkJQklUKDE2KQo+ICsjZGVmaW5lIENS VF9DVFJMX1ZTWU5DX05FR0FUSVZFCQlCSVQoMTcpCj4gKyNkZWZpbmUgQ1JUX0NUUkxfVkVSVElD QUxfSU5UUl9FTglCSVQoMzApCj4gKyNkZWZpbmUgQ1JUX0NUUkxfVkVSVElDQUxfSU5UUl9TVFMJ QklUKDMxKQo+ICsKPiArLyogQ1RSTDIgKi8KPiArI2RlZmluZSBDUlRfQ1RSTF9EQUNfRU4JCQlC SVQoMCkKPiArI2RlZmluZSBDUlRfQ1RSTF9WQkxBTktfTElORSh4KQkJKCgoeCkgPDwgMjApICYg Q1JUX0NUUkxfVkJMQU5LX0xJTkVfTUFTSykKPiArI2RlZmluZSBDUlRfQ1RSTF9WQkxBTktfTElO RV9NQVNLCUdFTk1BU0soMjAsIDMxKQo+ICsKPiArLyogQ1JUX0hPUklaMCAqLwo+ICsjZGVmaW5l IENSVF9IX1RPVEFMKHgpCQkJKHgpCj4gKyNkZWZpbmUgQ1JUX0hfREUoeCkJCQkoKHgpIDw8IDE2 KQo+ICsKPiArLyogQ1JUX0hPUklaMSAqLwo+ICsjZGVmaW5lIENSVF9IX1JTX1NUQVJUKHgpCQko eCkKPiArI2RlZmluZSBDUlRfSF9SU19FTkQoeCkJCQkoKHgpIDw8IDE2KQo+ICsKPiArLyogQ1JU X1ZJUlQwICovCj4gKyNkZWZpbmUgQ1JUX1ZfVE9UQUwoeCkJCQkoeCkKPiArI2RlZmluZSBDUlRf Vl9ERSh4KQkJCSgoeCkgPDwgMTYpCj4gKwo+ICsvKiBDUlRfVklSVDEgKi8KPiArI2RlZmluZSBD UlRfVl9SU19TVEFSVCh4KQkJKHgpCj4gKyNkZWZpbmUgQ1JUX1ZfUlNfRU5EKHgpCQkJKCh4KSA8 PCAxNikKPiArCj4gKy8qIENSVF9PRkZTRVQgKi8KPiArI2RlZmluZSBDUlRfRElTUF9PRkZTRVQo eCkJCSh4KQo+ICsjZGVmaW5lIENSVF9URVJNX0NPVU5UKHgpCQkoKHgpIDw8IDE2KQo+ICsKPiAr LyogQ1JUX1RIUk9EICovCj4gKyNkZWZpbmUgQ1JUX1RIUk9EX0xPVyh4KQkJKHgpCj4gKyNkZWZp bmUgQ1JUX1RIUk9EX0hJR0goeCkJCSgoeCkgPDwgOCkKPiArCj4gKy8qIERlZmF1bHQgVGhyZXNo b2xkIFNldGluZyAqLwo+ICsjZGVmaW5lIEc1X0NSVF9USFJPRF9WQUwJKENSVF9USFJPRF9MT1co MHgyNCkgfCBDUlRfVEhST0RfSElHSCgweDNDKSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNw ZWVkX2dmeF9jcnRjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAw MC4uZTJkMWQ3NDk3MzUyCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h c3BlZWQvYXNwZWVkX2dmeF9jcnRjLmMKPiBAQCAtMCwwICsxLDI0OCBAQAo+ICsvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKPiArLy8gQ29weXJpZ2h0IDIwMTggSUJNIENvcnBv cmF0aW9uCj4gKwo+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9y ZXNldC5oPgo+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4gKwo+ICsjaW5jbHVkZSA8ZHJt L2RybV9jcnRjX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KPiArI2lu Y2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9nZW1f Y21hX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Cj4gKyNpbmNsdWRl IDxkcm0vZHJtX3BhbmVsLmg+CgpJIHByZWZlciBpbmNsdWRlcyBzb3J0ZWQgYWxwaGFiZXRpY2Fs bHksIGJ1dCBubyByZXF1aXJlbWVudC4KCj4gKwo+ICsjaW5jbHVkZSAiYXNwZWVkX2dmeC5oIgo+ ICsKPiArc3RhdGljIHN0cnVjdCBhc3BlZWRfZ2Z4ICoKPiArZHJtX3BpcGVfdG9fYXNwZWVkX2dm eChzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCj4gK3sKPiArCXJldHVybiBj b250YWluZXJfb2YocGlwZSwgc3RydWN0IGFzcGVlZF9nZngsIHBpcGUpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IGFzcGVlZF9nZnhfc2V0X3BpeGVsX2ZtdChzdHJ1Y3QgYXNwZWVkX2dmeCAqcHJp diwgdTMyICpicHApCj4gK3sKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZwcml2LT5waXBl LmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gY3J0Yy0+ZGV2Owo+ICsJY29uc3Qg dTMyIGZvcm1hdCA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQ7Cj4g Kwl1MzIgY3RybDE7Cj4gKwo+ICsJY3RybDEgPSByZWFkbChwcml2LT5iYXNlICsgQ1JUX0NUUkwx KTsKPiArCWN0cmwxICY9IH5DUlRfQ1RSTF9DT0xPUl9NQVNLOwo+ICsKPiArCXN3aXRjaCAoZm9y bWF0KSB7Cj4gKwljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+ICsJCWRldl9kYmcoZHJtLT5kZXYs ICJTZXR0aW5nIHVwIFJHQjU2NSBtb2RlXG4iKTsKPiArCQljdHJsMSB8PSBDUlRfQ1RSTF9DT0xP Ul9SR0I1NjU7Cj4gKwkJKmJwcCA9IDE2Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBEUk1fRk9STUFU X1hSR0I4ODg4Ogo+ICsJCWRldl9kYmcoZHJtLT5kZXYsICJTZXR0aW5nIHVwIFhSR0I4ODg4IG1v ZGVcbiIpOwo+ICsJCWN0cmwxIHw9IENSVF9DVFJMX0NPTE9SX1hSR0I4ODg4Owo+ICsJCSpicHAg PSAzMjsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJZGV2X2Vycihkcm0tPmRldiwgIlVu aGFuZGxlZCBwaXhlbCBmb3JtYXQgJTA4eFxuIiwgZm9ybWF0KTsKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCX0KPiArCj4gKwl3cml0ZWwoY3RybDEsIHByaXYtPmJhc2UgKyBDUlRfQ1RSTDEpOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBhc3BlZWRfZ2Z4X2VuYWJs ZV9jb250cm9sbGVyKHN0cnVjdCBhc3BlZWRfZ2Z4ICpwcml2KQo+ICt7Cj4gKwl1MzIgY3RybDEg PSByZWFkbChwcml2LT5iYXNlICsgQ1JUX0NUUkwxKTsKPiArCXUzMiBjdHJsMiA9IHJlYWRsKHBy aXYtPmJhc2UgKyBDUlRfQ1RSTDIpOwo+ICsKPiArCS8qIFNDVTJDOiBzZXQgREFDIHNvdXJjZSBm b3IgZGlzcGxheSBvdXRwdXQgdG8gR3JhcGhpY3MgQ1JUIChHRlgpICovCj4gKwlyZWdtYXBfdXBk YXRlX2JpdHMocHJpdi0+c2N1LCAweDJjLCBCSVQoMTYpLCBCSVQoMTYpKTsKPiArCj4gKwl3cml0 ZWwoY3RybDEgfCBDUlRfQ1RSTF9FTiwgcHJpdi0+YmFzZSArIENSVF9DVFJMMSk7Cj4gKwl3cml0 ZWwoY3RybDIgfCBDUlRfQ1RSTF9EQUNfRU4sIHByaXYtPmJhc2UgKyBDUlRfQ1RSTDIpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBhc3BlZWRfZ2Z4X2Rpc2FibGVfY29udHJvbGxlcihzdHJ1Y3Qg YXNwZWVkX2dmeCAqcHJpdikKPiArewo+ICsJdTMyIGN0cmwxID0gcmVhZGwocHJpdi0+YmFzZSAr IENSVF9DVFJMMSk7Cj4gKwl1MzIgY3RybDIgPSByZWFkbChwcml2LT5iYXNlICsgQ1JUX0NUUkwy KTsKPiArCj4gKwl3cml0ZWwoY3RybDEgJiB+Q1JUX0NUUkxfRU4sIHByaXYtPmJhc2UgKyBDUlRf Q1RSTDEpOwo+ICsJd3JpdGVsKGN0cmwyICYgfkNSVF9DVFJMX0RBQ19FTiwgcHJpdi0+YmFzZSAr IENSVF9DVFJMMik7Cj4gKwo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnNjdSwgMHgyYywg QklUKDE2KSwgMCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9nZnhfY3J0Y19tb2Rl X3NldF9ub2ZiKHN0cnVjdCBhc3BlZWRfZ2Z4ICpwcml2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbSA9ICZwcml2LT5waXBlLmNydGMuc3RhdGUtPmFkanVzdGVkX21vZGU7Cj4g Kwl1MzIgY3RybDEsIGRfb2Zmc2V0LCB0X2NvdW50LCBicHA7Cj4gKwlpbnQgZXJyOwo+ICsKPiAr CWVyciA9IGFzcGVlZF9nZnhfc2V0X3BpeGVsX2ZtdChwcml2LCAmYnBwKTsKPiArCWlmIChlcnIp Cj4gKwkJcmV0dXJuOwo+ICsKPiArI2lmIDAKPiArCS8qIFRPRE86IHdlIGhhdmUgb25seSBiZWVu IGFibGUgdG8gdGVzdCB3aXRoIHRoZSA0ME1IeiBVU0IgY2xvY2suIFRoZQo+ICsJICogY2xvY2sg aXMgZml4ZWQsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQgaGVyZS4gKi8KPiArCWNsa19zZXRfcmF0 ZShwcml2LT5waXhlbF9jbGssIG0tPmNydGNfY2xvY2sgKiAxMDAwKTsKPiArI2VuZGlmCj4gKwo+ ICsJY3RybDEgPSByZWFkbChwcml2LT5iYXNlICsgQ1JUX0NUUkwxKTsKPiArCWN0cmwxICY9IH4o Q1JUX0NUUkxfSU5URVJMQUNFRCB8Cj4gKwkJCUNSVF9DVFJMX0hTWU5DX05FR0FUSVZFIHwKPiAr CQkJQ1JUX0NUUkxfVlNZTkNfTkVHQVRJVkUpOwo+ICsKPiArCWlmIChtLT5mbGFncyAmIERSTV9N T0RFX0ZMQUdfSU5URVJMQUNFKQo+ICsJCWN0cmwxIHw9IENSVF9DVFJMX0lOVEVSTEFDRUQ7Cj4g Kwo+ICsJaWYgKCEobS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BIU1lOQykpCj4gKwkJY3RybDEg fD0gQ1JUX0NUUkxfSFNZTkNfTkVHQVRJVkU7Cj4gKwo+ICsJaWYgKCEobS0+ZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX1BWU1lOQykpCj4gKwkJY3RybDEgfD0gQ1JUX0NUUkxfVlNZTkNfTkVHQVRJVkU7 Cj4gKwo+ICsJd3JpdGVsKGN0cmwxLCBwcml2LT5iYXNlICsgQ1JUX0NUUkwxKTsKPiArCj4gKwkv KiBIb3Jpem9udGFsIHRpbWluZyAqLwo+ICsJd3JpdGVsKENSVF9IX1RPVEFMKG0tPmh0b3RhbCAt IDEpIHwgQ1JUX0hfREUobS0+aGRpc3BsYXkgLSAxKSwKPiArCQkJcHJpdi0+YmFzZSArIENSVF9I T1JJWjApOwo+ICsJd3JpdGVsKENSVF9IX1JTX1NUQVJUKG0tPmhzeW5jX3N0YXJ0IC0gMSkgfCBD UlRfSF9SU19FTkQobS0+aHN5bmNfZW5kKSwKPiArCQkJcHJpdi0+YmFzZSArIENSVF9IT1JJWjEp Owo+ICsKPiArCj4gKwkvKiBWZXJ0aWNhbCB0aW1pbmcgKi8KPiArCXdyaXRlbChDUlRfVl9UT1RB TChtLT52dG90YWwgLSAxKSB8IENSVF9WX0RFKG0tPnZkaXNwbGF5IC0gMSksCj4gKwkJCXByaXYt PmJhc2UgKyBDUlRfVkVSVDApOwo+ICsJd3JpdGVsKENSVF9WX1JTX1NUQVJUKG0tPnZzeW5jX3N0 YXJ0KSB8IENSVF9WX1JTX0VORChtLT52c3luY19lbmQpLAo+ICsJCQlwcml2LT5iYXNlICsgQ1JU X1ZFUlQxKTsKPiArCj4gKwkvKgo+ICsJICogRGlzcGxheSBPZmZzZXQ6IGFkZHJlc3MgZGlmZmVy ZW5jZSBiZXR3ZWVuIGNvbnNlY3V0aXZlIHNjYW4gbGluZXMKPiArCSAqIFRlcm1pbmFsIENvdW50 OiBtZW1vcnkgc2l6ZSBvZiBvbmUgc2NhbiBsaW5lCj4gKwkgKi8KPiArCWRfb2Zmc2V0ID0gbS0+ aGRpc3BsYXkgKiBicHAgLyA4Owo+ICsJdF9jb3VudCA9IChtLT5oZGlzcGxheSAqIGJwcCArIDEy NykgLyAxMjg7Cj4gKwl3cml0ZWwoQ1JUX0RJU1BfT0ZGU0VUKGRfb2Zmc2V0KSB8IENSVF9URVJN X0NPVU5UKHRfY291bnQpLAo+ICsJCQlwcml2LT5iYXNlICsgQ1JUX09GRlNFVCk7Cj4gKwo+ICsJ LyoKPiArCSAqIFRocmVzaG9sZDogRklGTyB0aHJlc2hvbGRzIG9mIHJlZmlsbCBhbmQgc3RvcCAo MTYgYnl0ZSBjaHVua3MKPiArCSAqIHBlciBsaW5lLCByb3VuZGVkIHVwKQo+ICsJICovCj4gKwl3 cml0ZWwoRzVfQ1JUX1RIUk9EX1ZBTCwgcHJpdi0+YmFzZSArIENSVF9USFJPRCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9nZnhfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlICpwaXBlLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gKwkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQo+ICt7Cj4gKwlzdHJ1Y3QgYXNwZWVkX2dmeCAqcHJpdiA9IGRybV9waXBlX3RvX2FzcGVlZF9n ZngocGlwZSk7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmcGlwZS0+Y3J0YzsKPiArCj4g Kwlhc3BlZWRfZ2Z4X2NydGNfbW9kZV9zZXRfbm9mYihwcml2KTsKPiArCWFzcGVlZF9nZnhfZW5h YmxlX2NvbnRyb2xsZXIocHJpdik7Cj4gKwlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gK30K PiArCj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9nZnhfcGlwZV9kaXNhYmxlKHN0cnVjdCBkcm1fc2lt cGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSkKPiArewo+ICsJc3RydWN0IGFzcGVlZF9nZnggKnByaXYg PSBkcm1fcGlwZV90b19hc3BlZWRfZ2Z4KHBpcGUpOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gJnBpcGUtPmNydGM7Cj4gKwo+ICsJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiArCWFz cGVlZF9nZnhfZGlzYWJsZV9jb250cm9sbGVyKHByaXYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBhc3BlZWRfZ2Z4X3BpcGVfdXBkYXRlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAq cGlwZSwKPiArCQkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICt7 Cj4gKwlzdHJ1Y3QgYXNwZWVkX2dmeCAqcHJpdiA9IGRybV9waXBlX3RvX2FzcGVlZF9nZngocGlw ZSk7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmcGlwZS0+Y3J0YzsKPiArCXN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGlwZS0+cGxhbmUuc3RhdGUtPmZiOwo+ICsJc3RydWN0IGRy bV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZlbnQ7Cj4gKwlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2Jq ZWN0ICpnZW07Cj4gKwo+ICsJaWYgKCFjcnRjKQo+ICsJCXJldHVybjsKClRoaXMgY2FuJ3QgYmUg TlVMTCBzaW5jZSBpdCdzIGVtYmVkZGVkLgoKPiArCj4gKwlzcGluX2xvY2tfaXJxKCZjcnRjLT5k ZXYtPmV2ZW50X2xvY2spOwo+ICsJZXZlbnQgPSBjcnRjLT5zdGF0ZS0+ZXZlbnQ7Cj4gKwlpZiAo ZXZlbnQpIHsKPiArCQljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwo+ICsKPiArCQlpZiAoZHJt X2NydGNfdmJsYW5rX2dldChjcnRjKSA9PSAwKQo+ICsJCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2 ZW50KGNydGMsIGV2ZW50KTsKPiArCQllbHNlCj4gKwkJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2 ZW50KGNydGMsIGV2ZW50KTsKPiArCX0KPiArCXNwaW5fdW5sb2NrX2lycSgmY3J0Yy0+ZGV2LT5l dmVudF9sb2NrKTsKPiArCj4gKwlpZiAoIWZiKQo+ICsJCXJldHVybjsKPiArCj4gKwlnZW0gPSBk cm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKPiArCWlmICghZ2VtKQo+ICsJCXJldHVybjsK PiArCXdyaXRlbChnZW0tPnBhZGRyLCBwcml2LT5iYXNlICsgQ1JUX0FERFIpOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IGFzcGVlZF9nZnhfcGlwZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fc2ltcGxl X2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiArCQkJCSBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKPiArewo+ICsJcmV0dXJuIGRybV9nZW1fZmJfcHJlcGFyZV9mYigmcGlwZS0+cGxh bmUsIHBsYW5lX3N0YXRlKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBhc3BlZWRfZ2Z4X2VuYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQo+ICt7Cj4gKwlz dHJ1Y3QgYXNwZWVkX2dmeCAqcHJpdiA9IGRybV9waXBlX3RvX2FzcGVlZF9nZngocGlwZSk7Cj4g Kwl1MzIgcmVnID0gcmVhZGwocHJpdi0+YmFzZSArIENSVF9DVFJMMSk7Cj4gKwo+ICsJLyogQ2xl YXIgcGVuZGluZyBWQkxBTksgSVJRICovCj4gKwl3cml0ZWwocmVnIHwgQ1JUX0NUUkxfVkVSVElD QUxfSU5UUl9TVFMsIHByaXYtPmJhc2UgKyBDUlRfQ1RSTDEpOwo+ICsKPiArCXJlZyB8PSBDUlRf Q1RSTF9WRVJUSUNBTF9JTlRSX0VOOwo+ICsJd3JpdGVsKHJlZywgcHJpdi0+YmFzZSArIENSVF9D VFJMMSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9n ZnhfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQo+ ICt7Cj4gKwlzdHJ1Y3QgYXNwZWVkX2dmeCAqcHJpdiA9IGRybV9waXBlX3RvX2FzcGVlZF9nZngo cGlwZSk7Cj4gKwl1MzIgcmVnID0gcmVhZGwocHJpdi0+YmFzZSArIENSVF9DVFJMMSk7Cj4gKwo+ ICsJcmVnICY9IH5DUlRfQ1RSTF9WRVJUSUNBTF9JTlRSX0VOOwo+ICsJd3JpdGVsKHJlZywgcHJp di0+YmFzZSArIENSVF9DVFJMMSk7Cj4gKwo+ICsJLyogQ2xlYXIgcGVuZGluZyBWQkxBTksgSVJR ICovCj4gKwl3cml0ZWwocmVnIHwgQ1JUX0NUUkxfVkVSVElDQUxfSU5UUl9TVFMsIHByaXYtPmJh c2UgKyBDUlRfQ1RSTDEpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGRybV9zaW1wbGVfZGlz cGxheV9waXBlX2Z1bmNzIGFzcGVlZF9nZnhfZnVuY3MgPSB7Cj4gKwkuZW5hYmxlCQk9IGFzcGVl ZF9nZnhfcGlwZV9lbmFibGUsCj4gKwkuZGlzYWJsZQk9IGFzcGVlZF9nZnhfcGlwZV9kaXNhYmxl LAo+ICsJLnVwZGF0ZQkJPSBhc3BlZWRfZ2Z4X3BpcGVfdXBkYXRlLAo+ICsJLnByZXBhcmVfZmIJ PSBhc3BlZWRfZ2Z4X3BpcGVfcHJlcGFyZV9mYiwKCkFzIERhbmllbCBzYWlkIHlvdSBjYW4gdXNl IGRybV9nZW1fZmJfc2ltcGxlX2Rpc3BsYXlfcGlwZV9wcmVwYXJlX2ZiIGhlcmUuCgo+ICsJLmVu YWJsZV92YmxhbmsJPSBhc3BlZWRfZ2Z4X2VuYWJsZV92YmxhbmssCj4gKwkuZGlzYWJsZV92Ymxh bmsJPSBhc3BlZWRfZ2Z4X2Rpc2FibGVfdmJsYW5rLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0 IHVpbnQzMl90IGFzcGVlZF9nZnhfZm9ybWF0c1tdID0gewo+ICsJRFJNX0ZPUk1BVF9YUkdCODg4 OCwKPiArCURSTV9GT1JNQVRfUkdCNTY1LAo+ICt9Owo+ICsKPiAraW50IGFzcGVlZF9nZnhfY3Jl YXRlX3BpcGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiArewo+ICsJc3RydWN0IGFzcGVlZF9n ZnggKnByaXYgPSBkcm0tPmRldl9wcml2YXRlOwo+ICsKPiArCXJldHVybiBkcm1fc2ltcGxlX2Rp c3BsYXlfcGlwZV9pbml0KGRybSwgJnByaXYtPnBpcGUsICZhc3BlZWRfZ2Z4X2Z1bmNzLAo+ICsJ CQkJCSAgICBhc3BlZWRfZ2Z4X2Zvcm1hdHMsCj4gKwkJCQkJICAgIEFSUkFZX1NJWkUoYXNwZWVk X2dmeF9mb3JtYXRzKSwKPiArCQkJCQkgICAgTlVMTCwKPiArCQkJCQkgICAgJnByaXYtPmNvbm5l Y3Rvcik7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRf Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9hc3BlZWRfZ2Z4X2Rydi5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjZiODhkNjU4YWMxZgo+IC0t LSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfZHJ2 LmMKPiBAQCAtMCwwICsxLDI2OSBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCsKPiArLy8gQ29weXJpZ2h0IDIwMTggSUJNIENvcnBvcmF0aW9uCj4gKwo+ICsjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KPiArI2luY2x1ZGUg PGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2YuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L29mX3Jlc2VydmVkX21lbS5oPgo+ICsjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L3JlZ21hcC5oPgo+ICsjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgo+ICsK PiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2Ry bV9jcnRjX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KPiArI2luY2x1 ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxw ZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9z aW1wbGVfa21zX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4K PiArCj4gKyNpbmNsdWRlICJhc3BlZWRfZ2Z4LmgiCj4gKwo+ICsvKioKPiArICogRE9DOiBBU1BF RUQgR0ZYIERyaXZlcgo+ICsgKgo+ICsgKiBUaGlzIGRyaXZlciBpcyBmb3IgdGhlIEFTUEVFRCBC TUMgU29DJ3MgR0ZYIGRpc3BsYXkgaGFyZHdhcmUuIFRoaXMKPiArICogZHJpdmVyIHJ1bnMgb24g dGhlIEFSTSBiYXNlZCBCTUMgc3lzdGVtcywgdW5saWtlIHRoZSBhc3QgZHJpdmVyIHdoaWNoCj4g KyAqIHJ1bnMgb24gYSBob3N0IENQVSBhbmQgaXMgaXMgZm9yIGEgUENJIGdyYXBoaWNzIGRldmlj ZS4KCidpcyBpcycgLT4gJ2lzJwoKPiArICoKPiArICogVGhlIEFTVDI1MDAgc3VwcG9ydHMgYSB0 b3RhbCBvZiAzIG91dHB1dCBwYXRoczoKPiArICoKPiArICogICAxLiBWR0Egb3V0cHV0LCB0aGUg b3V0cHV0IHRhcmdldCBjYW4gY2hvb3NlIGVpdGhlciBvciBib3RoIHRvIHRoZSBEQUMKPiArICog ICBvciBEVk8gaW50ZXJmYWNlLgo+ICsgKgo+ICsgKiAgIDIuIEdyYXBoaWNzIENSVCBvdXRwdXQs IHRoZSBvdXRwdXQgdGFyZ2V0IGNhbiBjaG9vc2UgZWl0aGVyIG9yIGJvdGggdG8KPiArICogICB0 aGUgREFDIG9yIERWTyBpbnRlcmZhY2UuCj4gKyAqCj4gKyAqICAgMy4gVmlkZW8gaW5wdXQgZnJv bSBEVk8sIHRoZSB2aWRlbyBpbnB1dCBjYW4gYmUgdXNlZCBmb3IgdmlkZW8gZW5naW5lCj4gKyAq ICAgY2FwdHVyZSBvciBEQUMgZGlzcGxheSBvdXRwdXQuCj4gKyAqCj4gKyAqIE91dHB1dCBvcHRp b25zIGFyZSBzZWxlY3RlZCBpbiBTQ1UyQy4KPiArICoKPiArICogVGhlICJWR0EgbW9kZSIgZGV2 aWNlIGlzIHRoZSBQQ0kgYXR0YWNoZWQgY29udHJvbGxlci4gVGhlICJHcmFwaGljcyBDUlQiCj4g KyAqIGlzIHRoZSBBUk0ncyBpbnRlcm5hbCBkaXNwbGF5IGNvbnRyb2xsZXIuCj4gKyAqCj4gKyAq IFRoZSBkcml2ZXIgb25seSBzdXBwb3J0cyBhIHNpbXBsZSBjb25maWd1cmF0aW9uIGNvbnNpc3Rp bmcgb2YgYSA0ME1Iego+ICsgKiBwaXhlbCBjbG9jaywgZml4ZWQgYnkgaGFyZHdhcmUgbGltaXRh dGlvbnMsIGFuZCB0aGUgVkdBIG91dHB1dCBwYXRoLgo+ICsgKi8KPiArCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIGFzcGVlZF9nZnhfbW9kZV9jb25maWdfZnVu Y3MgPSB7Cj4gKwkuZmJfY3JlYXRlCQk9IGRybV9nZW1fZmJfY3JlYXRlLAo+ICsJLmF0b21pY19j aGVjawkJPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiArCS5hdG9taWNfY29tbWl0CQk9IGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdCwKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIGFzcGVlZF9n Znhfc2V0dXBfbW9kZV9jb25maWcoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiArewo+ICsJZHJt X21vZGVfY29uZmlnX2luaXQoZHJtKTsKPiArCj4gKwlkcm0tPm1vZGVfY29uZmlnLm1pbl93aWR0 aCA9IDA7Cj4gKwlkcm0tPm1vZGVfY29uZmlnLm1pbl9oZWlnaHQgPSAwOwo+ICsJZHJtLT5tb2Rl X2NvbmZpZy5tYXhfd2lkdGggPSA4MDA7Cj4gKwlkcm0tPm1vZGVfY29uZmlnLm1heF9oZWlnaHQg PSA2MDA7Cj4gKwlkcm0tPm1vZGVfY29uZmlnLmZ1bmNzID0gJmFzcGVlZF9nZnhfbW9kZV9jb25m aWdfZnVuY3M7Cj4gK30KPiArCj4gK3N0YXRpYyBpcnFyZXR1cm5fdCBhc3BlZWRfZ2Z4X2lycV9o YW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBkYXRhOwo+ICsJc3RydWN0IGFzcGVlZF9nZnggKnByaXYgPSBkcm0tPmRldl9wcml2YXRl Owo+ICsJdTMyIHJlZzsKPiArCj4gKwlyZWcgPSByZWFkbChwcml2LT5iYXNlICsgQ1JUX0NUUkwx KTsKPiArCj4gKwlpZiAocmVnICYgQ1JUX0NUUkxfVkVSVElDQUxfSU5UUl9TVFMpIHsKPiArCQlk cm1fY3J0Y19oYW5kbGVfdmJsYW5rKCZwcml2LT5waXBlLmNydGMpOwo+ICsJCXdyaXRlbChyZWcs IHByaXYtPmJhc2UgKyBDUlRfQ1RSTDEpOwo+ICsJCXJldHVybiBJUlFfSEFORExFRDsKPiArCX0K PiArCj4gKwlyZXR1cm4gSVJRX05PTkU7Cj4gK30KPiArCj4gKwo+ICsKPiArc3RhdGljIGludCBh c3BlZWRfZ2Z4X2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiArewo+ICsJc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkcm0tPmRldik7Cj4gKwlz dHJ1Y3QgYXNwZWVkX2dmeCAqcHJpdjsKPiArCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ICsJaW50 IHJldDsKPiArCj4gKwlwcml2ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqcHJp diksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFwcml2KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJ ZHJtLT5kZXZfcHJpdmF0ZSA9IHByaXY7Cj4gKwo+ICsJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291 cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKPiArCXByaXYtPmJhc2UgPSBkZXZtX2lvcmVt YXBfcmVzb3VyY2UoZHJtLT5kZXYsIHJlcyk7Cj4gKwlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQo+ ICsJCXJldHVybiBQVFJfRVJSKHByaXYtPmJhc2UpOwo+ICsKPiArCXByaXYtPnNjdSA9IHN5c2Nv bl9yZWdtYXBfbG9va3VwX2J5X2NvbXBhdGlibGUoImFzcGVlZCxhc3QyNTAwLXNjdSIpOwo+ICsJ aWYgKElTX0VSUihwcml2LT5zY3UpKSB7Cj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVk IHRvIGZpbmQgU0NVIHJlZ21hcFxuIik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+c2N1KTsK PiArCX0KPiArCj4gKwlyZXQgPSBvZl9yZXNlcnZlZF9tZW1fZGV2aWNlX2luaXQoZHJtLT5kZXYp Owo+ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwKPiArCQkJImZhaWxlZCB0 byBpbml0aWFsaXplIHJlc2VydmVkIG1lbTogJWRcbiIsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsK PiArCX0KPiArCj4gKwlyZXQgPSBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KGRybS0+ZGV2LCBE TUFfQklUX01BU0soMzIpKTsKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJmYWlsZWQgdG8gc2V0IERNQSBtYXNrOiAlZFxuIiwgcmV0KTsKPiArCQlyZXR1cm4gcmV0Owo+ ICsJfQo+ICsKPiArCXByaXYtPnJzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfZXhjbHVzaXZl KCZwZGV2LT5kZXYsIE5VTEwpOwo+ICsJaWYgKElTX0VSUihwcml2LT5yc3QpKSB7Cj4gKwkJZGV2 X2VycigmcGRldi0+ZGV2LAo+ICsJCQkibWlzc2luZyBvciBpbnZhbGlkIHJlc2V0IGNvbnRyb2xs ZXIgZGV2aWNlIHRyZWUgZW50cnkiKTsKPiArCQlyZXR1cm4gUFRSX0VSUihwcml2LT5yc3QpOwo+ ICsJfQo+ICsJcmVzZXRfY29udHJvbF9kZWFzc2VydChwcml2LT5yc3QpOwo+ICsKPiArCXByaXYt PmNsayA9IGRldm1fY2xrX2dldChkcm0tPmRldiwgTlVMTCk7Cj4gKwlpZiAoSVNfRVJSKHByaXYt PmNsaykpIHsKPiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsCj4gKwkJCSJtaXNzaW5nIG9yIGludmFs aWQgY2xrIGRldmljZSB0cmVlIGVudHJ5Iik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xr KTsKPiArCX0KPiArCWNsa19wcmVwYXJlX2VuYWJsZShwcml2LT5jbGspOwo+ICsKPiArCS8qIFNh bml0aXplIGNvbnRyb2wgcmVnaXN0ZXJzICovCj4gKwl3cml0ZWwoMCwgcHJpdi0+YmFzZSArIENS VF9DVFJMMSk7Cj4gKwl3cml0ZWwoMCwgcHJpdi0+YmFzZSArIENSVF9DVFJMMik7Cj4gKwo+ICsJ YXNwZWVkX2dmeF9zZXR1cF9tb2RlX2NvbmZpZyhkcm0pOwo+ICsKPiArCXJldCA9IGRybV92Ymxh bmtfaW5pdChkcm0sIDEpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlkZXZfZXJyKGRybS0+ZGV2 LCAiRmFpbGVkIHRvIGluaXRpYWxpc2UgdmJsYW5rXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJ fQo+ICsKPiArCXJldCA9IGFzcGVlZF9nZnhfY3JlYXRlX291dHB1dChkcm0pOwo+ICsJaWYgKHJl dCA8IDApIHsKPiArCQlkZXZfZXJyKGRybS0+ZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXRz XG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IGFzcGVlZF9nZnhfY3Jl YXRlX3BpcGUoZHJtKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJZGV2X2Vycihkcm0tPmRldiwg IkNhbm5vdCBzZXR1cCBzaW1wbGUgZGlzcGxheSBwaXBlXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ ICsJfQo+ICsKPiArCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoZHJtLT5kZXYsIHBsYXRmb3JtX2dl dF9pcnEocGRldiwgMCksCj4gKwkJCSAgICAgICBhc3BlZWRfZ2Z4X2lycV9oYW5kbGVyLCAwLCAi YXNwZWVkIGdmeCIsIGRybSk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoZHJtLT5k ZXYsICJGYWlsZWQgdG8gaW5zdGFsbCBJUlEgaGFuZGxlclxuIik7Cj4gKwkJcmV0dXJuIHJldDsK PiArCX0KPiArCj4gKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKPiArCj4gKwlkcm1fZmJk ZXZfZ2VuZXJpY19zZXR1cChkcm0sIDMyKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgYXNwZWVkX2dmeF91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiAr ewo+ICsJZHJtX2ttc19oZWxwZXJfcG9sbF9maW5pKGRybSk7Cj4gKwlkcm1fbW9kZV9jb25maWdf Y2xlYW51cChkcm0pOwo+ICsKPiArCWRybS0+ZGV2X3ByaXZhdGUgPSBOVUxMOwo+ICt9Cj4gKwo+ ICtERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhmb3BzKTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgZHJt X2RyaXZlciBhc3BlZWRfZ2Z4X2RyaXZlciA9IHsKPiArCS5kcml2ZXJfZmVhdHVyZXMgICAgICAg ID0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwKPiArCQkJCURSSVZFUl9QUklNRSB8IERS SVZFUl9BVE9NSUMgfAo+ICsJCQkJRFJJVkVSX0hBVkVfSVJRLAoKVGhlcmUncyBhIHZ0YWJsZSBv biB0aGUgR0VNIG9iamVjdCBub3csIHNvIHRoaXMgc2VjdGlvbjoKCj4gKwkuZ2VtX2ZyZWVfb2Jq ZWN0X3VubG9ja2VkID0gZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QsCj4gKwkuZ2VtX3ZtX29wcyAg ICAgICAgICAgICA9ICZkcm1fZ2VtX2NtYV92bV9vcHMsCj4gKwkuZHVtYl9jcmVhdGUgICAgICAg ICAgICA9IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlLAo+ICsJLnByaW1lX2hhbmRsZV90b19mZCAg ICAgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKPiArCS5wcmltZV9mZF90b19oYW5kbGUg ICAgID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCj4gKwkuZ2VtX3ByaW1lX2V4cG9ydCAg ICAgICA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAo+ICsJLmdlbV9wcmltZV9pbXBvcnQgICAgICAg PSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKPiArCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gZHJt X2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlLAo+ICsJLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFi bGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCj4gKwkuZ2VtX3ByaW1lX3Zt YXAgICAgICAgICA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAsCj4gKwkuZ2VtX3ByaW1lX3Z1bm1h cCAgICAgICA9IGRybV9nZW1fY21hX3ByaW1lX3Z1bm1hcCwKPiArCS5nZW1fcHJpbWVfbW1hcCAg ICAgICAgID0gZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCwKCkNhbiBiZSBzdWJzdGl0dXRlZCB3aXRo IHRoaXM6CgoJLmdlbV9jcmVhdGVfb2JqZWN0CT0gZHJtX2NtYV9nZW1fY3JlYXRlX29iamVjdF9k ZWZhdWx0X2Z1bmNzLAoJLmR1bWJfY3JlYXRlCQk9IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlLAoJ LnByaW1lX2hhbmRsZV90b19mZAk9IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkLAoJLnByaW1l X2ZkX3RvX2hhbmRsZQk9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAoJLmdlbV9wcmltZV9p bXBvcnRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCgkuZ2Vt X3ByaW1lX21tYXAJCT0gZHJtX2dlbV9wcmltZV9tbWFwLAoKPiArCS5mb3BzID0gJmZvcHMsCj4g KwkubmFtZSA9ICJhc3BlZWQtZ2Z4LWRybSIsCj4gKwkuZGVzYyA9ICJBU1BFRUQgR0ZYIERSTSIs Cj4gKwkuZGF0ZSA9ICIyMDE4MDMxOSIsCj4gKwkubWFqb3IgPSAxLAo+ICsJLm1pbm9yID0gMCwK PiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFzcGVlZF9nZnhf bWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAiYXNwZWVkLGFzdDI0MDAtZ2Z4IiB9LAo+ ICsJeyAuY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjUwMC1nZngiIH0sCj4gKwl7IH0KPiArfTsK PiArCj4gK3N0YXRpYyBpbnQgYXNwZWVkX2dmeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlkcm0gPSBkcm1fZGV2X2FsbG9jKCZhc3BlZWRfZ2Z4X2RyaXZlciwgJnBkZXYtPmRldik7 Cj4gKwlpZiAoSVNfRVJSKGRybSkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoZHJtKTsKPiArCj4gKwly ZXQgPSBhc3BlZWRfZ2Z4X2xvYWQoZHJtKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnJfZnJl ZTsKPiArCj4gKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7Cj4gKwlpZiAocmV0KQo+ ICsJCWdvdG8gZXJyX3VubG9hZDsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl91bmxvYWQ6 Cj4gKwlhc3BlZWRfZ2Z4X3VubG9hZChkcm0pOwo+ICtlcnJfZnJlZToKPiArCWRybV9kZXZfcHV0 KGRybSk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBhc3BlZWRf Z2Z4X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Cj4gKwo+ICsJZHJt X2Rldl91bnJlZ2lzdGVyKGRybSk7Cj4gKwlhc3BlZWRfZ2Z4X3VubG9hZChkcm0pOwo+ICsJZHJt X2Rldl9wdXQoZHJtKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgYXNwZWVkX2dmeF9wbGF0Zm9ybV9kcml2ZXIgPSB7Cj4gKwkucHJv YmUJCT0gYXNwZWVkX2dmeF9wcm9iZSwKPiArCS5yZW1vdmUJCT0gYXNwZWVkX2dmeF9yZW1vdmUs Cj4gKwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0gImFzcGVlZF9nZngiLAo+ICsJCS5vZl9tYXRj aF90YWJsZSA9IGFzcGVlZF9nZnhfbWF0Y2gsCj4gKwl9LAo+ICt9Owo+ICsKPiArbW9kdWxlX3Bs YXRmb3JtX2RyaXZlcihhc3BlZWRfZ2Z4X3BsYXRmb3JtX2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVf QVVUSE9SKCJKb2VsIFN0YW5sZXkgPGpvZWxAam1zLmlkLmF1PiIpOwo+ICtNT0RVTEVfREVTQ1JJ UFRJT04oIkFTUEVFRCBCTUMgRFJNL0tNUyBkcml2ZXIiKTsKPiArTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfb3V0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL2FzcGVlZF9nZnhfb3V0LmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uN2QyMDU3ZTAwMDU2Cj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3BlZWQvYXNwZWVkX2dmeF9vdXQuYwo+IEBA IC0wLDAgKzEsNDkgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCj4g Ky8vIENvcHlyaWdodCAyMDE4IElCTSBDb3Jwb3JhdGlvbgo+ICsKPiArI2luY2x1ZGUgPGRybS9k cm1QLmg+CgpTYW1lIGhlcmUsIGRvbid0IGluY2x1ZGUgZHJtUC5oCgo+ICsjaW5jbHVkZSA8ZHJt L2RybV9hdG9taWNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9w cm9iZV9oZWxwZXIuaD4KPiArCj4gKyNpbmNsdWRlICJhc3BlZWRfZ2Z4LmgiCj4gKwo+ICtzdGF0 aWMgaW50IGFzcGVlZF9nZnhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gK3sKPiArCXJldHVybiBkcm1fYWRkX21vZGVzX25vZWRpZChjb25uZWN0b3IsIDgwMCwg NjAwKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdAo+ICtkcm1fY29ubmVjdG9yX2hl bHBlcl9mdW5jcyBhc3BlZWRfZ2Z4X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gKwkuZ2V0 X21vZGVzID0gYXNwZWVkX2dmeF9nZXRfbW9kZXMsCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBh c3BlZWRfZ2Z4X2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gK3sKPiArCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+ICsJZHJt X2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBhc3BlZWRfZ2Z4X2Nvbm5lY3Rvcl9mdW5jcyA9IHsK PiArCS5maWxsX21vZGVzCQk9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rl cywKPiArCS5kZXN0cm95CQk9IGFzcGVlZF9nZnhfY29ubmVjdG9yX2Rlc3Ryb3ksCgpBcyBEYW5p ZWwgc2FpZCwgeW91IGNhbiB1c2UgZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwIGRpcmVjdGx5IGhlcmUu CgpPdGhlcndpc2UgbG9va3MgZ29vZDoKClJldmlld2VkLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5v cmFsZkB0cm9ubmVzLm9yZz4KCj4gKwkucmVzZXQJCQk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9yZXNldCwKPiArCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlCT0gZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9 IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICt9Owo+ICsKPiAr aW50IGFzcGVlZF9nZnhfY3JlYXRlX291dHB1dChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQo+ICt7 Cj4gKwlzdHJ1Y3QgYXNwZWVkX2dmeCAqcHJpdiA9IGRybS0+ZGV2X3ByaXZhdGU7Cj4gKwlpbnQg cmV0Owo+ICsKPiArCXByaXYtPmNvbm5lY3Rvci5kcG1zID0gRFJNX01PREVfRFBNU19PRkY7Cj4g Kwlwcml2LT5jb25uZWN0b3IucG9sbGVkID0gMDsKPiArCWRybV9jb25uZWN0b3JfaGVscGVyX2Fk ZCgmcHJpdi0+Y29ubmVjdG9yLAo+ICsJCQkJICZhc3BlZWRfZ2Z4X2Nvbm5lY3Rvcl9oZWxwZXJf ZnVuY3MpOwo+ICsJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGRybSwgJnByaXYtPmNvbm5lY3Rv ciwKPiArCQkJCSAmYXNwZWVkX2dmeF9jb25uZWN0b3JfZnVuY3MsCj4gKwkJCQkgRFJNX01PREVf Q09OTkVDVE9SX1Vua25vd24pOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+IAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=