Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp1463255iof; Tue, 7 Jun 2022 06:11:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhNNFDkKot2GNToIEh14rdi/2Gxuc+D6ngBibS86otFWa6yjnzElX7WiCf+Wtjc0cuiVWt X-Received: by 2002:a17:906:90cf:b0:70b:43a2:658b with SMTP id v15-20020a17090690cf00b0070b43a2658bmr24373531ejw.450.1654607509407; Tue, 07 Jun 2022 06:11:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654607509; cv=none; d=google.com; s=arc-20160816; b=d//M2NXgLGl/sq0P9kERQ7pNvowOd5gAda596J8H4m1z2td/zZCA/+ypzTngC4LoeX vw/9pF64kdOwZ03DQ3yRMf07qq21K1m/198Q76ZALE0Zb0LR+lGgzI8FuR9LBvm3mTIT YuG0ZnzOE3aRNniOmyPxtBuTsQ114umypt3/zmXIfv/BdQ3++47zsxnEbkR2L3NN/oml 53FKguj3ASN1xMUyVLMqjm5Kt0k2LIYeRoOWXOawTM8zDrA8WIDgdV8u6bvMdGFEZbl0 wGluIsU1AuKCvM9xFnhgznhm9h5kdCZ0Zp+1SuNdG2qEC2Z22wFmuw/keRo1NP8bvGOq izLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :dkim-signature:dkim-signature; bh=Uzb2/tBpOHSxmUjmK6OCR7izYyQ+pUYCE4qqD8/hw8c=; b=fHqYbntaeoXsyDFjC43AjRCG7F3R8OOAvJujvIn1O93OOGdifl8I5taQS+hvO9xNeX 5kLF2VG+VXQDU3cb4AreyKo6nBWI+cusm5SvcXF7yo4FUe4NYmsG36++0WTaCUyDB5wL WLZZHGJc5tfULhK+wtN+ttazOEyoN4Femu2mqP9c67K45y7i5U0/RbkMc3eu93obQfbj oxLCkJAs/K5LCcEjgOl0bc9y362Ux1/GkEj/qAq7FqSn4QyYXttLEu1kJFmyQo1/eHIH ia4qvtSptnbV84MEtYA0IpqtT/B0q7sfnMOArDiCUBuyX5jaFxyGa+NxD4THWVVpdNPU V9/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="XIT/RDqY"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dp22-20020a170906c15600b006fe95bb93b3si14200303ejc.861.2022.06.07.06.11.22; Tue, 07 Jun 2022 06:11:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="XIT/RDqY"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242891AbiFGLae (ORCPT + 99 others); Tue, 7 Jun 2022 07:30:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241841AbiFGLac (ORCPT ); Tue, 7 Jun 2022 07:30:32 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 034689A9A8 for ; Tue, 7 Jun 2022 04:30:29 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B516A1F920; Tue, 7 Jun 2022 11:30:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1654601427; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Uzb2/tBpOHSxmUjmK6OCR7izYyQ+pUYCE4qqD8/hw8c=; b=XIT/RDqYdGldqFejr51eZOo6pKi49GY41ZUONUA0oSULhnN/5w/cleK7F6eo9JQOTFL/FA bnra10PZFxlht/35eN6hzWxpGN+wu5qpyDhX+sokIwAlLVePp9CHd7LIyIXpujo+inARpJ jotEBrql3kw7+OnjpSbLncO+/j1wQCc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1654601427; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Uzb2/tBpOHSxmUjmK6OCR7izYyQ+pUYCE4qqD8/hw8c=; b=uSh5xmesvpGQmfFxyyR0u1vg2qjAfUEzXXs73AB7zkJarmgkS/wVzI1FCUHZo4ZeQBhxVj l+vueg14kYVRgmCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6FE4613638; Tue, 7 Jun 2022 11:30:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Y6BzGtM2n2LdbAAAMHmgww (envelope-from ); Tue, 07 Jun 2022 11:30:27 +0000 Message-ID: Date: Tue, 7 Jun 2022 13:30:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH v5] drm/ast: Create the driver for ASPEED proprietory Display-Port Content-Language: en-US To: KuoHsiang Chou , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: kernel test robot , hungju_huang@aspeedtech.com, airlied@linux.ie, tommy_huang@aspeedtech.com, airlied@redhat.com, arc_sung@aspeedtech.com, luke_chen@aspeedtech.com References: <202206071218.LWKSPm1P-lkp@intel.com> <20220607084927.38432-1-kuohsiang_chou@aspeedtech.com> From: Thomas Zimmermann In-Reply-To: <20220607084927.38432-1-kuohsiang_chou@aspeedtech.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------p6IIyWgGff3UfrtRl3d7GOsd" X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------p6IIyWgGff3UfrtRl3d7GOsd Content-Type: multipart/mixed; boundary="------------N4srDtER4dOhU45FvAM8PSkQ"; protected-headers="v1" From: Thomas Zimmermann To: KuoHsiang Chou , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: kernel test robot , hungju_huang@aspeedtech.com, airlied@linux.ie, tommy_huang@aspeedtech.com, airlied@redhat.com, arc_sung@aspeedtech.com, luke_chen@aspeedtech.com Message-ID: Subject: Re: [PATCH v5] drm/ast: Create the driver for ASPEED proprietory Display-Port References: <202206071218.LWKSPm1P-lkp@intel.com> <20220607084927.38432-1-kuohsiang_chou@aspeedtech.com> In-Reply-To: <20220607084927.38432-1-kuohsiang_chou@aspeedtech.com> --------------N4srDtER4dOhU45FvAM8PSkQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGksDQoNCnRoYW5rcyBmb3IgdGhlIHVwZGF0ZSwgYnV0IHRoZSBjaGFuZ2UgaXMgYWxyZWFk eSBpbiB0aGUgRFJNIHRyZWUuIFlvdSANCm5lZWQgdG8gd3JpdGUgYSBwYXRjaCBvbiB0b3Ag b2YgdGhlIGxhdGVzdCBEUk0gdHJlZS4gU2VlIFsxXS4NCg0KQmVzdCByZWdhcmRzDQpUaG9t YXMNCg0KWzFdIGh0dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS10aXAvDQoN CkFtIDA3LjA2LjIyIHVtIDEwOjQ5IHNjaHJpZWIgS3VvSHNpYW5nIENob3U6DQo+IFYxOg0K PiAxLiBUaGUgTUNVIEZXIGNvbnRyb2xpbmcgQVNQRUVEIERQIGlzIGxvYWRlZCBieSBCTUMg Ym9vdCBsb2FkZXIuDQo+IDIuIERyaXZlciBzdGFydHMgYWZ0ZXIgQ1JbMzoxXSA9PSAxMTFi IHRoYXQgaW5kaWNhdGVzIFR4IGlzIEFTVERQLA0KPiAgICAgYW5kIENSRDFbNV0gaGFzIGJl ZW4gYXNzZXJ0ZWQgYnkgQk1WQyBib290IGxvYWRlci4NCj4gMy4gRURJRCBpcyBwcmlvcml0 aXplZCBieSBEUCBtb25pdG9yLg0KPiA0LiBEUCdzIEVESUQgaGFzIGhpZ2ggcHJpb3JpdHkg dG8gZGVjaWRlIHJlc29sdXRpb24gc3VwcG9ydGluZy4NCj4gDQo+IFYyOg0KPiBNb2R1bGVz IGRlc2NyaXB0aW9uOg0KPiAxLiBBU1REUCAoQVNQRUVEIERpc3BsYXlQb3J0KSBpcyBjb250 cm9sbGVkIGJ5IGRlZGljYXRlZA0KPiAgICAgQVNULU1DVSAoQVNQRUVEIHByb3ByaWF0YXJ5 IE1DVSkuDQo+IDIuIE1DVSBpcyBsb29waW5nIGluIGNoYXJnZWQgb2YgSFBELCBSZWFkIEVE SUQsIExpbmsgVHJhaW5pbmcgd2l0aA0KPiAgICAgRFAgc2luay4NCj4gMy4gQVNURFAgYW5k IEFTVC1NVUMgcmVzaWRlIGluIEJNQyAoQmFzZWJvYXJkIE1hbmFnZW1lbnQgY29udHJvbGxl cikNCj4gICAgIGFkZHJlc3Npbmctc3BhY2UuDQo+IDQuIEFTUEVFRCBEUk0gZHJpdmVyIHJl cXVlc3RzIE1DVSB0byBnZXQgSFBEIGFuZCBFRElEIGJ5IENSLXNjcmF0Y2hlZA0KPiAgICAg cmVnaXN0ZXIuDQo+IA0KPiBCb290aW5nIHNlcXVlbmNlOg0KPiAxLiBDaGVjayBpZiBUWCBp cyBBU1REUAkJCQkJLy8gYXN0X2RwX2xhdW5jaCgpDQo+IDIuIENoZWNrIGlmIERQLU1DVSBG VyBoYXMgbG9hZGVkCQkJCQkvLyBhc3RfZHBfbGF1bmNoKCkNCj4gMy4gUmVhZCBFRElECQkJ CQkvLyBhc3RfZHBfcmVhZF9lZGlkKCkNCj4gNC4gUmVzb2x1dGlvbiBzd2l0Y2gJCQkJCS8v IGFzdF9kcF9TZXRPdXRwdXQoKQ0KPiANCj4gVjM6DQo+IDEuIFJlbW92ZSB1bm5lZWRlZCBz ZW1pY29sb24uDQo+IDIuIEFwcGx5IHRvIGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3Jn L2RybS9kcm0sIGluc3RlYWQgb2YNCj4gICAgIGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Au b3JnL2RybS9kcm0tbWlzYw0KPiAzLiBSZXNvbHZlIGF1dG8gYnVpbGQgdGVzdCBXQVJOSU5H cyBvbiBWMSBwYXRjaC4NCj4gDQo+IFY0Og0KPiAxLiBTeW5jIGNvZGUtYmFzZSB3aXRoIGtl cm5lbCA1LjE3X3JjNg0KPiAyLiBSZW1vdmUgdGhlIGRlZmluZSBvZiBEUENvbnRyb2xQb3dl ciwgYmVjYXVzZSBEUCBjaGlwcyBuZWVkIHRvIGJlDQo+ICAgICBwb3dlcmVkIG9uIHRvIGJl IHVzZWQuDQo+IDMuIFJlbW92ZSB0aGUgc3dpdGNoZXMgb2YgUEhZIGFuZCBEaXNwbGF5IGZy b20gRURJRCBwcm9jZWR1cmUuDQo+IDQuIFJldmlzZSBpbmNyZWFpbmcgZGVsYXkgdG8gZml4 ZWQgZGVsYXksIGJlY2F1c2UgdGhpcyB2ZXJzaW9uIGtlcm5lbA0KPiAgICAgZG9lc24ndCBk ZXRlY3QgbWluaXRvciBjb25zaXN0ZW5udGx5Lg0KPiA1LiBDcmVhdGUgY2xlYW4tdXAgY29k ZSB1c2VkIGZvciByZXNldCBvZiBwb3dlciBzdGF0ZSBvbiBlcnJvcnMgd2l0aA0KPiAgICAg LUVJTyBtYW5uZXIuDQo+IDYuIFJldmlzZSB0aGUgRFAgZGV0ZWN0aW9uIGJ5IFRYIHR5cGUg YW5kIGl0cyBEUC1GVyBzdGF0dXMgZHVyaW5nDQo+ICAgICBib290aW5nIGFuZCByZXN1bWUu DQo+IDcuIENvcnJlY3QgdGhlIENhbWVsQ2FzZSBTdHlsZS4NCj4gOC4gVXNlIHJlZ2lzdGVy IHJlYWRpbmcgd2hpbGUgbmVlZGluZywgYW5kIHJlbW92ZSB0byBob2xkIGZ1bGwNCj4gICAg IHJlZ2lzdGVyLg0KPiA5LiBJbnN0ZWFkIG9mICd1OCcsIHJldmlzZSB0byAnYm9vbCcgb24g c3d3aXRjaCBvZiBQSFkgYW5kIHZpZGVvLg0KPiAxMC5Db3JyZWN0IHR5cG8NCj4gMTEuUmVt b3ZlIHRoZSBkdXBsaWNhdGVkIGNvcHkgb2YgVFggZGVmaW5pdGlvbi4NCj4gMTIuVXNlIEVE SURfTEVOR1RIIGFzIHRoZSBjb25zdGFudCBvZiAxMjguDQo+IA0KPiBWNToNCj4gMS5GaXhl ZCBzcGFyc2U6Y2FzdCB0cnVuY2F0ZXMgYml0cyBmb3JtIGNvbnN0YW50IHZhbHVlICgpY2Fz dA0KPiAgICB0cnVuY2F0ZXMgYml0cyBmcm9tIGNvbnN0YW50IHZhbHVlIChmZmZmZmZmZmZm ZmZmZjAwIGJlY29tZXMgMCkNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEt1b0hzaWFuZyBDaG91 IDxrdW9oc2lhbmdfY2hvdUBhc3BlZWR0ZWNoLmNvbT4NCj4gUmVwb3J0ZWQtYnk6IGtlcm5l bCB0ZXN0IHJvYm90IDxsa3BAaW50ZWwuY29tPg0KPiAtLS0NCj4gICBkcml2ZXJzL2dwdS9k cm0vYXN0L01ha2VmaWxlICAgfCAgIDIgKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9kcC5jICAgfCAyODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAg ZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggIHwgMTE1ICsrKysrKysrKysrKysrDQo+ ICAgZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jIHwgICA1ICstDQo+ICAgZHJpdmVy cy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jIHwgMTI0ICsrKysrKysrKysrKysrLQ0KPiAgIGRy aXZlcnMvZ3B1L2RybS9hc3QvYXN0X3Bvc3QuYyB8ICAgNCArLQ0KPiAgIDYgZmlsZXMgY2hh bmdlZCwgNTI0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQo+ICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2RwLmMNCj4gDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2Fz dC9NYWtlZmlsZQ0KPiBpbmRleCAyMWY3MTE2MGIuLjVhNTNjZTUxZiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYXN0L01ha2VmaWxlDQo+IEBAIC0zLDYgKzMsNiBAQA0KPiAgICMgTWFrZWZpbGUgZm9y IHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQg Zm9yIHRoZQ0KPiAgICMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBp biBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuDQo+IA0KPiAtYXN0LXkgOj0gYXN0X2Rydi5v IGFzdF9pMmMubyBhc3RfbWFpbi5vIGFzdF9tbS5vIGFzdF9tb2RlLm8gYXN0X3Bvc3QubyBh c3RfZHA1MDEubw0KPiArYXN0LXkgOj0gYXN0X2Rydi5vIGFzdF9pMmMubyBhc3RfbWFpbi5v IGFzdF9tbS5vIGFzdF9tb2RlLm8gYXN0X3Bvc3QubyBhc3RfZHA1MDEubyBhc3RfZHAubw0K PiANCj4gICBvYmotJChDT05GSUdfRFJNX0FTVCkgOj0gYXN0Lm8NCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9kcC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMC4uMWFl MTJjNDA3DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfZHAuYw0KPiBAQCAtMCwwICsxLDI4MiBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjANCj4gKy8vIENvcHlyaWdodCAoYykgMjAyMSwgQVNQRUVEIFRlY2hu b2xvZ3kgSW5jLg0KPiArLy8gQXV0aG9yczogS3VvSHNpYW5nIENob3UgPGt1b2hzaWFuZ19j aG91QGFzcGVlZHRlY2guY29tPg0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvZmlybXdhcmUu aD4NCj4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPiArI2luY2x1ZGUgPGRybS9kcm1f cHJpbnQuaD4NCj4gKyNpbmNsdWRlICJhc3RfZHJ2LmgiDQo+ICsNCj4gK2ludCBhc3RfYXN0 ZHBfcmVhZF9lZGlkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU4ICplZGlkZGF0YSkNCj4g K3sNCj4gKwlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IHRvX2FzdF9wcml2YXRlKGRldik7 DQo+ICsJdTggaSA9IDAsIGogPSAwOw0KPiArDQo+ICsJLyoNCj4gKwkgKiBDUkQxW2I1XTog RFAgTUNVIEZXIGlzIGV4ZWN1dGluZw0KPiArCSAqIENSRENbYjBdOiBEUCBsaW5rIHN1Y2Nl c3MNCj4gKwkgKiBDUkRGW2IwXTogRFAgSFBEDQo+ICsJICogQ1JFNVtiMF06IEhvc3QgcmVh ZGluZyBFRElEIHByb2Nlc3MgaXMgZG9uZQ0KPiArCSAqLw0KPiArCWlmICghKGFzdF9nZXRf aW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweEQxLCBBU1REUF9NQ1Vf RldfRVhFQ1VUSU5HKSAmJg0KPiArCQlhc3RfZ2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNU X0lPX0NSVENfUE9SVCwgMHhEQywgQVNURFBfTElOS19TVUNDRVNTKSAmJg0KPiArCQlhc3Rf Z2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhERiwgQVNURFBf SFBEKSAmJg0KPiArCQlhc3RfZ2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENf UE9SVCwgMHhFNSwNCj4gKwkJCQkJCQkJQVNURFBfSE9TVF9FRElEX1JFQURfRE9ORV9NQVNL KSkpIHsNCj4gKwkJZ290byBlcnJfYXN0ZHBfZWRpZF9ub3RfcmVhZHk7DQo+ICsJfQ0KPiAr DQo+ICsJYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4 RTUsICh1OCkgfkFTVERQX0hPU1RfRURJRF9SRUFEX0RPTkVfTUFTSywNCj4gKwkJCQkJCQkw eDAwKTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKSB7DQo+ICsJCS8qDQo+ ICsJCSAqIENSRTRbNzowXTogUmVhZC1Qb2ludGVyIGZvciBFRElEIChVbml0OiA0Ynl0ZXMp OyB2YWxpZCByYW5nZTogMH42NA0KPiArCQkgKi8NCj4gKwkJYXN0X3NldF9pbmRleF9yZWdf bWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4RTQsDQo+ICsJCQkJCUFTVERQX0FORF9D TEVBUl9NQVNLLCAodTgpIGkpOw0KPiArCQlqID0gMDsNCj4gKw0KPiArCQkvKg0KPiArCQkg KiBDUkQ3W2IwXTogdmFsaWQgZmxhZyBmb3IgRURJRA0KPiArCQkgKiBDUkQ2W2IwXTogbWly cm9yIHJlYWQgcG9pbnRlciBmb3IgRURJRA0KPiArCQkgKi8NCj4gKwkJd2hpbGUgKChhc3Rf Z2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhENywNCj4gKwkJ CQlBU1REUF9FRElEX1ZBTElEX0ZMQUdfTUFTSykgIT0gMHgwMSkgfHwNCj4gKwkJCShhc3Rf Z2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhENiwNCj4gKwkJ CQkJCUFTVERQX0VESURfUkVBRF9QT0lOVEVSX01BU0spICE9IGkpKSB7DQo+ICsJCQkvKg0K PiArCQkJICogRGVsYXkgYXJlIGdldHRpbmcgbG9uZ2VyIHdpdGggZWFjaCByZXRyeS4NCj4g KwkJCSAqIDEuIFRoZSBEZWxheXMgYXJlIG9mdGVuIDIgbG9vcHMgd2hlbiB1c2VycyByZXF1 ZXN0ICJEaXNwbGF5IFNldHRpbmdzIg0KPiArCQkJICoJICBvZiByaWdodC1jbGljayBvZiBt b3VzZS4NCj4gKwkJCSAqIDIuIFRoZSBEZWxheXMgYXJlIG9mdGVuIGxvbmdlciBhIGxvdCB3 aGVuIHN5c3RlbSByZXN1bWUgZnJvbSBTMy9TNC4NCj4gKwkJCSAqLw0KPiArCQkJbWRlbGF5 KGorMSk7DQo+ICsNCj4gKwkJCWlmICghKGFzdF9nZXRfaW5kZXhfcmVnX21hc2soYXN0LCBB U1RfSU9fQ1JUQ19QT1JULCAweEQxLA0KPiArCQkJCQkJCUFTVERQX01DVV9GV19FWEVDVVRJ TkcpICYmDQo+ICsJCQkJYXN0X2dldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRD X1BPUlQsIDB4REMsDQo+ICsJCQkJCQkJQVNURFBfTElOS19TVUNDRVNTKSAmJg0KPiArCQkJ CWFzdF9nZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweERGLCBB U1REUF9IUEQpKSkgew0KPiArCQkJCWdvdG8gZXJyX2FzdGRwX2p1bXBfb3V0X2xvb3Bfb2Zf ZWRpZDsNCj4gKwkJCX0NCj4gKw0KPiArCQkJaisrOw0KPiArCQkJaWYgKGogPiAyMDApDQo+ ICsJCQkJZ290byBlcnJfYXN0ZHBfanVtcF9vdXRfbG9vcF9vZl9lZGlkOw0KPiArCQl9DQo+ ICsNCj4gKwkJKihlZGlkZGF0YSkgPSBhc3RfZ2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNU X0lPX0NSVENfUE9SVCwNCj4gKwkJCQkJCQkweEQ4LCBBU1REUF9FRElEX1JFQURfREFUQV9N QVNLKTsNCj4gKwkJKihlZGlkZGF0YSArIDEpID0gYXN0X2dldF9pbmRleF9yZWdfbWFzayhh c3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4RDksDQo+ICsJCQkJCQkJCUFTVERQX0VESURfUkVB RF9EQVRBX01BU0spOw0KPiArCQkqKGVkaWRkYXRhICsgMikgPSBhc3RfZ2V0X2luZGV4X3Jl Z19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhEQSwNCj4gKwkJCQkJCQkJQVNURFBf RURJRF9SRUFEX0RBVEFfTUFTSyk7DQo+ICsJCSooZWRpZGRhdGEgKyAzKSA9IGFzdF9nZXRf aW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweERCLA0KPiArCQkJCQkJ CQlBU1REUF9FRElEX1JFQURfREFUQV9NQVNLKTsNCj4gKw0KPiArCQlpZiAoaSA9PSAzMSkg ew0KPiArCQkJLyoNCj4gKwkJCSAqIEZvciAxMjgtYnl0ZXMgRURJRF8xLjMsDQo+ICsJCQkg KiAxLiBBZGQgdGhlIHZhbHVlIG9mIEJ5dGVzLTEyNiB0byBCeXRlcy0xMjcuDQo+ICsJCQkg KgkJVGhlIEJ5dGVzLTEyNyBpcyBDaGVja3N1bS4gU3VtIG9mIGFsbCAxMjhieXRlcyBzaG91 bGQNCj4gKwkJCSAqCQllcXVhbCAwCShtb2QgMjU2KS4NCj4gKwkJCSAqIDIuIE1vZGlmeSBC eXRlcy0xMjYgdG8gYmUgMC4NCj4gKwkJCSAqCQlUaGUgQnl0ZXMtMTI2IGluZGljYXRlcyB0 aGUgTnVtYmVyIG9mIGV4dGVuc2lvbnMgdG8NCj4gKwkJCSAqCQlmb2xsb3cuIDAgcmVwcmVz ZW50cyBub2V4dGVuc2lvbnMuDQo+ICsJCQkgKi8NCj4gKwkJCSooZWRpZGRhdGEgKyAzKSA9 ICooZWRpZGRhdGEgKyAzKSArICooZWRpZGRhdGEgKyAyKTsNCj4gKwkJCSooZWRpZGRhdGEg KyAyKSA9IDA7DQo+ICsJCX0NCj4gKw0KPiArCQllZGlkZGF0YSArPSA0Ow0KPiArCX0NCj4g Kw0KPiArCWFzdF9zZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAw eEU1LCAodTgpIH5BU1REUF9IT1NUX0VESURfUkVBRF9ET05FX01BU0ssDQo+ICsJCQkJCQkJ QVNURFBfSE9TVF9FRElEX1JFQURfRE9ORSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gKw0K PiArZXJyX2FzdGRwX2p1bXBfb3V0X2xvb3Bfb2ZfZWRpZDoNCj4gKwlhc3Rfc2V0X2luZGV4 X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhFNSwNCj4gKwkJCQkJCQkodTgp IH5BU1REUF9IT1NUX0VESURfUkVBRF9ET05FX01BU0ssDQo+ICsJCQkJCQkJQVNURFBfSE9T VF9FRElEX1JFQURfRE9ORSk7DQo+ICsJcmV0dXJuICh+KGorMjU2KSArIDEpOw0KPiArDQo+ ICtlcnJfYXN0ZHBfZWRpZF9ub3RfcmVhZHk6DQo+ICsJaWYgKCEoYXN0X2dldF9pbmRleF9y ZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4RDEsIEFTVERQX01DVV9GV19FWEVD VVRJTkcpKSkNCj4gKwkJcmV0dXJuICh+MHhEMSArIDEpOw0KPiArCWlmICghKGFzdF9nZXRf aW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweERDLCBBU1REUF9MSU5L X1NVQ0NFU1MpKSkNCj4gKwkJcmV0dXJuICh+MHhEQyArIDEpOw0KPiArCWlmICghKGFzdF9n ZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweERGLCBBU1REUF9I UEQpKSkNCj4gKwkJcmV0dXJuICh+MHhERiArIDEpOw0KPiArCWlmICghKGFzdF9nZXRfaW5k ZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweEU1LCBBU1REUF9IT1NUX0VE SURfUkVBRF9ET05FX01BU0spKSkNCj4gKwkJcmV0dXJuICh+MHhFNSArIDEpOw0KPiArDQo+ ICsJcmV0dXJuCTA7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBMYXVuY2ggQXNwZWVkIERQ DQo+ICsgKi8NCj4gK3ZvaWQgYXN0X2RwX2xhdW5jaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1OCBiUG93ZXIpDQo+ICt7DQo+ICsJdTMyIGkgPSAwLCBqID0gMCwgV2FpdENvdW50ID0g MTsNCj4gKwl1OCBiRFBUWCA9IDA7DQo+ICsJdTggYkRQRXhlY3V0ZSA9IDE7DQo+ICsNCj4g KwlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IHRvX2FzdF9wcml2YXRlKGRldik7DQo+ICsJ Ly8gUzMgY29tZSBiYWNrLCBuZWVkIG1vcmUgdGltZSB0byB3YWl0IEJNQyByZWFkeS4NCj4g KwlpZiAoYlBvd2VyKQ0KPiArCQlXYWl0Q291bnQgPSAzMDA7DQo+ICsNCj4gKw0KPiArCS8v IFdhaXQgdG90YWwgY291bnQgYnkgZGlmZmVyZW50IGNvbmRpdGlvbi4NCj4gKwlmb3IgKGog PSAwOyBqIDwgV2FpdENvdW50OyBqKyspIHsNCj4gKwkJYkRQVFggPSBhc3RfZ2V0X2luZGV4 X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhEMSwgVFhfVFlQRV9NQVNLKTsN Cj4gKw0KPiArCQlpZiAoYkRQVFgpDQo+ICsJCQlicmVhazsNCj4gKw0KPiArCQltc2xlZXAo MTAwKTsNCj4gKwl9DQo+ICsNCj4gKwkvLyAweEUgOiBBU1REUCB3aXRoIERQTUNVIEZXIGhh bmRsaW5nDQo+ICsJaWYgKGJEUFRYID09IEFTVERQX0RQTUNVX1RYKSB7DQo+ICsJCS8vIFdh aXQgb25lIHNlY29uZCB0aGVuIHRpbWVvdXQuDQo+ICsJCWkgPSAwOw0KPiArDQo+ICsJCXdo aWxlIChhc3RfZ2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhE MSwgQ09QUk9DRVNTT1JfTEFVTkNIKSAhPQ0KPiArCQkJQ09QUk9DRVNTT1JfTEFVTkNIKSB7 DQo+ICsJCQlpKys7DQo+ICsJCQkvLyB3YWl0IDEwMCBtcw0KPiArCQkJbXNsZWVwKDEwMCk7 DQo+ICsNCj4gKwkJCWlmIChpID49IDEwKSB7DQo+ICsJCQkJLy8gRFAgd291bGQgbm90IGJl IHJlYWR5Lg0KPiArCQkJCWJEUEV4ZWN1dGUgPSAwOw0KPiArCQkJCWJyZWFrOw0KPiArCQkJ fQ0KPiArCQl9DQo+ICsNCj4gKwkJaWYgKGJEUEV4ZWN1dGUpDQo+ICsJCQlhc3QtPnR4X2No aXBfdHlwZSA9IEFTVF9UWF9BU1REUDsNCj4gKw0KPiArCQlhc3Rfc2V0X2luZGV4X3JlZ19t YXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhFNSwNCj4gKwkJCQkJCQkodTgpIH5BU1RE UF9IT1NUX0VESURfUkVBRF9ET05FX01BU0ssDQo+ICsJCQkJCQkJQVNURFBfSE9TVF9FRElE X1JFQURfRE9ORSk7DQo+ICsJfSBlbHNlDQo+ICsJCWFzdC0+dHhfY2hpcF90eXBlID0gQVNU X1RYX05PTkU7DQo+ICt9DQo+ICsNCj4gKw0KPiArDQo+ICt2b2lkIGFzdF9kcF9wb3dlcl9v bl9vZmYoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBvbikNCj4gK3sNCj4gKwlzdHJ1 Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IHRvX2FzdF9wcml2YXRlKGRldik7DQo+ICsJLy8gUmVh ZCBhbmQgVHVybiBvZmYgRFAgUEhZIHNsZWVwDQo+ICsJdTggYkUzID0gYXN0X2dldF9pbmRl eF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4RTMsIEFTVF9EUF9WSURFT19F TkFCTEUpOw0KPiArDQo+ICsJLy8gVHVybiBvbiBEUCBQSFkgc2xlZXANCj4gKwlpZiAoIW9u KQ0KPiArCQliRTMgfD0gQVNUX0RQX1BIWV9TTEVFUDsNCj4gKw0KPiArCS8vIERQIFBvd2Vy IG9uL29mZg0KPiArCWFzdF9zZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19Q T1JULCAweEUzLCAodTgpIH5BU1RfRFBfUEhZX1NMRUVQLCBiRTMpOw0KPiArfQ0KPiArDQo+ ICsNCj4gKw0KPiArdm9pZCBhc3RfZHBfc2V0X29uX29mZihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBib29sIG9uKQ0KPiArew0KPiArCXN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gdG9f YXN0X3ByaXZhdGUoZGV2KTsNCj4gKwl1OCB2aWRlb19vbl9vZmYgPSBvbjsNCj4gKw0KPiAr CS8vIFZpZGVvIE9uL09mZg0KPiArCWFzdF9zZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1Rf SU9fQ1JUQ19QT1JULCAweEUzLCAodTgpIH5BU1RfRFBfVklERU9fRU5BQkxFLCBvbik7DQo+ ICsNCj4gKwkvLyBJZiBEUCBwbHVnIGluIGFuZCBsaW5rIHN1Y2Nlc3NmdWwgdGhlbiBjaGVj ayB2aWRlbyBvbiAvIG9mZiBzdGF0dXMNCj4gKwlpZiAoYXN0X2dldF9pbmRleF9yZWdfbWFz ayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4REMsIEFTVERQX0xJTktfU1VDQ0VTUykgJiYN Cj4gKwkJYXN0X2dldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4 REYsIEFTVERQX0hQRCkpIHsNCj4gKwkJdmlkZW9fb25fb2ZmIDw8PSA0Ow0KPiArCQl3aGls ZSAoYXN0X2dldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4REYs DQo+ICsJCQkJCQlBU1REUF9NSVJST1JfVklERU9fRU5BQkxFKSAhPSB2aWRlb19vbl9vZmYp IHsNCj4gKwkJCS8vIHdhaXQgMSBtcw0KPiArCQkJbWRlbGF5KDEpOw0KPiArCQl9DQo+ICsJ fQ0KPiArfQ0KPiArDQo+ICt2b2lkIGFzdF9kcF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHN0cnVjdCBhc3RfdmJpb3NfbW9kZV9pbmZvICp2Ymlvc19tb2RlKQ0KPiArew0K PiArCXN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gdG9fYXN0X3ByaXZhdGUoY3J0Yy0+ZGV2 KTsNCj4gKw0KPiArCXUzMiB1bFJlZnJlc2hSYXRlSW5kZXg7DQo+ICsJdTggTW9kZUlkeDsN Cj4gKw0KPiArCXVsUmVmcmVzaFJhdGVJbmRleCA9IHZiaW9zX21vZGUtPmVuaF90YWJsZS0+ cmVmcmVzaF9yYXRlX2luZGV4IC0gMTsNCj4gKw0KPiArCXN3aXRjaCAoY3J0Yy0+bW9kZS5j cnRjX2hkaXNwbGF5KSB7DQo+ICsJY2FzZSAzMjA6DQo+ICsJCU1vZGVJZHggPSBBU1REUF8z MjB4MjQwXzYwOw0KPiArCQlicmVhazsNCj4gKwljYXNlIDQwMDoNCj4gKwkJTW9kZUlkeCA9 IEFTVERQXzQwMHgzMDBfNjA7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgNTEyOg0KPiArCQlN b2RlSWR4ID0gQVNURFBfNTEyeDM4NF82MDsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSA2NDA6 DQo+ICsJCU1vZGVJZHggPSAoQVNURFBfNjQweDQ4MF82MCArICh1OCkgdWxSZWZyZXNoUmF0 ZUluZGV4KTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSA4MDA6DQo+ICsJCU1vZGVJZHggPSAo QVNURFBfODAweDYwMF81NiArICh1OCkgdWxSZWZyZXNoUmF0ZUluZGV4KTsNCj4gKwkJYnJl YWs7DQo+ICsJY2FzZSAxMDI0Og0KPiArCQlNb2RlSWR4ID0gKEFTVERQXzEwMjR4NzY4XzYw ICsgKHU4KSB1bFJlZnJlc2hSYXRlSW5kZXgpOw0KPiArCQlicmVhazsNCj4gKwljYXNlIDEx NTI6DQo+ICsJCU1vZGVJZHggPSBBU1REUF8xMTUyeDg2NF83NTsNCj4gKwkJYnJlYWs7DQo+ ICsJY2FzZSAxMjgwOg0KPiArCQlpZiAoY3J0Yy0+bW9kZS5jcnRjX3ZkaXNwbGF5ID09IDgw MCkNCj4gKwkJCU1vZGVJZHggPSAoQVNURFBfMTI4MHg4MDBfNjBfUkIgLSAodTgpIHVsUmVm cmVzaFJhdGVJbmRleCk7DQo+ICsJCWVsc2UJCS8vIDEwMjQNCj4gKwkJCU1vZGVJZHggPSAo QVNURFBfMTI4MHgxMDI0XzYwICsgKHU4KSB1bFJlZnJlc2hSYXRlSW5kZXgpOw0KPiArCQli cmVhazsNCj4gKwljYXNlIDEzNjA6DQo+ICsJY2FzZSAxMzY2Og0KPiArCQlNb2RlSWR4ID0g QVNURFBfMTM2Nng3NjhfNjA7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgMTQ0MDoNCj4gKwkJ TW9kZUlkeCA9IChBU1REUF8xNDQweDkwMF82MF9SQiAtICh1OCkgdWxSZWZyZXNoUmF0ZUlu ZGV4KTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSAxNjAwOg0KPiArCQlpZiAoY3J0Yy0+bW9k ZS5jcnRjX3ZkaXNwbGF5ID09IDkwMCkNCj4gKwkJCU1vZGVJZHggPSAoQVNURFBfMTYwMHg5 MDBfNjBfUkIgLSAodTgpIHVsUmVmcmVzaFJhdGVJbmRleCk7DQo+ICsJCWVsc2UJCS8vMTIw MA0KPiArCQkJTW9kZUlkeCA9IEFTVERQXzE2MDB4MTIwMF82MDsNCj4gKwkJYnJlYWs7DQo+ ICsJY2FzZSAxNjgwOg0KPiArCQlNb2RlSWR4ID0gKEFTVERQXzE2ODB4MTA1MF82MF9SQiAt ICh1OCkgdWxSZWZyZXNoUmF0ZUluZGV4KTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSAxOTIw Og0KPiArCQlpZiAoY3J0Yy0+bW9kZS5jcnRjX3ZkaXNwbGF5ID09IDEwODApDQo+ICsJCQlN b2RlSWR4ID0gQVNURFBfMTkyMHgxMDgwXzYwOw0KPiArCQllbHNlCQkvLzEyMDANCj4gKwkJ CU1vZGVJZHggPSBBU1REUF8xOTIweDEyMDBfNjA7DQo+ICsJCWJyZWFrOw0KPiArCWRlZmF1 bHQ6DQo+ICsJCXJldHVybjsNCj4gKwl9DQo+ICsNCj4gKwkvKg0KPiArCSAqIENSRTBbNzow XTogTUlTQzAgKCgweDAwOiAxOC1icHApIG9yICgweDIwOiAyNC1icHApDQo+ICsJICogQ1JF MVs3OjBdOiBNSVNDMSAoZGVmYXVsdDogMHgwMCkNCj4gKwkgKiBDUkUyWzc6MF06IHZpZGVv IGZvcm1hdCBpbmRleCAoMHgwMCB+IDB4MjAgb3IgMHg0MCB+IDB4NTApDQo+ICsJICovDQo+ ICsJYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4RTAs IEFTVERQX0FORF9DTEVBUl9NQVNLLA0KPiArCQkJCUFTVERQX01JU0MwXzI0YnBwKTsNCj4g Kwlhc3Rfc2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhFMSwg QVNURFBfQU5EX0NMRUFSX01BU0ssIEFTVERQX01JU0MxKTsNCj4gKwlhc3Rfc2V0X2luZGV4 X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhFMiwgQVNURFBfQU5EX0NMRUFS X01BU0ssIE1vZGVJZHgpOw0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FzdC9hc3RfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaA0KPiBpbmRl eCBhMTkzMTViMmYuLjc5NDUxMTMwYyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FzdC9hc3RfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgN Cj4gQEAgLTcwLDYgKzcwLDcgQEAgZW51bSBhc3RfdHhfY2hpcCB7DQo+ICAgCUFTVF9UWF9O T05FLA0KPiAgIAlBU1RfVFhfU0lMMTY0LA0KPiAgIAlBU1RfVFhfRFA1MDEsDQo+ICsJQVNU X1RYX0FTVERQLA0KPiAgIH07DQo+IA0KPiAgICNkZWZpbmUgQVNUX0RSQU1fNTEyTXgxNiAw DQo+IEBAIC0xODQsNiArMTg1LDEwIEBAIHN0cnVjdCBhc3RfcHJpdmF0ZSB7DQo+ICAgCQkJ c3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7DQo+ICAgCQkJc3RydWN0IGRybV9jb25uZWN0 b3IgY29ubmVjdG9yOw0KPiAgIAkJfSBkcDUwMTsNCj4gKwkJc3RydWN0IHsNCj4gKwkJCXN0 cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOw0KPiArCQkJc3RydWN0IGRybV9jb25uZWN0b3Ig Y29ubmVjdG9yOw0KPiArCQl9IGFzdGRwOw0KPiAgIAl9IG91dHB1dDsNCj4gDQo+ICAgCWJv b2wgc3VwcG9ydF93aWRlX3NjcmVlbjsNCj4gQEAgLTM1NywxMCArMzYyLDExMyBAQCBpbnQg YXN0X21vZGVfY29uZmlnX2luaXQoc3RydWN0IGFzdF9wcml2YXRlICphc3QpOw0KPiAgICNk ZWZpbmUgQVNUX0RQNTAxX0VESURfREFUQQkweGYwMjANCj4gDQo+ICAgLyogRGVmaW5lIGZv ciBTb2Mgc2NyYXRjaGVkIHJlZyAqLw0KPiArI2RlZmluZSBDT1BST0NFU1NPUl9MQVVOQ0gJ CQlCSVQoNSkNCj4gKw0KPiArLyoNCj4gKyAqIERpc3BsYXkgVHJhbnNtaXR0ZXIgVHlwZToN Cj4gKyAqLw0KPiArI2RlZmluZSBUWF9UWVBFX01BU0sJCQkJR0VOTUFTSygzLCAxKQ0KPiAr I2RlZmluZSBOT19UWAkJCQkJCSgwIDw8IDEpDQo+ICsjZGVmaW5lIElURTY2MTIxX1ZCSU9T X1RYCQkJKDEgPDwgMSkNCj4gKyNkZWZpbmUgU0kxNjRfVkJJT1NfVFgJCQkJKDIgPDwgMSkN Cj4gKyNkZWZpbmUgQ0g3MDAzX1ZCSU9TX1RYCQkJKDMgPDwgMSkNCj4gKyNkZWZpbmUgRFA1 MDFfVkJJT1NfVFgJCQkJKDQgPDwgMSkNCj4gKyNkZWZpbmUgQU5YOTgwN19WQklPU19UWAkJ CSg1IDw8IDEpDQo+ICsjZGVmaW5lIFRYX0ZXX0VNQkVEREVEX0ZXX1RYCQkoNiA8PCAxKQ0K PiArI2RlZmluZSBBU1REUF9EUE1DVV9UWAkJCQkoNyA8PCAxKQ0KPiArDQo+ICAgI2RlZmlu ZSBBU1RfVlJBTV9JTklUX1NUQVRVU19NQVNLCUdFTk1BU0soNywgNikNCj4gICAvLyNkZWZp bmUgQVNUX1ZSQU1fSU5JVF9CWV9CTUMJCUJJVCg3KQ0KPiAgIC8vI2RlZmluZSBBU1RfVlJB TV9JTklUX1JFQURZCQlCSVQoNikNCj4gDQo+ICsvKiBEZWZpbmUgZm9yIFNvYyBzY3JhdGNo ZWQgcmVnIHVzZWQgb24gQVNURFAgKi8NCj4gKyNkZWZpbmUgQVNUX0RQX1BIWV9TTEVFUAkJ CUJJVCg0KQ0KPiArI2RlZmluZSBBU1RfRFBfVklERU9fRU5BQkxFCQlCSVQoMCkNCj4gKw0K PiArI2RlZmluZSBBU1RfRFBfUE9XRVJfT04JCQl0cnVlDQo+ICsjZGVmaW5lIEFTVF9EUF9Q T1dFUl9PRkYJCQlmYWxzZQ0KPiArDQo+ICsvKg0KPiArICogQ1JEMVtiNV06IERQIE1DVSBG VyBpcyBleGVjdXRpbmcNCj4gKyAqIENSRENbYjBdOiBEUCBsaW5rIHN1Y2Nlc3MNCj4gKyAq IENSREZbYjBdOiBEUCBIUEQNCj4gKyAqIENSRTVbYjBdOiBIb3N0IHJlYWRpbmcgRURJRCBw cm9jZXNzIGlzIGRvbmUNCj4gKyAqLw0KPiArI2RlZmluZSBBU1REUF9NQ1VfRldfRVhFQ1VU SU5HCQkJQklUKDUpDQo+ICsjZGVmaW5lIEFTVERQX0xJTktfU1VDQ0VTUwkJCQlCSVQoMCkN Cj4gKyNkZWZpbmUgQVNURFBfSFBECQkJCQkJQklUKDApDQo+ICsjZGVmaW5lIEFTVERQX0hP U1RfRURJRF9SRUFEX0RPTkUJCUJJVCgwKQ0KPiArI2RlZmluZSBBU1REUF9IT1NUX0VESURf UkVBRF9ET05FX01BU0sJR0VOTUFTSygwLCAwKQ0KPiArDQo+ICsvKg0KPiArICogQ1JCOFti MV06IEVuYWJsZSBWU1lOQyBvZmYNCj4gKyAqIENSQjhbYjBdOiBFbmFibGUgSFNZTkMgb2Zm DQo+ICsgKi8NCj4gKyNkZWZpbmUgQVNUX0RQTVNfVlNZTkNfT0ZGCQkJCUJJVCgxKQ0KPiAr I2RlZmluZSBBU1RfRFBNU19IU1lOQ19PRkYJCQkJQklUKDApDQo+ICsNCj4gKy8qDQo+ICsg KiBDUkRGW2I0XTogTWlycm9yIG9mIEFTVF9EUF9WSURFT19FTkFCTEUNCj4gKyAqIFByZWNv bmRpdGlvbjoJQS4gfkFTVF9EUF9QSFlfU0xFRVAgICYmDQo+ICsgKgkJCUIuIERQX0hQRCAm Jg0KPiArICoJCQlDLiBEUF9MSU5LX1NVQ0NFU1MNCj4gKyAqLw0KPiArI2RlZmluZSBBU1RE UF9NSVJST1JfVklERU9fRU5BQkxFCQlCSVQoNCkNCj4gKw0KPiArI2RlZmluZSBBU1REUF9F RElEX1JFQURfUE9JTlRFUl9NQVNLCUdFTk1BU0soNywgMCkNCj4gKyNkZWZpbmUgQVNURFBf RURJRF9WQUxJRF9GTEFHX01BU0sJCUdFTk1BU0soMCwgMCkNCj4gKyNkZWZpbmUgQVNURFBf RURJRF9SRUFEX0RBVEFfTUFTSwkJR0VOTUFTSyg3LCAwKQ0KPiArDQo+ICsvKg0KPiArICog QVNURFAgc2V0bW9kZSByZWdpc3RlcnM6DQo+ICsgKiBDUkUwWzc6MF06IE1JU0MwICgoMHgw MDogMTgtYnBwKSBvciAoMHgyMDogMjQtYnBwKQ0KPiArICogQ1JFMVs3OjBdOiBNSVNDMSAo ZGVmYXVsdDogMHgwMCkNCj4gKyAqIENSRTJbNzowXTogdmlkZW8gZm9ybWF0IGluZGV4ICgw eDAwIH4gMHgyMCBvciAweDQwIH4gMHg1MCkNCj4gKyAqLw0KPiArI2RlZmluZSBBU1REUF9N SVNDMF8yNGJwcAkJCUJJVCg1KQ0KPiArI2RlZmluZSBBU1REUF9NSVNDMQkJCQkwDQo+ICsj ZGVmaW5lIEFTVERQX0FORF9DTEVBUl9NQVNLCQkweDAwDQo+ICsNCj4gKy8qDQo+ICsgKiBB U1REUCByZXNvdWx0aW9uIHRhYmxlOg0KPiArICogRVg6CUFTVERQX0FfQl9DOg0KPiArICoJ CUE6IFJlc29sdXRpb24NCj4gKyAqCQlCOiBSZWZyZXNoIFJhdGUNCj4gKyAqCQlDOiBNaXNj IGluZm9ybWF0aW9uLCBzdWNoIGFzIENWVCwgUmVkdWNlIEJsYW5rZWQNCj4gKyAqLw0KPiAr I2RlZmluZSBBU1REUF82NDB4NDgwXzYwCQkweDAwDQo+ICsjZGVmaW5lIEFTVERQXzY0MHg0 ODBfNzIJCTB4MDENCj4gKyNkZWZpbmUgQVNURFBfNjQweDQ4MF83NQkJMHgwMg0KPiArI2Rl ZmluZSBBU1REUF82NDB4NDgwXzg1CQkweDAzDQo+ICsjZGVmaW5lIEFTVERQXzgwMHg2MDBf NTYJCTB4MDQNCj4gKyNkZWZpbmUgQVNURFBfODAweDYwMF82MAkJMHgwNQ0KPiArI2RlZmlu ZSBBU1REUF84MDB4NjAwXzcyCQkweDA2DQo+ICsjZGVmaW5lIEFTVERQXzgwMHg2MDBfNzUJ CTB4MDcNCj4gKyNkZWZpbmUgQVNURFBfODAweDYwMF84NQkJMHgwOA0KPiArI2RlZmluZSBB U1REUF8xMDI0eDc2OF82MAkJMHgwOQ0KPiArI2RlZmluZSBBU1REUF8xMDI0eDc2OF83MAkJ MHgwQQ0KPiArI2RlZmluZSBBU1REUF8xMDI0eDc2OF83NQkJMHgwQg0KPiArI2RlZmluZSBB U1REUF8xMDI0eDc2OF84NQkJMHgwQw0KPiArI2RlZmluZSBBU1REUF8xMjgweDEwMjRfNjAJ CTB4MEQNCj4gKyNkZWZpbmUgQVNURFBfMTI4MHgxMDI0Xzc1CQkweDBFDQo+ICsjZGVmaW5l IEFTVERQXzEyODB4MTAyNF84NQkJMHgwRg0KPiArI2RlZmluZSBBU1REUF8xNjAweDEyMDBf NjAJCTB4MTANCj4gKyNkZWZpbmUgQVNURFBfMzIweDI0MF82MAkJMHgxMQ0KPiArI2RlZmlu ZSBBU1REUF80MDB4MzAwXzYwCQkweDEyDQo+ICsjZGVmaW5lIEFTVERQXzUxMngzODRfNjAJ CTB4MTMNCj4gKyNkZWZpbmUgQVNURFBfMTkyMHgxMjAwXzYwCQkweDE0DQo+ICsjZGVmaW5l IEFTVERQXzE5MjB4MTA4MF82MAkJMHgxNQ0KPiArI2RlZmluZSBBU1REUF8xMjgweDgwMF82 MAkJMHgxNg0KPiArI2RlZmluZSBBU1REUF8xMjgweDgwMF82MF9SQgkweDE3DQo+ICsjZGVm aW5lIEFTVERQXzE0NDB4OTAwXzYwCQkweDE4DQo+ICsjZGVmaW5lIEFTVERQXzE0NDB4OTAw XzYwX1JCCTB4MTkNCj4gKyNkZWZpbmUgQVNURFBfMTY4MHgxMDUwXzYwCQkweDFBDQo+ICsj ZGVmaW5lIEFTVERQXzE2ODB4MTA1MF82MF9SQgkweDFCDQo+ICsjZGVmaW5lIEFTVERQXzE2 MDB4OTAwXzYwCQkweDFDDQo+ICsjZGVmaW5lIEFTVERQXzE2MDB4OTAwXzYwX1JCCTB4MUQN Cj4gKyNkZWZpbmUgQVNURFBfMTM2Nng3NjhfNjAJCTB4MUUNCj4gKyNkZWZpbmUgQVNURFBf MTE1Mng4NjRfNzUJCTB4MUYNCj4gKw0KPiAgIGludCBhc3RfbW1faW5pdChzdHJ1Y3QgYXN0 X3ByaXZhdGUgKmFzdCk7DQo+IA0KPiAgIC8qIGFzdCBwb3N0ICovDQo+IEBAIC0zODEsNCAr NDg5LDExIEBAIHZvaWQgYXN0X2luaXRfM3JkdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 DQo+ICAgLyogYXN0X2kyYy5jICovDQo+ICAgc3RydWN0IGFzdF9pMmNfY2hhbiAqYXN0X2ky Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7DQo+IA0KPiArLyogYXNwZWVkIERQ ICovDQo+ICtpbnQgYXN0X2FzdGRwX3JlYWRfZWRpZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1OCAqZWRpZGRhdGEpOw0KPiArdm9pZCBhc3RfZHBfbGF1bmNoKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHU4IGJQb3dlcik7DQo+ICt2b2lkIGFzdF9kcF9wb3dlcl9vbl9vZmYoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBubyk7DQo+ICt2b2lkIGFzdF9kcF9zZXRfb25f b2ZmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgbm8pOw0KPiArdm9pZCBhc3RfZHBf c2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgYXN0X3ZiaW9zX21vZGVf aW5mbyAqdmJpb3NfbW9kZSk7DQo+ICsNCj4gICAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0 X21haW4uYw0KPiBpbmRleCAyMmU5ZTJkM2MuLjExMTNlZTFjYiAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hc3QvYXN0X21haW4uYw0KPiBAQCAtMjMyLDcgKzIzMiw3IEBAIHN0YXRpYyBpbnQgYXN0 X2RldGVjdF9jaGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgKm5lZWRfcG9zdCkN Cj4gICAJCQlhc3QtPnR4X2NoaXBfdHlwZSA9IEFTVF9UWF9TSUwxNjQ7DQo+ICAgCX0NCj4g DQo+IC0JaWYgKChhc3QtPmNoaXAgPT0gQVNUMjMwMCkgfHwgKGFzdC0+Y2hpcCA9PSBBU1Qy NDAwKSkgew0KPiArCWlmICgoYXN0LT5jaGlwID09IEFTVDIzMDApIHx8IChhc3QtPmNoaXAg PT0gQVNUMjQwMCkgfHwgKGFzdC0+Y2hpcCA9PSBBU1QyNTAwKSkgew0KPiAgIAkJLyoNCj4g ICAJCSAqIE9uIEFTVDIzMDAgYW5kIDI0MDAsIGxvb2sgdGhlIGNvbmZpZ3VyYXRpb24gc2V0 IGJ5IHRoZSBTb0MgaW4NCj4gICAJCSAqIHRoZSBTT0Mgc2NyYXRjaCByZWdpc3RlciAjMSBi aXRzIDExOjggKGludGVyZXN0aW5nbHkgbWFya2VkDQo+IEBAIC0yNTYsNyArMjU2LDggQEAg c3RhdGljIGludCBhc3RfZGV0ZWN0X2NoaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCAqbmVlZF9wb3N0KQ0KPiAgIAkJY2FzZSAweDBjOg0KPiAgIAkJCWFzdC0+dHhfY2hpcF90 eXBlID0gQVNUX1RYX0RQNTAxOw0KPiAgIAkJfQ0KPiAtCX0NCj4gKwl9IGVsc2UgaWYgKGFz dC0+Y2hpcCA9PSBBU1QyNjAwKQ0KPiArCQlhc3RfZHBfbGF1bmNoKCZhc3QtPmJhc2UsIDAp Ow0KPiANCj4gICAJLyogUHJpbnQgc3R1ZmYgZm9yIGRpYWdub3N0aWMgcHVycG9zZXMgKi8N Cj4gICAJc3dpdGNoKGFzdC0+dHhfY2hpcF90eXBlKSB7DQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9t b2RlLmMNCj4gaW5kZXggNDViNTZiMzlhLi40NzI4ODI1YjcgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXN0L2FzdF9tb2RlLmMNCj4gQEAgLTk4OCwyMSArOTg4LDQxIEBAIHN0YXRpYyBpbnQgYXN0 X2N1cnNvcl9wbGFuZV9pbml0KHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0KQ0KPiAgIHN0YXRp YyB2b2lkIGFzdF9jcnRjX2RwbXMoc3RydWN0IGRybV9jcnRjICpjcnRjLCBpbnQgbW9kZSkN Cj4gICB7DQo+ICAgCXN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gdG9fYXN0X3ByaXZhdGUo Y3J0Yy0+ZGV2KTsNCj4gKwl1OCBjaCA9IEFTVF9EUE1TX1ZTWU5DX09GRiB8IEFTVF9EUE1T X0hTWU5DX09GRjsNCj4gDQo+ICAgCS8qIFRPRE86IE1heWJlIGNvbnRyb2wgZGlzcGxheSBz aWduYWwgZ2VuZXJhdGlvbiB3aXRoDQo+ICAgCSAqICAgICAgIFN5bmMgRW5hYmxlIChiaXQg Q1IxNy43KS4NCj4gICAJICovDQo+ICAgCXN3aXRjaCAobW9kZSkgew0KPiAgIAljYXNlIERS TV9NT0RFX0RQTVNfT046DQo+IC0JY2FzZSBEUk1fTU9ERV9EUE1TX1NUQU5EQlk6DQo+IC0J Y2FzZSBEUk1fTU9ERV9EUE1TX1NVU1BFTkQ6DQo+ICsJCWFzdF9zZXRfaW5kZXhfcmVnX21h c2soYXN0LCBBU1RfSU9fU0VRX1BPUlQsICAweDAxLCAweGRmLCAwKTsNCj4gKwkJYXN0X3Nl dF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YjYsIDB4ZmMsIDAp Ow0KPiAgIAkJaWYgKGFzdC0+dHhfY2hpcF90eXBlID09IEFTVF9UWF9EUDUwMSkNCj4gICAJ CQlhc3Rfc2V0X2RwNTAxX3ZpZGVvX291dHB1dChjcnRjLT5kZXYsIDEpOw0KPiArDQo+ICsJ CWlmIChhc3QtPnR4X2NoaXBfdHlwZSA9PSBBU1RfVFhfQVNURFApIHsNCj4gKwkJCWFzdF9k cF9wb3dlcl9vbl9vZmYoY3J0Yy0+ZGV2LCBBU1RfRFBfUE9XRVJfT04pOw0KPiArCQkJYXN0 X3dhaXRfZm9yX3ZyZXRyYWNlKGFzdCk7DQo+ICsJCQlhc3RfZHBfc2V0X29uX29mZihjcnRj LT5kZXYsIDEpOw0KPiArCQl9DQo+ICsNCj4gKwkJYXN0X2NydGNfbG9hZF9sdXQoYXN0LCBj cnRjKTsNCj4gICAJCWJyZWFrOw0KPiArCWNhc2UgRFJNX01PREVfRFBNU19TVEFOREJZOg0K PiArCWNhc2UgRFJNX01PREVfRFBNU19TVVNQRU5EOg0KPiAgIAljYXNlIERSTV9NT0RFX0RQ TVNfT0ZGOg0KPiArCQljaCA9IG1vZGU7DQo+ICAgCQlpZiAoYXN0LT50eF9jaGlwX3R5cGUg PT0gQVNUX1RYX0RQNTAxKQ0KPiAgIAkJCWFzdF9zZXRfZHA1MDFfdmlkZW9fb3V0cHV0KGNy dGMtPmRldiwgMCk7DQo+ICAgCQlicmVhazsNCj4gKw0KPiArCQlpZiAoYXN0LT50eF9jaGlw X3R5cGUgPT0gQVNUX1RYX0FTVERQKSB7DQo+ICsJCQlhc3RfZHBfc2V0X29uX29mZihjcnRj LT5kZXYsIDApOw0KPiArCQkJYXN0X2RwX3Bvd2VyX29uX29mZihjcnRjLT5kZXYsIEFTVF9E UF9QT1dFUl9PRkYpOw0KPiArCQl9DQo+ICsNCj4gKwkJYXN0X3NldF9pbmRleF9yZWdfbWFz ayhhc3QsIEFTVF9JT19TRVFfUE9SVCwgIDB4MDEsIDB4ZGYsIDB4MjApOw0KPiArCQlhc3Rf c2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHhiNiwgMHhmYywg Y2gpOw0KPiAgIAl9DQo+ICAgfQ0KPiANCj4gQEAgLTEwMjcsNyArMTA0Nyw3IEBAIGFzdF9j cnRjX2hlbHBlcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUNCj4gDQo+ICAgCQlpZiAoKGFzdC0+Y2hpcCA9PSBBU1Qy MTAwKSB8fCAoYXN0LT5jaGlwID09IEFTVDIyMDApIHx8DQo+ICAgCQkgICAgKGFzdC0+Y2hp cCA9PSBBU1QyMzAwKSB8fCAoYXN0LT5jaGlwID09IEFTVDI0MDApIHx8DQo+IC0JCSAgICAo YXN0LT5jaGlwID09IEFTVDI1MDApKSB7DQo+ICsJCSAgICAoYXN0LT5jaGlwID09IEFTVDI1 MDApIHx8IChhc3QtPmNoaXAgPT0gQVNUMjYwMCkpIHsNCj4gICAJCQlpZiAoKG1vZGUtPmhk aXNwbGF5ID09IDE5MjApICYmIChtb2RlLT52ZGlzcGxheSA9PSAxMDgwKSkNCj4gICAJCQkJ cmV0dXJuIE1PREVfT0s7DQo+IA0KPiBAQCAtMTExMCw2ICsxMTMwLDcgQEAgYXN0X2NydGNf aGVscGVyX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQo+ICAgCXN0cnVj dCBhc3RfcHJpdmF0ZSAqYXN0ID0gdG9fYXN0X3ByaXZhdGUoY3J0Yy0+ZGV2KTsNCj4gICAJ c3RydWN0IGFzdF9jcnRjX3N0YXRlICphc3RfY3J0Y19zdGF0ZSA9IHRvX2FzdF9jcnRjX3N0 YXRlKGNydGNfc3RhdGUpOw0KPiAgIAlzdHJ1Y3QgYXN0X2NydGNfc3RhdGUgKm9sZF9hc3Rf Y3J0Y19zdGF0ZSA9IHRvX2FzdF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsNCj4gKwlz dHJ1Y3QgYXN0X3ZiaW9zX21vZGVfaW5mbyAqdmJpb3NfbW9kZV9pbmZvID0gJmFzdF9jcnRj X3N0YXRlLT52Ymlvc19tb2RlX2luZm87DQo+IA0KPiAgIAkvKg0KPiAgIAkgKiBUaGUgZ2Ft bWEgTFVUIGhhcyB0byBiZSByZWxvYWRlZCBhZnRlciBjaGFuZ2luZyB0aGUgcHJpbWFyeQ0K PiBAQCAtMTExNyw2ICsxMTM4LDEwIEBAIGFzdF9jcnRjX2hlbHBlcl9hdG9taWNfZmx1c2go c3RydWN0IGRybV9jcnRjICpjcnRjLA0KPiAgIAkgKi8NCj4gICAJaWYgKG9sZF9hc3RfY3J0 Y19zdGF0ZS0+Zm9ybWF0ICE9IGFzdF9jcnRjX3N0YXRlLT5mb3JtYXQpDQo+ICAgCQlhc3Rf Y3J0Y19sb2FkX2x1dChhc3QsIGNydGMpOw0KPiArDQo+ICsJLy9TZXQgQXNwZWVkIERpc3Bs YXktUG9ydA0KPiArCWlmIChhc3QtPnR4X2NoaXBfdHlwZSA9PSBBU1RfVFhfQVNURFApDQo+ ICsJCWFzdF9kcF9zZXRfbW9kZShjcnRjLCB2Ymlvc19tb2RlX2luZm8pOw0KPiAgIH0NCj4g DQo+ICAgc3RhdGljIHZvaWQNCj4gQEAgLTE1MjcsNiArMTU1Miw5MyBAQCBzdGF0aWMgaW50 IGFzdF9kcDUwMV9vdXRwdXRfaW5pdChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCkNCj4gICAJ cmV0dXJuIDA7DQo+ICAgfQ0KPiANCj4gKy8qDQo+ICsgKiBBU1BFRUQgRGlzcGxheS1Qb3J0 IENvbm5lY3Rvcg0KPiArICovDQo+ICsNCj4gK3N0YXRpYyBpbnQgYXN0X2FzdGRwX2Nvbm5l Y3Rvcl9oZWxwZXJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip DQo+ICt7DQo+ICsJdm9pZCAqZWRpZDsNCj4gKw0KPiArCWludCBzdWNjOw0KPiArCWludCBj b3VudDsNCj4gKw0KPiArCWVkaWQgPSBrbWFsbG9jKEVESURfTEVOR1RILCBHRlBfS0VSTkVM KTsNCj4gKwlpZiAoIWVkaWQpDQo+ICsJCWdvdG8gZXJyX2RybV9jb25uZWN0b3JfdXBkYXRl X2VkaWRfcHJvcGVydHk7DQo+ICsNCj4gKwlzdWNjID0gYXN0X2FzdGRwX3JlYWRfZWRpZChj b25uZWN0b3ItPmRldiwgZWRpZCk7DQo+ICsJaWYgKHN1Y2MgPCAwKQ0KPiArCQlnb3RvIGVy cl9rZnJlZTsNCj4gKw0KPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHko Y29ubmVjdG9yLCBlZGlkKTsNCj4gKwljb3VudCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25u ZWN0b3IsIGVkaWQpOw0KPiArCWtmcmVlKGVkaWQpOw0KPiArDQo+ICsJcmV0dXJuIGNvdW50 Ow0KPiArDQo+ICtlcnJfa2ZyZWU6DQo+ICsJa2ZyZWUoZWRpZCk7DQo+ICtlcnJfZHJtX2Nv bm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eToNCj4gKwlkcm1fY29ubmVjdG9yX3VwZGF0 ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgTlVMTCk7DQo+ICsJcmV0dXJuIDA7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MgYXN0X2FzdGRwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7DQo+ICsJLmdldF9tb2Rl cyA9IGFzdF9hc3RkcF9jb25uZWN0b3JfaGVscGVyX2dldF9tb2RlcywNCj4gK307DQo+ICsN Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBhc3RfYXN0ZHBf Y29ubmVjdG9yX2Z1bmNzID0gew0KPiArCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9yZXNldCwNCj4gKwkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2lu Z2xlX2Nvbm5lY3Rvcl9tb2RlcywNCj4gKwkuZGVzdHJveSA9IGRybV9jb25uZWN0b3JfY2xl YW51cCwNCj4gKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVy X2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsDQo+ICsJLmF0b21pY19kZXN0cm95X3N0YXRl ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsDQo+ICt9Ow0K PiArDQo+ICtzdGF0aWMgaW50IGFzdF9hc3RkcF9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQ0KPiArew0K PiArCWludCByZXQ7DQo+ICsNCj4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBj b25uZWN0b3IsICZhc3RfYXN0ZHBfY29ubmVjdG9yX2Z1bmNzLA0KPiArCQkJCSBEUk1fTU9E RV9DT05ORUNUT1JfRGlzcGxheVBvcnQpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiBy ZXQ7DQo+ICsNCj4gKwlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmYXN0 X2FzdGRwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOw0KPiArDQo+ICsJY29ubmVjdG9yLT5p bnRlcmxhY2VfYWxsb3dlZCA9IDA7DQo+ICsJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93 ZWQgPSAwOw0KPiArDQo+ICsJY29ubmVjdG9yLT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BP TExfQ09OTkVDVDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg aW50IGFzdF9hc3RkcF9vdXRwdXRfaW5pdChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCkNCj4g K3sNCj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmFzdC0+YmFzZTsNCj4gKwlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSAmYXN0LT5jcnRjOw0KPiArCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9ICZhc3QtPm91dHB1dC5hc3RkcC5lbmNvZGVyOw0KPiArCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmYXN0LT5vdXRwdXQuYXN0ZHAuY29ubmVjdG9y Ow0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlyZXQgPSBkcm1fc2ltcGxlX2VuY29kZXJfaW5p dChkZXYsIGVuY29kZXIsIERSTV9NT0RFX0VOQ09ERVJfVE1EUyk7DQo+ICsJaWYgKHJldCkN Cj4gKwkJcmV0dXJuIHJldDsNCj4gKwllbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9IGRybV9j cnRjX21hc2soY3J0Yyk7DQo+ICsNCj4gKwlyZXQgPSBhc3RfYXN0ZHBfY29ubmVjdG9yX2lu aXQoZGV2LCBjb25uZWN0b3IpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiByZXQ7DQo+ ICsNCj4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGNvbm5lY3Rvciwg ZW5jb2Rlcik7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJl dHVybiAwOw0KPiArfQ0KPiArDQo+ICAgLyoNCj4gICAgKiBNb2RlIGNvbmZpZw0KPiAgICAq Lw0KPiBAQCAtMTU2Myw3ICsxNjc1LDggQEAgaW50IGFzdF9tb2RlX2NvbmZpZ19pbml0KHN0 cnVjdCBhc3RfcHJpdmF0ZSAqYXN0KQ0KPiAgIAkgICAgYXN0LT5jaGlwID09IEFTVDIyMDAg fHwNCj4gICAJICAgIGFzdC0+Y2hpcCA9PSBBU1QyMzAwIHx8DQo+ICAgCSAgICBhc3QtPmNo aXAgPT0gQVNUMjQwMCB8fA0KPiAtCSAgICBhc3QtPmNoaXAgPT0gQVNUMjUwMCkgew0KPiAr CSAgICBhc3QtPmNoaXAgPT0gQVNUMjUwMCB8fA0KPiArCSAgICBhc3QtPmNoaXAgPT0gQVNU MjYwMCkgew0KPiAgIAkJZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSAxOTIwOw0KPiAg IAkJZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gMjA0ODsNCj4gICAJfSBlbHNlIHsN Cj4gQEAgLTE1OTQsNiArMTcwNyw5IEBAIGludCBhc3RfbW9kZV9jb25maWdfaW5pdChzdHJ1 Y3QgYXN0X3ByaXZhdGUgKmFzdCkNCj4gICAJY2FzZSBBU1RfVFhfRFA1MDE6DQo+ICAgCQly ZXQgPSBhc3RfZHA1MDFfb3V0cHV0X2luaXQoYXN0KTsNCj4gICAJCWJyZWFrOw0KPiArCWNh c2UgQVNUX1RYX0FTVERQOg0KPiArCQlyZXQgPSBhc3RfYXN0ZHBfb3V0cHV0X2luaXQoYXN0 KTsNCj4gKwkJYnJlYWs7DQo+ICAgCX0NCj4gICAJaWYgKHJldCkNCj4gICAJCXJldHVybiBy ZXQ7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMgYi9k cml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMNCj4gaW5kZXggYjVkOTJmNjUyLi4wYWE5 Y2YwZmIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3Bvc3QuYw0K PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9wb3N0LmMNCj4gQEAgLTM3OSw3ICsz NzksOSBAQCB2b2lkIGFzdF9wb3N0X2dwdShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPiAg IAlhc3RfZW5hYmxlX21taW8oZGV2KTsNCj4gICAJYXN0X3NldF9kZWZfZXh0X3JlZyhkZXYp Ow0KPiANCj4gLQlpZiAoYXN0LT5jb25maWdfbW9kZSA9PSBhc3RfdXNlX3AyYSkgew0KPiAr CWlmIChhc3QtPmNoaXAgPT0gQVNUMjYwMCkgew0KPiArCQlhc3RfZHBfbGF1bmNoKGRldiwg MSk7DQo+ICsJfSBlbHNlIGlmIChhc3QtPmNvbmZpZ19tb2RlID09IGFzdF91c2VfcDJhKSB7 DQo+ICAgCQlpZiAoYXN0LT5jaGlwID09IEFTVDI1MDApDQo+ICAgCQkJYXN0X3Bvc3RfY2hp cF8yNTAwKGRldik7DQo+ICAgCQllbHNlIGlmIChhc3QtPmNoaXAgPT0gQVNUMjMwMCB8fCBh c3QtPmNoaXAgPT0gQVNUMjQwMCkNCj4gDQo+IGJhc2UtY29tbWl0OiBjNTRiMzlhNTY1MjI3 NTM4YzUyZWFkMjM0OWViMTdkNTRhYWRkNmY3DQo+IC0tDQo+IDIuMjcuMA0KPiANCg0KLS0g DQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERldmVsb3Blcg0KU1VTRSBT b2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxkc3RyLiA1LCA5MDQwOSBO w7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykNCkdlc2Now6Rm dHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------N4srDtER4dOhU45FvAM8PSkQ-- --------------p6IIyWgGff3UfrtRl3d7GOsd Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmKfNtMFAwAAAAAACgkQlh/E3EQov+Ae LA//Uh3KBVRPPsdBFkckkTzeoTS9yHRFS2mBDyYSdW+PsePF6vItK7V66PkxJ3XbZzlm9Q+DlEJQ 0JbYED59lcHwFTwOpV9OVN0vbSHRuICzc8JRtJznD74ZcaakvNJElTmUX/9FZMplkfX9zrAP3hhA WjSBg/i8tbNtz5XV61rSlNFd4Jwc4LrSrXd3ruVTF+0uD3acBa9+swVDfhdndokArHMs9IWKCLNo EmPLbcH4TCM/ke/HHTQyHE8OdS2j77FqJRmRTeggkhl2K71tK42I81h7OvBhwzSt9TpqoqPixP4A iDBdSX1RHsjI609bwFjEZ+3wsu3BCoT2xdXPjvpIa+nWTFniH7Xyvu9bYmWGd+QpocLSs65pnOaM CeG8q4LS+j4VOYH8Myk4LZOTVyyZ8/hFSbsuxrfyY37fiGDHuBClHlXGlaDXOdL+ZxE0Z9tfD0V7 s1q8YyCdnKlhnjpoe/9v/R65QFcQjrKxTyNYBTmmFCmA1gC84Tu11mIWszxecFujr1UZ0ucvIV5d eNX6KWd7CR7xo4GVeMQXRdS3toYc8MJositZCVoBO/HYKXdvALkVQMktKlvpQq/QSEagq9BsMF/X FOdC2uzxWju5R5J7ogGeKxKcKJ3vq22iALjt4btKo400kDea0Me+Gw+N/hcilTOu6FbBZjzu4TuH x5E= =tq/D -----END PGP SIGNATURE----- --------------p6IIyWgGff3UfrtRl3d7GOsd--