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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D1CA9CD4855 for ; Tue, 12 May 2026 08:24:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 24BBE10E9A6; Tue, 12 May 2026 08:24:34 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.b="CSRZZqjN"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="hFUYmwyG"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="CSRZZqjN"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="hFUYmwyG"; dkim-atps=neutral Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by gabe.freedesktop.org (Postfix) with ESMTPS id F105E10E689 for ; Tue, 12 May 2026 08:24:31 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B7E1675BE4; Tue, 12 May 2026 08:24:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1778574270; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=4iBq1/ABJqkll5FE9u9WRAC0iYpsY0AQY5N1i1CvLw4=; b=CSRZZqjNq7wh6aFVc9MYF5apKg4+yHmbAs9+C3W7v+8voL4BsFwBHwGokjc+JUlfLUgPUl +ErCalxFbGBubiHfH6amkLqL7MfhgpoK3qR8N1OPKy2cccCcQAv19kQUTh0wvgvUglxA7P pNDDXbARH0zGjqESJ7mnRh3H2KG8Dnk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1778574270; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=4iBq1/ABJqkll5FE9u9WRAC0iYpsY0AQY5N1i1CvLw4=; b=hFUYmwyGsWR7OeUX868+rn9YOHtF59p/a65GotIAhtVcMInDeCdZk41NQ36AcWkIdsZKbB 9e/xsVF+1lmKCVAw== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1778574270; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=4iBq1/ABJqkll5FE9u9WRAC0iYpsY0AQY5N1i1CvLw4=; b=CSRZZqjNq7wh6aFVc9MYF5apKg4+yHmbAs9+C3W7v+8voL4BsFwBHwGokjc+JUlfLUgPUl +ErCalxFbGBubiHfH6amkLqL7MfhgpoK3qR8N1OPKy2cccCcQAv19kQUTh0wvgvUglxA7P pNDDXbARH0zGjqESJ7mnRh3H2KG8Dnk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1778574270; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=4iBq1/ABJqkll5FE9u9WRAC0iYpsY0AQY5N1i1CvLw4=; b=hFUYmwyGsWR7OeUX868+rn9YOHtF59p/a65GotIAhtVcMInDeCdZk41NQ36AcWkIdsZKbB 9e/xsVF+1lmKCVAw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 46DBD593A9; Tue, 12 May 2026 08:24:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id oJT4D77jAmqadgAAD6G6ig (envelope-from ); Tue, 12 May 2026 08:24:30 +0000 Message-ID: <5157ab4d-3195-49f3-a3e9-aef6d58e869e@suse.de> Date: Tue, 12 May 2026 10:24:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] drm/verisilicon: add support for Nuvoton MA35D1 DCUltra Lite display controller To: Joey Lu , zhengxingda@iscas.ac.cn, maarten.lankhorst@linux.intel.com, mripard@kernel.org, airlied@gmail.com, simona@ffwll.ch, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: ychuang3@nuvoton.com, schung@nuvoton.com, yclu4@nuvoton.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260511075142.54752-1-a0987203069@gmail.com> <20260511075142.54752-3-a0987203069@gmail.com> Content-Language: en-US From: Thomas Zimmermann Autocrypt: addr=tzimmermann@suse.de; keydata= xsBNBFs50uABCADEHPidWt974CaxBVbrIBwqcq/WURinJ3+2WlIrKWspiP83vfZKaXhFYsdg XH47fDVbPPj+d6tQrw5lPQCyqjwrCPYnq3WlIBnGPJ4/jreTL6V+qfKRDlGLWFjZcsrPJGE0 BeB5BbqP5erN1qylK9i3gPoQjXGhpBpQYwRrEyQyjuvk+Ev0K1Jc5tVDeJAuau3TGNgah4Yc hdHm3bkPjz9EErV85RwvImQ1dptvx6s7xzwXTgGAsaYZsL8WCwDaTuqFa1d1jjlaxg6+tZsB 9GluwvIhSezPgnEmimZDkGnZRRSFiGP8yjqTjjWuf0bSj5rUnTGiyLyRZRNGcXmu6hjlABEB AAHNJ1Rob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPsLAjgQTAQgAOAIb AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftODH AAoJEGgNwR1TC3ojx1wH/0hKGWugiqDgLNXLRD/4TfHBEKmxIrmfu9Z5t7vwUKfwhFL6hqvo lXPJJKQpQ2z8+X2vZm/slsLn7J1yjrOsoJhKABDi+3QWWSGkaGwRJAdPVVyJMfJRNNNIKwVb U6B1BkX2XDKDGffF4TxlOpSQzdtNI/9gleOoUA8+jy8knnDYzjBNOZqLG2FuTdicBXblz0Mf vg41gd9kCwYXDnD91rJU8tzylXv03E75NCaTxTM+FBXPmsAVYQ4GYhhgFt8S2UWMoaaABLDe 7l5FdnLdDEcbmd8uLU2CaG4W2cLrUaI4jz2XbkcPQkqTQ3EB67hYkjiEE6Zy3ggOitiQGcqp j//OwE0EWznS4AEIAMYmP4M/V+T5RY5at/g7rUdNsLhWv1APYrh9RQefODYHrNRHUE9eosYb T6XMryR9hT8XlGOYRwKWwiQBoWSDiTMo/Xi29jUnn4BXfI2px2DTXwc22LKtLAgTRjP+qbU6 3Y0xnQN29UGDbYgyyK51DW3H0If2a3JNsheAAK+Xc9baj0LGIc8T9uiEWHBnCH+RdhgATnWW GKdDegUR5BkDfDg5O/FISymJBHx2Dyoklv5g4BzkgqTqwmaYzsl8UxZKvbaxq0zbehDda8lv hFXodNFMAgTLJlLuDYOGLK2AwbrS3Sp0AEbkpdJBb44qVlGm5bApZouHeJ/+n+7r12+lqdsA EQEAAcLAdgQYAQgAIAIbDBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftOH6AAoJEGgNwR1T C3ojVSkIALpAPkIJPQoURPb1VWjh34l0HlglmYHvZszJWTXYwavHR8+k6Baa6H7ufXNQtThR yIxJrQLW6rV5lm7TjhffEhxVCn37+cg0zZ3j7zIsSS0rx/aMwi6VhFJA5hfn3T0TtrijKP4A SAQO9xD1Zk9/61JWk8OysuIh7MXkl0fxbRKWE93XeQBhIJHQfnc+YBLprdnxR446Sh8Wn/2D Ya8cavuWf2zrB6cZurs048xe0UbSW5AOSo4V9M0jzYI4nZqTmPxYyXbm30Kvmz0rYVRaitYJ 4kyYYMhuULvrJDMjZRvaNe52tkKAvMevcGdt38H4KSVXAylqyQOW5zvPc4/sq9c= In-Reply-To: <20260511075142.54752-3-a0987203069@gmail.com> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[dt]; FUZZY_RATELIMITED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWELVE(0.00)[16]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_TO(0.00)[gmail.com,iscas.ac.cn,linux.intel.com,kernel.org,ffwll.ch]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid, suse.com:url, imap1.dmz-prg2.suse.org:helo] X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGksCgppbnN0ZWFkIG9mIHRoaXMgaWYtZWxzZSBicmFuY2hlcnksIEkgc3Ryb25nbHkgcmVjb21t ZW5kIHRvIGFkZCBhIG5ldyAKZmlsZSB3aXRoIGEgbmV3IG1vZGUtc2V0dGluZyBwaXBlbGluZSBm b3IgdGhlIG5ldyBjaGlwc2V0LsKgIFlvdSBjYW4gCnNoYXJlIGV4aXN0aW5nIGhlbHBlcnMgd2hl cmUgcG9zc2libGUsIGFuZCBpbXBsZW1lbnQgdmFyaWFudHMgd2hlcmUgCmNoaXBzIGRpZmZlci7C oCBJdCdzIGEgYml0IG1vcmUgY29kZSwgYnV0IHdpbGwgYmUgYSBsb3QgZWFzaWVyIHRvIAptYWlu dGFpbiBpbiB0aGUgZnV0dXJlLgoKU2VlIGFzdCBhbmQgbWdhZzIwMCBmb3IgZXhhbXBsZS4gQm90 aCBkcml2ZXJzIHN1cHBvcnQgdmFyaW91cyByZXZpc2lvbnMgCm9mIHRoZWlyIGNoaXBzZXQsIHdo ZXJlIGVhY2ggcmV2IGhhcyBpdHMgb2RkaXRpZXMuCgpCZXN0IHJlZ2FyZHMKVGhvbWFzCgpBbSAx MS4wNS4yNiB1bSAwOTo1MSBzY2hyaWViIEpvZXkgTHU6Cj4gVGhlIE51dm90b24gTUEzNUQxIFNv QyBpbnRlZ3JhdGVzIGEgVmVyaXNpbGljb24gRENVbHRyYSBMaXRlIGRpc3BsYXkKPiBjb250cm9s bGVyLCB3aGljaCBpcyBhIHByZXZpb3VzIGdlbmVyYXRpb24gb2YgdGhlIERDODAwMCBzZXJpZXMu IFdoaWxlCj4gdGhlIGdlbmVyYWwgcmVnaXN0ZXIgbGF5b3V0IGlzIHNpbWlsYXIgdG8gdGhlIERD ODAwMCwgdGhlcmUgYXJlIHNldmVyYWwKPiBrZXkgZGlmZmVyZW5jZXMgdGhhdCByZXF1aXJlIHBl ci12YXJpYW50IGhhbmRsaW5nIGluIHRoZSBkcml2ZXIuCj4KPiBBZGQgYSB2c19kY19pbmZvIHBs YXRmb3JtIGRhdGEgc3RydWN0dXJlIChpbiB2c19od2RiLmgpIHRvIGRlc2NyaWJlCj4gcGVyLUlQ LXZhcmlhbnQgY2FwYWJpbGl0aWVzLCBhbmQgdXNlIGl0IHRocm91Z2hvdXQgdGhlIGRyaXZlciB0 byBzZWxlY3QKPiB0aGUgY29ycmVjdCBjb2RlIHBhdGhzIGF0IHJ1bnRpbWUuCj4KPiBLZXkgZGlm ZmVyZW5jZXMgYmV0d2VlbiBEQzgwMDAgYW5kIERDVWx0cmEgTGl0ZSBoYW5kbGVkOgo+Cj4gMS4g Tm8gY2hpcCBpZGVudGl0eSByZWdpc3RlcnMgKDB4MDAyMC0weDAwMzApOiBEQ1VsdHJhIExpdGUg dXNlcyBzdGF0aWMKPiAgICAgcGxhdGZvcm0gZGF0YSBpbnN0ZWFkIG9mIHJlYWRpbmcgbW9kZWwv cmV2aXNpb24vY3VzdG9tZXJfaWQgZnJvbSBIVy4KPgo+IDIuIE5vIENPTkZJR19FWCBjb21taXQg bWVjaGFuaXNtOiBEQzgwMDAgdXNlcyByZWdpc3RlcnMgYXQgMHgxQ0MwCj4gICAgIChGQl9DT05G SUdfRVgpLCAweDI0RDggKEZCX1RPUF9MRUZUKSwgMHgyNEUwIChGQl9CT1RUT01fUklHSFQpLAo+ ICAgICAweDI1MTAgKEZCX0JMRU5EX0NPTkZJRyksIDB4MjUxOCAoUEFORUxfQ09ORklHX0VYKS4g RENVbHRyYSBMaXRlCj4gICAgIG9taXRzIGFsbCBvZiB0aGVzZSBhbmQgaW5zdGVhZCB1c2VzIGVu YWJsZS9yZXNldCBiaXRzIGluIEZCX0NPTkZJRwo+ICAgICAoYml0IDAgPSBlbmFibGUsIGJpdCA0 ID0gcmVzZXQpIGZvciBkaXJlY3QgZnJhbWVidWZmZXIgdXBkYXRlcy4KPgo+IDMuIE5vIFBBTkVM X1NUQVJUIHJlZ2lzdGVyICgweDFDQ0MpOiBEQ1VsdHJhIExpdGUgcGFuZWwgb3V0cHV0IHN0YXJ0 cwo+ICAgICB3aGVuIFBBTkVMX0NPTkZJRy5SVU5OSU5HIGlzIHNldDsgbm8gc2VwYXJhdGUgbXVs dGktZGlzcGxheSBzeW5jCj4gICAgIHN0YXJ0IHJlZ2lzdGVyIGlzIG5lZWRlZC4KPgo+IDQuIERp ZmZlcmVudCBJUlEgcmVnaXN0ZXJzOiBEQ1VsdHJhIExpdGUgdXNlcyAweDE0N0MgKElSUV9TVEEp IC8KPiAgICAgMHgxNDgwIChJUlFfRU4pOyBEQzgwMDAgdXNlcyAweDAwMTAgKElSUV9BQ0spIC8g MHgwMDE0IChJUlFfRU4pLgo+Cj4gNS4gRGlmZmVyZW50IGNsb2NrL3Jlc2V0IHRvcG9sb2d5OiBE Q1VsdHJhIExpdGUgcmVxdWlyZXMgb25seSAiY29yZSIKPiAgICAgKGJ1cyBnYXRlKSBhbmQgInBp eDAiIChwaXhlbCBkaXZpZGVyKSBjbG9ja3Mgd2l0aCBubyByZXNldCBsaW5lcwo+ICAgICBtYW5h Z2VkIGJ5IHRoZSBkcml2ZXIuIERDODAwMCBuZWVkcyBjb3JlL2F4aS9haGIgY2xvY2tzIGFuZCB0 aHJlZQo+ICAgICByZXNldHMuCj4KPiA2LiBTaW5nbGUgb3V0cHV0IG9ubHk6IERDVWx0cmEgTGl0 ZSBoYXMgb25lIGRpc3BsYXkgb3V0cHV0OyBwZXItb3V0cHV0Cj4gICAgIGluZGV4IGxvZ2ljIGlz IHN0aWxsIGluIHBsYWNlIGJ1dCBkaXNwbGF5X2NvdW50IGlzIGZpeGVkIGF0IDEuCj4KPiA3LiBS ZWR1Y2VkIHJlZ2lzdGVyIHNwYWNlOiBtYXhfcmVnaXN0ZXIgaXMgMHgyMDAwIHZzIERDODAwMCdz IDB4MjU0NC4KPgo+IEFkZCB0aGUgIm51dm90b24sbWEzNWQxLWRjdSIgY29tcGF0aWJsZSBzdHJp bmcgdG8gdGhlIE9GIG1hdGNoIHRhYmxlLAo+IGV4dGVuZCBLY29uZmlnIHRvIGFsbG93IGJ1aWxk aW5nIG9uIEFSQ0hfTUEzNSBwbGF0Zm9ybXMsIGFuZCBleHBvc2UKPiB2c19mb3JtYXRzX25vX3l1 djQ0NCBhcyB0aGUgZGVmYXVsdCBmb3JtYXQgdGFibGUgZm9yIERDVWx0cmEgTGl0ZQo+IChZVVY0 NDQgYmxlbmRpbmcgaXMgYSBEQzgwMDAtb25seSBmZWF0dXJlKS4KPgo+IEFsbCBjaGFuZ2VzIGhh dmUgYmVlbiB0ZXN0ZWQgb24gTnV2b3RvbiBNQTM1RDEgaGFyZHdhcmUgYW5kIGFyZQo+IGZ1bmN0 aW9uaW5nIGNvcnJlY3RseS4KPgo+IFNpZ25lZC1vZmYtYnk6IEpvZXkgTHUgPGEwOTg3MjAzMDY5 QGdtYWlsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmln ICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Jy aWRnZS5jICAgICAgIHwgIDI4ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92 c19jcnRjLmMgICAgICAgICB8ICAxMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L3ZzX2RjLmMgICAgICAgICAgIHwgMTI5ICsrKysrKysrKysrKy0tLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmggICAgICAgICAgIHwgICAxICsKPiAgIGRyaXZlcnMv Z3B1L2RybS92ZXJpc2lsaWNvbi92c19kcm0uYyAgICAgICAgICB8ICAxNiArKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19od2RiLmMgICAgICAgICB8ICAgMiArLQo+ICAgZHJp dmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2h3ZGIuaCAgICAgICAgIHwgIDI1ICsrKysKPiAg IC4uLi9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3ByaW1hcnlfcGxhbmUuYyAgICB8ICA0MyArKyst LS0KPiAgIC4uLi9kcm0vdmVyaXNpbGljb24vdnNfcHJpbWFyeV9wbGFuZV9yZWdzLmggICB8ICAg MiArCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL0tjb25maWcg Yi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vS2NvbmZpZwo+IGluZGV4IDdjY2U4NmVjODYw My4uMjk1ZDI0NmViNGI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNv bi9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL0tjb25maWcKPiBA QCAtMiw3ICsyLDcgQEAKPiAgIGNvbmZpZyBEUk1fVkVSSVNJTElDT05fREMKPiAgIAl0cmlzdGF0 ZSAiRFJNIFN1cHBvcnQgZm9yIFZlcmlzaWxpY29uIERDLXNlcmllcyBkaXNwbGF5IGNvbnRyb2xs ZXJzIgo+ICAgCWRlcGVuZHMgb24gRFJNICYmIENPTU1PTl9DTEsKPiAtCWRlcGVuZHMgb24gUklT Q1YgfHwgQ09NUElMRV9URVNUCj4gKwlkZXBlbmRzIG9uIFJJU0NWIHx8IEFSQ0hfTUEzNSB8fCBD T01QSUxFX1RFU1QKPiAgIAlzZWxlY3QgRFJNX0JSSURHRV9DT05ORUNUT1IKPiAgIAlzZWxlY3Qg RFJNX0NMSUVOVF9TRUxFQ1RJT04KPiAgIAlzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19icmlkZ2UuYyBiL2RyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19icmlkZ2UuYwo+IGluZGV4IDdhOTMwNDkzNjhkYi4u MjI1YWYzMjJkZTMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92 c19icmlkZ2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19icmlkZ2Uu Ywo+IEBAIC0xNjQsMTMgKzE2NCwxNiBAQCBzdGF0aWMgdm9pZCB2c19icmlkZ2VfZW5hYmxlX2Nv bW1vbihzdHJ1Y3QgdnNfY3J0YyAqY3J0YywKPiAgIAkJCVZTRENfRElTUF9QQU5FTF9DT05GSUdf Q0xLX0VOKTsKPiAgIAlyZWdtYXBfc2V0X2JpdHMoZGMtPnJlZ3MsIFZTRENfRElTUF9QQU5FTF9D T05GSUcob3V0cHV0KSwKPiAgIAkJCVZTRENfRElTUF9QQU5FTF9DT05GSUdfUlVOTklORyk7Cj4g LQlyZWdtYXBfY2xlYXJfYml0cyhkYy0+cmVncywgVlNEQ19ESVNQX1BBTkVMX1NUQVJULAo+IC0J CQkgIFZTRENfRElTUF9QQU5FTF9TVEFSVF9NVUxUSV9ESVNQX1NZTkMpOwo+IC0JcmVnbWFwX3Nl dF9iaXRzKGRjLT5yZWdzLCBWU0RDX0RJU1BfUEFORUxfU1RBUlQsCj4gLQkJCVZTRENfRElTUF9Q QU5FTF9TVEFSVF9SVU5OSU5HKG91dHB1dCkpOwo+ICAgCj4gLQlyZWdtYXBfc2V0X2JpdHMoZGMt PnJlZ3MsIFZTRENfRElTUF9QQU5FTF9DT05GSUdfRVgoY3J0Yy0+aWQpLAo+IC0JCQlWU0RDX0RJ U1BfUEFORUxfQ09ORklHX0VYX0NPTU1JVCk7Cj4gKwlpZiAoZGMtPmluZm8tPmhhc19jb25maWdf ZXgpIHsKPiArCQlyZWdtYXBfY2xlYXJfYml0cyhkYy0+cmVncywgVlNEQ19ESVNQX1BBTkVMX1NU QVJULAo+ICsJCQkJICBWU0RDX0RJU1BfUEFORUxfU1RBUlRfTVVMVElfRElTUF9TWU5DKTsKPiAr CQlyZWdtYXBfc2V0X2JpdHMoZGMtPnJlZ3MsIFZTRENfRElTUF9QQU5FTF9TVEFSVCwKPiArCQkJ CVZTRENfRElTUF9QQU5FTF9TVEFSVF9SVU5OSU5HKG91dHB1dCkpOwo+ICsKPiArCQlyZWdtYXBf c2V0X2JpdHMoZGMtPnJlZ3MsIFZTRENfRElTUF9QQU5FTF9DT05GSUdfRVgoY3J0Yy0+aWQpLAo+ ICsJCQkJVlNEQ19ESVNQX1BBTkVMX0NPTkZJR19FWF9DT01NSVQpOwo+ICsJfQo+ICAgfQo+ICAg Cj4gICBzdGF0aWMgdm9pZCB2c19icmlkZ2VfYXRvbWljX2VuYWJsZV9kcGkoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiBAQCAtMjI4LDE0ICsyMzEsMTcgQEAgc3RhdGljIHZvaWQgdnNfYnJp ZGdlX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gICAJc3RydWN0 IHZzX2RjICpkYyA9IGNydGMtPmRjOwo+ICAgCXVuc2lnbmVkIGludCBvdXRwdXQgPSBjcnRjLT5p ZDsKPiAgIAo+IC0JcmVnbWFwX2NsZWFyX2JpdHMoZGMtPnJlZ3MsIFZTRENfRElTUF9QQU5FTF9T VEFSVCwKPiAtCQkJICBWU0RDX0RJU1BfUEFORUxfU1RBUlRfTVVMVElfRElTUF9TWU5DIHwKPiAt CQkJICBWU0RDX0RJU1BfUEFORUxfU1RBUlRfUlVOTklORyhvdXRwdXQpKTsKPiAgIAlyZWdtYXBf Y2xlYXJfYml0cyhkYy0+cmVncywgVlNEQ19ESVNQX1BBTkVMX0NPTkZJRyhvdXRwdXQpLAo+ICAg CQkJICBWU0RDX0RJU1BfUEFORUxfQ09ORklHX1JVTk5JTkcpOwo+ICAgCj4gLQlyZWdtYXBfc2V0 X2JpdHMoZGMtPnJlZ3MsIFZTRENfRElTUF9QQU5FTF9DT05GSUdfRVgoY3J0Yy0+aWQpLAo+IC0J CQlWU0RDX0RJU1BfUEFORUxfQ09ORklHX0VYX0NPTU1JVCk7Cj4gKwlpZiAoZGMtPmluZm8tPmhh c19jb25maWdfZXgpIHsKPiArCQlyZWdtYXBfY2xlYXJfYml0cyhkYy0+cmVncywgVlNEQ19ESVNQ X1BBTkVMX1NUQVJULAo+ICsJCQkJICBWU0RDX0RJU1BfUEFORUxfU1RBUlRfTVVMVElfRElTUF9T WU5DIHwKPiArCQkJCSAgVlNEQ19ESVNQX1BBTkVMX1NUQVJUX1JVTk5JTkcob3V0cHV0KSk7Cj4g Kwo+ICsJCXJlZ21hcF9zZXRfYml0cyhkYy0+cmVncywgVlNEQ19ESVNQX1BBTkVMX0NPTkZJR19F WChjcnRjLT5pZCksCj4gKwkJCQlWU0RDX0RJU1BfUEFORUxfQ09ORklHX0VYX0NPTU1JVCk7Cj4g Kwl9Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyB2 c19kcGlfYnJpZGdlX2Z1bmNzID0gewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVy aXNpbGljb24vdnNfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2NydGMu Ywo+IGluZGV4IDkwODAzNDQzOThjYS4uMmYzZTZkNDFjNjU3IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dmVyaXNpbGljb24vdnNfY3J0Yy5jCj4gQEAgLTE4LDYgKzE4LDcgQEAKPiAgICNpbmNsdWRlICJ2 c19kYy5oIgo+ICAgI2luY2x1ZGUgInZzX2RjX3RvcF9yZWdzLmgiCj4gICAjaW5jbHVkZSAidnNf ZHJtLmgiCj4gKyNpbmNsdWRlICJ2c19od2RiLmgiCj4gICAjaW5jbHVkZSAidnNfcGxhbmUuaCIK PiAgIAo+ICAgc3RhdGljIHZvaWQgdnNfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gQEAgLTEzMiw3ICsxMzMsMTEgQEAgc3RhdGljIGludCB2c19jcnRjX2VuYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAgCXN0cnVjdCB2c19jcnRjICp2Y3J0 YyA9IGRybV9jcnRjX3RvX3ZzX2NydGMoY3J0Yyk7Cj4gICAJc3RydWN0IHZzX2RjICpkYyA9IHZj cnRjLT5kYzsKPiAgIAo+IC0JcmVnbWFwX3NldF9iaXRzKGRjLT5yZWdzLCBWU0RDX1RPUF9JUlFf RU4sIFZTRENfVE9QX0lSUV9WU1lOQyh2Y3J0Yy0+aWQpKTsKPiArCWlmIChkYy0+aW5mby0+ZmFt aWx5ID09IFZTX0RDX0ZBTUlMWV9EQ1VMVFJBX0xJVEUpCj4gKwkJcmVnbWFwX3dyaXRlKGRjLT5y ZWdzLCBWU0RDX0RJU1BfSVJRX0VOLCBCSVQoMCkpOwo+ICsJZWxzZQo+ICsJCXJlZ21hcF9zZXRf Yml0cyhkYy0+cmVncywgVlNEQ19UT1BfSVJRX0VOLAo+ICsJCQkJVlNEQ19UT1BfSVJRX1ZTWU5D KHZjcnRjLT5pZCkpOwo+ICAgCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gQEAgLTE0Miw3ICsxNDcs MTEgQEAgc3RhdGljIHZvaWQgdnNfY3J0Y19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gICAJc3RydWN0IHZzX2NydGMgKnZjcnRjID0gZHJtX2NydGNfdG9fdnNfY3J0Yyhj cnRjKTsKPiAgIAlzdHJ1Y3QgdnNfZGMgKmRjID0gdmNydGMtPmRjOwo+ICAgCj4gLQlyZWdtYXBf Y2xlYXJfYml0cyhkYy0+cmVncywgVlNEQ19UT1BfSVJRX0VOLCBWU0RDX1RPUF9JUlFfVlNZTkMo dmNydGMtPmlkKSk7Cj4gKwlpZiAoZGMtPmluZm8tPmZhbWlseSA9PSBWU19EQ19GQU1JTFlfRENV TFRSQV9MSVRFKQo+ICsJCXJlZ21hcF93cml0ZShkYy0+cmVncywgVlNEQ19ESVNQX0lSUV9FTiwg MCk7Cj4gKwllbHNlCj4gKwkJcmVnbWFwX2NsZWFyX2JpdHMoZGMtPnJlZ3MsIFZTRENfVE9QX0lS UV9FTiwKPiArCQkJCSAgVlNEQ19UT1BfSVJRX1ZTWU5DKHZjcnRjLT5pZCkpOwo+ICAgfQo+ICAg Cj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZzX2NydGNfZnVuY3MgPSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kYy5jIGIvZHJp dmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmMKPiBpbmRleCBkYWQ5OTY3YmMxMGIuLjgy YTZhMjZmNmQ4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNf ZGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kYy5jCj4gQEAgLTks MjEgKzksNDUgQEAKPiAgICNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgo+ICAgCj4gICAjaW5j bHVkZSAidnNfY3J0Yy5oIgo+ICsjaW5jbHVkZSAidnNfY3J0Y19yZWdzLmgiCj4gICAjaW5jbHVk ZSAidnNfZGMuaCIKPiAgICNpbmNsdWRlICJ2c19kY190b3BfcmVncy5oIgo+ICAgI2luY2x1ZGUg InZzX2RybS5oIgo+ICAgI2luY2x1ZGUgInZzX2h3ZGIuaCIKPiAgIAo+IC1zdGF0aWMgY29uc3Qg c3RydWN0IHJlZ21hcF9jb25maWcgdnNfZGNfcmVnbWFwX2NmZyA9IHsKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCByZWdtYXBfY29uZmlnIHZzX2RjODAwMF9yZWdtYXBfY2ZnID0gewo+ICAgCS5yZWdf Yml0cyA9IDMyLAo+ICAgCS52YWxfYml0cyA9IDMyLAo+ICAgCS5yZWdfc3RyaWRlID0gc2l6ZW9m KHUzMiksCj4gLQkvKiBWU0RDX09WTF9DT05GSUdfRVgoMSkgKi8KPiAgIAkubWF4X3JlZ2lzdGVy ID0gMHgyNTQ0LAo+ICAgfTsKPiAgIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25m aWcgdnNfZGN1bHRyYV9saXRlX3JlZ21hcF9jZmcgPSB7Cj4gKwkucmVnX2JpdHMgPSAzMiwKPiAr CS52YWxfYml0cyA9IDMyLAo+ICsJLnJlZ19zdHJpZGUgPSBzaXplb2YodTMyKSwKPiArCS5tYXhf cmVnaXN0ZXIgPSAweDIwMDAsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHZzX2Rj X2luZm8gdnNfZGM4MDAwX2luZm8gPSB7Cj4gKwkuZmFtaWx5ID0gVlNfRENfRkFNSUxZX0RDODAw MCwKPiArCS5oYXNfY2hpcF9pZCA9IHRydWUsCj4gKwkuaGFzX2NvbmZpZ19leCA9IHRydWUsCj4g KwkucmVnbWFwX2NmZyA9ICZ2c19kYzgwMDBfcmVnbWFwX2NmZywKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgdnNfZGNfaW5mbyB2c19kY3VsdHJhX2xpdGVfaW5mbyA9IHsKPiArCS5m YW1pbHkgPSBWU19EQ19GQU1JTFlfRENVTFRSQV9MSVRFLAo+ICsJLmRpc3BsYXlfY291bnQgPSAx LAo+ICsJLmhhc19jaGlwX2lkID0gZmFsc2UsCj4gKwkuaGFzX2NvbmZpZ19leCA9IGZhbHNlLAo+ ICsJLnJlZ21hcF9jZmcgPSAmdnNfZGN1bHRyYV9saXRlX3JlZ21hcF9jZmcsCj4gKwkuZm9ybWF0 cyA9ICZ2c19mb3JtYXRzX25vX3l1djQ0NCwKPiArfTsKPiArCj4gICBzdGF0aWMgY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCB2c19kY19kcml2ZXJfZHRfbWF0Y2hbXSA9IHsKPiAtCXsgLmNvbXBh dGlibGUgPSAidmVyaXNpbGljb24sZGMiIH0sCj4gKwl7IC5jb21wYXRpYmxlID0gInZlcmlzaWxp Y29uLGRjIiwgLmRhdGEgPSAmdnNfZGM4MDAwX2luZm8gfSwKPiArCXsgLmNvbXBhdGlibGUgPSAi bnV2b3RvbixtYTM1ZDEtZGN1IiwgLmRhdGEgPSAmdnNfZGN1bHRyYV9saXRlX2luZm8gfSwKPiAg IAl7fSwKPiAgIH07Cj4gICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB2c19kY19kcml2ZXJfZHRf bWF0Y2gpOwo+IEBAIC0zMyw2ICs1NywxMyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdnNfZGNfaXJx X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcHJpdmF0ZSkKPiAgIAlzdHJ1Y3QgdnNfZGMgKmRjID0g cHJpdmF0ZTsKPiAgIAl1MzIgaXJxczsKPiAgIAo+ICsJaWYgKGRjLT5pbmZvLT5mYW1pbHkgPT0g VlNfRENfRkFNSUxZX0RDVUxUUkFfTElURSkgewo+ICsJCXJlZ21hcF9yZWFkKGRjLT5yZWdzLCBW U0RDX0RJU1BfSVJRX1NUQSwgJmlycXMpOwo+ICsJCWlmIChpcnFzICYgQklUKDApKQo+ICsJCQl2 c19kcm1faGFuZGxlX2lycShkYywgVlNEQ19UT1BfSVJRX1ZTWU5DKDApKTsKPiArCQlyZXR1cm4g SVJRX0hBTkRMRUQ7Cj4gKwl9Cj4gKwo+ICAgCXJlZ21hcF9yZWFkKGRjLT5yZWdzLCBWU0RDX1RP UF9JUlFfQUNLLCAmaXJxcyk7Cj4gICAKPiAgIAl2c19kcm1faGFuZGxlX2lycShkYywgaXJxcyk7 Cj4gQEAgLTQzLDYgKzc0LDcgQEAgc3RhdGljIGlycXJldHVybl90IHZzX2RjX2lycV9oYW5kbGVy KGludCBpcnEsIHZvaWQgKnByaXZhdGUpCj4gICBzdGF0aWMgaW50IHZzX2RjX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICB7Cj4gICAJc3RydWN0IGRldmljZSAqZGV2ID0g JnBkZXYtPmRldjsKPiArCWNvbnN0IHN0cnVjdCB2c19kY19pbmZvICppbmZvOwo+ICAgCXN0cnVj dCB2c19kYyAqZGM7Cj4gICAJdm9pZCBfX2lvbWVtICpyZWdzOwo+ICAgCXVuc2lnbmVkIGludCBw b3J0X2NvdW50LCBpOwo+IEBAIC01NSw2ICs4NywxMCBAQCBzdGF0aWMgaW50IHZzX2RjX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJCXJldHVybiAtRU5PREVWOwo+ICAg CX0KPiAgIAo+ICsJaW5mbyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ICsJaWYg KCFpbmZvKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiAgIAlwb3J0X2NvdW50ID0gb2ZfZ3Jh cGhfZ2V0X3BvcnRfY291bnQoZGV2LT5vZl9ub2RlKTsKPiAgIAlpZiAoIXBvcnRfY291bnQpIHsK PiAgIAkJZGV2X2VycihkZXYsICJjYW4ndCBmaW5kIERDIGRvd25zdHJlYW0gcG9ydHNcbiIpOwo+ IEBAIC03NSwxNSArMTExLDMxIEBAIHN0YXRpYyBpbnQgdnNfZGNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAlpZiAoIWRjKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAg IAo+IC0JZGMtPnJzdHNbMF0uaWQgPSAiY29yZSI7Cj4gLQlkYy0+cnN0c1sxXS5pZCA9ICJheGki Owo+IC0JZGMtPnJzdHNbMl0uaWQgPSAiYWhiIjsKPiArCWRjLT5pbmZvID0gaW5mbzsKPiAgIAo+ IC0JcmV0ID0gZGV2bV9yZXNldF9jb250cm9sX2J1bGtfZ2V0X29wdGlvbmFsX3NoYXJlZChkZXYs IFZTRENfUkVTRVRfQ09VTlQsCj4gLQkJCQkJCQkgIGRjLT5yc3RzKTsKPiAtCWlmIChyZXQpIHsK PiAtCQlkZXZfZXJyKGRldiwgImNhbid0IGdldCByZXNldCBsaW5lc1xuIik7Cj4gLQkJcmV0dXJu IHJldDsKPiArCWlmIChpbmZvLT5mYW1pbHkgPT0gVlNfRENfRkFNSUxZX0RDODAwMCkgewo+ICsJ CWRjLT5yc3RzWzBdLmlkID0gImNvcmUiOwo+ICsJCWRjLT5yc3RzWzFdLmlkID0gImF4aSI7Cj4g KwkJZGMtPnJzdHNbMl0uaWQgPSAiYWhiIjsKPiArCj4gKwkJcmV0ID0gZGV2bV9yZXNldF9jb250 cm9sX2J1bGtfZ2V0X29wdGlvbmFsX3NoYXJlZChkZXYsCj4gKwkJCQlWU0RDX1JFU0VUX0NPVU5U LCBkYy0+cnN0cyk7Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlkZXZfZXJyKGRldiwgImNhbid0IGdl dCByZXNldCBsaW5lc1xuIik7Cj4gKwkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICsKPiArCQlkYy0+ YXhpX2NsayA9IGRldm1fY2xrX2dldF9lbmFibGVkKGRldiwgImF4aSIpOwo+ICsJCWlmIChJU19F UlIoZGMtPmF4aV9jbGspKSB7Cj4gKwkJCWRldl9lcnIoZGV2LCAiY2FuJ3QgZ2V0IGF4aSBjbG9j a1xuIik7Cj4gKwkJCXJldHVybiBQVFJfRVJSKGRjLT5heGlfY2xrKTsKPiArCQl9Cj4gKwo+ICsJ CWRjLT5haGJfY2xrID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoZGV2LCAiYWhiIik7Cj4gKwkJaWYg KElTX0VSUihkYy0+YWhiX2NsaykpIHsKPiArCQkJZGV2X2VycihkZXYsICJjYW4ndCBnZXQgYWhi IGNsb2NrXG4iKTsKPiArCQkJcmV0dXJuIFBUUl9FUlIoZGMtPmFoYl9jbGspOwo+ICsJCX0KPiAg IAl9Cj4gICAKPiAgIAlkYy0+Y29yZV9jbGsgPSBkZXZtX2Nsa19nZXRfZW5hYmxlZChkZXYsICJj b3JlIik7Cj4gQEAgLTkyLDI4ICsxNDQsMTggQEAgc3RhdGljIGludCB2c19kY19wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCQlyZXR1cm4gUFRSX0VSUihkYy0+Y29yZV9j bGspOwo+ICAgCX0KPiAgIAo+IC0JZGMtPmF4aV9jbGsgPSBkZXZtX2Nsa19nZXRfZW5hYmxlZChk ZXYsICJheGkiKTsKPiAtCWlmIChJU19FUlIoZGMtPmF4aV9jbGspKSB7Cj4gLQkJZGV2X2Vycihk ZXYsICJjYW4ndCBnZXQgYXhpIGNsb2NrXG4iKTsKPiAtCQlyZXR1cm4gUFRSX0VSUihkYy0+YXhp X2Nsayk7Cj4gLQl9Cj4gLQo+IC0JZGMtPmFoYl9jbGsgPSBkZXZtX2Nsa19nZXRfZW5hYmxlZChk ZXYsICJhaGIiKTsKPiAtCWlmIChJU19FUlIoZGMtPmFoYl9jbGspKSB7Cj4gLQkJZGV2X2Vycihk ZXYsICJjYW4ndCBnZXQgYWhiIGNsb2NrXG4iKTsKPiAtCQlyZXR1cm4gUFRSX0VSUihkYy0+YWhi X2Nsayk7Cj4gLQl9Cj4gLQo+ICAgCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Cj4g ICAJaWYgKGlycSA8IDApIHsKPiAgIAkJZGV2X2VycihkZXYsICJjYW4ndCBnZXQgaXJxXG4iKTsK PiAgIAkJcmV0dXJuIGlycTsKPiAgIAl9Cj4gICAKPiAtCXJldCA9IHJlc2V0X2NvbnRyb2xfYnVs a19kZWFzc2VydChWU0RDX1JFU0VUX0NPVU5ULCBkYy0+cnN0cyk7Cj4gLQlpZiAocmV0KSB7Cj4g LQkJZGV2X2VycihkZXYsICJjYW4ndCBkZWFzc2VydCByZXNldCBsaW5lc1xuIik7Cj4gLQkJcmV0 dXJuIHJldDsKPiArCWlmIChpbmZvLT5mYW1pbHkgPT0gVlNfRENfRkFNSUxZX0RDODAwMCkgewo+ ICsJCXJldCA9IHJlc2V0X2NvbnRyb2xfYnVsa19kZWFzc2VydChWU0RDX1JFU0VUX0NPVU5ULCBk Yy0+cnN0cyk7Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlkZXZfZXJyKGRldiwgImNhbid0IGRlYXNz ZXJ0IHJlc2V0IGxpbmVzXG4iKTsKPiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gICAJfQo+ICAg Cj4gICAJcmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKPiBA QCAtMTIzLDIzICsxNjUsMzAgQEAgc3RhdGljIGludCB2c19kY19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQo+ICAgCQlnb3RvIGVycl9yc3RfYXNzZXJ0Owo+ICAgCX0KPiAgIAo+ IC0JZGMtPnJlZ3MgPSBkZXZtX3JlZ21hcF9pbml0X21taW8oZGV2LCByZWdzLCAmdnNfZGNfcmVn bWFwX2NmZyk7Cj4gKwlkYy0+cmVncyA9IGRldm1fcmVnbWFwX2luaXRfbW1pbyhkZXYsIHJlZ3Ms IGluZm8tPnJlZ21hcF9jZmcpOwo+ICAgCWlmIChJU19FUlIoZGMtPnJlZ3MpKSB7Cj4gICAJCXJl dCA9IFBUUl9FUlIoZGMtPnJlZ3MpOwo+ICAgCQlnb3RvIGVycl9yc3RfYXNzZXJ0Owo+ICAgCX0K PiAgIAo+IC0JcmV0ID0gdnNfZmlsbF9jaGlwX2lkZW50aXR5KGRjLT5yZWdzLCAmZGMtPmlkZW50 aXR5KTsKPiAtCWlmIChyZXQpCj4gLQkJZ290byBlcnJfcnN0X2Fzc2VydDsKPiArCWlmIChpbmZv LT5oYXNfY2hpcF9pZCkgewo+ICsJCXJldCA9IHZzX2ZpbGxfY2hpcF9pZGVudGl0eShkYy0+cmVn cywgJmRjLT5pZGVudGl0eSk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBlcnJfcnN0X2Fzc2Vy dDsKPiAgIAo+IC0JZGV2X2luZm8oZGV2LCAiRm91bmQgREMleCByZXYgJXggY3VzdG9tZXIgJXhc biIsIGRjLT5pZGVudGl0eS5tb2RlbCwKPiAtCQkgZGMtPmlkZW50aXR5LnJldmlzaW9uLCBkYy0+ aWRlbnRpdHkuY3VzdG9tZXJfaWQpOwo+ICsJCWRldl9pbmZvKGRldiwgIkZvdW5kIERDJXggcmV2 ICV4IGN1c3RvbWVyICV4XG4iLAo+ICsJCQkgZGMtPmlkZW50aXR5Lm1vZGVsLCBkYy0+aWRlbnRp dHkucmV2aXNpb24sCj4gKwkJCSBkYy0+aWRlbnRpdHkuY3VzdG9tZXJfaWQpOwo+ICAgCj4gLQlp ZiAocG9ydF9jb3VudCA+IGRjLT5pZGVudGl0eS5kaXNwbGF5X2NvdW50KSB7Cj4gLQkJZGV2X2Vy cihkZXYsICJ0b28gbWFueSBkb3duc3RyZWFtIHBvcnRzIHRoYW4gSFcgY2FwYWJpbGl0eVxuIik7 Cj4gLQkJcmV0ID0gLUVJTlZBTDsKPiAtCQlnb3RvIGVycl9yc3RfYXNzZXJ0Owo+ICsJCWlmIChw b3J0X2NvdW50ID4gZGMtPmlkZW50aXR5LmRpc3BsYXlfY291bnQpIHsKPiArCQkJZGV2X2Vycihk ZXYsICJ0b28gbWFueSBkb3duc3RyZWFtIHBvcnRzIHRoYW4gSFcgY2FwYWJpbGl0eVxuIik7Cj4g KwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJCWdvdG8gZXJyX3JzdF9hc3NlcnQ7Cj4gKwkJfQo+ICsJ fSBlbHNlIHsKPiArCQkvKiBGaWxsIGlkZW50aXR5IGZyb20gcGxhdGZvcm0gZGF0YSAqLwo+ICsJ CWRjLT5pZGVudGl0eS5kaXNwbGF5X2NvdW50ID0gaW5mby0+ZGlzcGxheV9jb3VudDsKPiArCQlk Yy0+aWRlbnRpdHkuZm9ybWF0cyA9IGluZm8tPmZvcm1hdHM7Cj4gICAJfQo+ICAgCj4gICAJZm9y IChpID0gMDsgaSA8IGRjLT5pZGVudGl0eS5kaXNwbGF5X2NvdW50OyBpKyspIHsKPiBAQCAtMTY4 LDcgKzIxNyw4IEBAIHN0YXRpYyBpbnQgdnNfZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiAgIAlyZXR1cm4gMDsKPiAgIAo+ICAgZXJyX3JzdF9hc3NlcnQ6Cj4gLQlyZXNl dF9jb250cm9sX2J1bGtfYXNzZXJ0KFZTRENfUkVTRVRfQ09VTlQsIGRjLT5yc3RzKTsKPiArCWlm IChpbmZvLT5mYW1pbHkgPT0gVlNfRENfRkFNSUxZX0RDODAwMCkKPiArCQlyZXNldF9jb250cm9s X2J1bGtfYXNzZXJ0KFZTRENfUkVTRVRfQ09VTlQsIGRjLT5yc3RzKTsKPiAgIAlyZXR1cm4gcmV0 Owo+ICAgfQo+ICAgCj4gQEAgLTE4MCw3ICsyMzAsOCBAQCBzdGF0aWMgdm9pZCB2c19kY19yZW1v dmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIAo+ICAgCWRldl9zZXRfZHJ2ZGF0 YSgmcGRldi0+ZGV2LCBOVUxMKTsKPiAgIAo+IC0JcmVzZXRfY29udHJvbF9idWxrX2Fzc2VydChW U0RDX1JFU0VUX0NPVU5ULCBkYy0+cnN0cyk7Cj4gKwlpZiAoZGMtPmluZm8tPmZhbWlseSA9PSBW U19EQ19GQU1JTFlfREM4MDAwKQo+ICsJCXJlc2V0X2NvbnRyb2xfYnVsa19hc3NlcnQoVlNEQ19S RVNFVF9DT1VOVCwgZGMtPnJzdHMpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCB2c19kY19z aHV0ZG93bihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGMuaCBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2ls aWNvbi92c19kYy5oCj4gaW5kZXggZWQxMDE2ZjE4NzU4Li5mMDYxMzUxOWFmMzcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGMuaAo+IEBAIC0zMSw2ICszMSw3IEBAIHN0cnVjdCB2 c19kYyB7Cj4gICAJc3RydWN0IGNsayAqcGl4X2Nsa1tWU0RDX01BWF9PVVRQVVRTXTsKPiAgIAlz dHJ1Y3QgcmVzZXRfY29udHJvbF9idWxrX2RhdGEgcnN0c1tWU0RDX1JFU0VUX0NPVU5UXTsKPiAg IAo+ICsJY29uc3Qgc3RydWN0IHZzX2RjX2luZm8gKmluZm87Cj4gICAJc3RydWN0IHZzX2RybV9k ZXYgKmRybV9kZXY7Cj4gICAJc3RydWN0IHZzX2NoaXBfaWRlbnRpdHkgaWRlbnRpdHk7Cj4gICB9 Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJtLmMgYi9k cml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJtLmMKPiBpbmRleCBmZDI1OWQ1M2Y0OWYu LmZmMGZjNjY3MzAwNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24v dnNfZHJtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJtLmMKPiBA QCAtMjcsNiArMjcsNyBAQAo+ICAgI2luY2x1ZGUgInZzX2RjLmgiCj4gICAjaW5jbHVkZSAidnNf ZGNfdG9wX3JlZ3MuaCIKPiAgICNpbmNsdWRlICJ2c19kcm0uaCIKPiArI2luY2x1ZGUgInZzX2h3 ZGIuaCIKPiAgIAo+ICAgI2RlZmluZSBEUklWRVJfTkFNRQkidmVyaXNpbGljb24iCj4gICAjZGVm aW5lIERSSVZFUl9ERVNDCSJWZXJpc2lsaWNvbiBEQy1zZXJpZXMgZGlzcGxheSBjb250cm9sbGVy IGRyaXZlciIKPiBAQCAtNzIsMTIgKzczLDE5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX21vZGVfY29u ZmlnX2hlbHBlcl9mdW5jcyB2c19tb2RlX2NvbmZpZ19oZWxwZXJfZnVuY3MgPSB7Cj4gICAJLmF0 b21pY19jb21taXRfdGFpbCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsLAo+ICAgfTsK PiAgIAo+IC1zdGF0aWMgdm9pZCB2c19tb2RlX2NvbmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkcm0pCj4gK3N0YXRpYyB2b2lkIHZzX21vZGVfY29uZmlnX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRybSwgc3RydWN0IHZzX2RjICpkYykKPiAgIHsKPiAgIAlkcm0tPm1vZGVfY29uZmlnLm1p bl93aWR0aCA9IDA7Cj4gICAJZHJtLT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gMDsKPiAtCWRy bS0+bW9kZV9jb25maWcubWF4X3dpZHRoID0gODE5MjsKPiAtCWRybS0+bW9kZV9jb25maWcubWF4 X2hlaWdodCA9IDgxOTI7Cj4gKwo+ICsJaWYgKGRjLT5pbmZvLT5mYW1pbHkgPT0gVlNfRENfRkFN SUxZX0RDVUxUUkFfTElURSkgewo+ICsJCWRybS0+bW9kZV9jb25maWcubWF4X3dpZHRoID0gMTky MDsKPiArCQlkcm0tPm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPSAxMDgwOwo+ICsJfSBlbHNlIHsK PiArCQlkcm0tPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IDgxOTI7Cj4gKwkJZHJtLT5tb2RlX2Nv bmZpZy5tYXhfaGVpZ2h0ID0gODE5MjsKPiArCX0KPiArCj4gICAJZHJtLT5tb2RlX2NvbmZpZy5m dW5jcyA9ICZ2c19tb2RlX2NvbmZpZ19mdW5jczsKPiAgIAlkcm0tPm1vZGVfY29uZmlnLmhlbHBl cl9wcml2YXRlID0gJnZzX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jczsKPiAgIH0KPiBAQCAtMTI1 LDcgKzEzMyw3IEBAIGludCB2c19kcm1faW5pdGlhbGl6ZShzdHJ1Y3QgdnNfZGMgKmRjLCBzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7 Cj4gICAKPiAtCXZzX21vZGVfY29uZmlnX2luaXQoZHJtKTsKPiArCXZzX21vZGVfY29uZmlnX2lu aXQoZHJtLCBkYyk7Cj4gICAKPiAgIAkvKiBFbmFibGUgY29ubmVjdG9ycyBwb2xsaW5nICovCj4g ICAJZHJtX2ttc19oZWxwZXJfcG9sbF9pbml0KGRybSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92ZXJpc2lsaWNvbi92c19od2RiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGlj b24vdnNfaHdkYi5jCj4gaW5kZXggMDkzMzZhZjA5MDBhLi4zOTQwMmQ3NWQ4NDEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2h3ZGIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19od2RiLmMKPiBAQCAtNzgsNyArNzgsNyBAQCBzdGF0 aWMgY29uc3QgdTMyIHZzX2Zvcm1hdHNfYXJyYXlfd2l0aF95dXY0NDRbXSA9IHsKPiAgIAkvKiBU T0RPOiBub24tUkdCIGZvcm1hdHMgKi8KPiAgIH07Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVj dCB2c19mb3JtYXRzIHZzX2Zvcm1hdHNfbm9feXV2NDQ0ID0gewo+ICtjb25zdCBzdHJ1Y3QgdnNf Zm9ybWF0cyB2c19mb3JtYXRzX25vX3l1djQ0NCA9IHsKPiAgIAkuYXJyYXkgPSB2c19mb3JtYXRz X2FycmF5X25vX3l1djQ0NCwKPiAgIAkubnVtID0gQVJSQVlfU0laRSh2c19mb3JtYXRzX2FycmF5 X25vX3l1djQ0NCkKPiAgIH07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2ls aWNvbi92c19od2RiLmggYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfaHdkYi5oCj4g aW5kZXggOTIxOTJlNGZhMDg2Li42NTVjZjkzY2EzYWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2h3ZGIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJp c2lsaWNvbi92c19od2RiLmgKPiBAQCAtMTQsNiArMTQsMjkgQEAgc3RydWN0IHZzX2Zvcm1hdHMg ewo+ICAgCXVuc2lnbmVkIGludCBudW07Cj4gICB9Owo+ICAgCj4gK2VudW0gdnNfZGNfZmFtaWx5 IHsKPiArCVZTX0RDX0ZBTUlMWV9EQzgwMDAsCj4gKwlWU19EQ19GQU1JTFlfRENVTFRSQV9MSVRF LAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCB2c19kY19pbmZvIC0gcGVyLVNvQyBEQyBw bGF0Zm9ybSBkYXRhCj4gKyAqIEBmYW1pbHk6CQlEQyBJUCBmYW1pbHkgKERDODAwMCwgRENVbHRy YSBMaXRlLCBldGMuKQo+ICsgKiBAZGlzcGxheV9jb3VudDoJbnVtYmVyIG9mIGRpc3BsYXkgb3V0 cHV0cyAoMCA9IGF1dG8tZGV0ZWN0IGZyb20gRFQvSFcpCj4gKyAqIEBoYXNfY2hpcF9pZDoJd2hl dGhlciBjaGlwIGlkZW50aXR5IHJlZ2lzdGVycyBleGlzdAo+ICsgKiBAaGFzX2NvbmZpZ19leDoJ d2hldGhlciBDT05GSUdfRVggY29tbWl0IG1lY2hhbmlzbSBleGlzdHMKPiArICogQHJlZ21hcF9j Zmc6CQlyZWdtYXAgY29uZmlndXJhdGlvbiBmb3IgdGhpcyB2YXJpYW50Cj4gKyAqIEBmb3JtYXRz OgkJc3VwcG9ydGVkIHBpeGVsIGZvcm1hdHMgKE5VTEwgPSBhdXRvLWRldGVjdCBmcm9tIGNoaXAg SUQpCj4gKyAqLwo+ICtzdHJ1Y3QgdnNfZGNfaW5mbyB7Cj4gKwllbnVtIHZzX2RjX2ZhbWlseSBm YW1pbHk7Cj4gKwl1MzIgZGlzcGxheV9jb3VudDsKPiArCWJvb2wgaGFzX2NoaXBfaWQ7Cj4gKwli b29sIGhhc19jb25maWdfZXg7Cj4gKwljb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyAqcmVnbWFw X2NmZzsKPiArCWNvbnN0IHN0cnVjdCB2c19mb3JtYXRzICpmb3JtYXRzOwo+ICt9Owo+ICsKPiAg IHN0cnVjdCB2c19jaGlwX2lkZW50aXR5IHsKPiAgIAl1MzIgbW9kZWw7Cj4gICAJdTMyIHJldmlz aW9uOwo+IEBAIC0yMyw2ICs0Niw4IEBAIHN0cnVjdCB2c19jaGlwX2lkZW50aXR5IHsKPiAgIAlj b25zdCBzdHJ1Y3QgdnNfZm9ybWF0cyAqZm9ybWF0czsKPiAgIH07Cj4gICAKPiArZXh0ZXJuIGNv bnN0IHN0cnVjdCB2c19mb3JtYXRzIHZzX2Zvcm1hdHNfbm9feXV2NDQ0Owo+ICsKPiAgIGludCB2 c19maWxsX2NoaXBfaWRlbnRpdHkoc3RydWN0IHJlZ21hcCAqcmVncywKPiAgIAkJCSAgc3RydWN0 IHZzX2NoaXBfaWRlbnRpdHkgKmlkZW50KTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdmVyaXNpbGljb24vdnNfcHJpbWFyeV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Zl cmlzaWxpY29uL3ZzX3ByaW1hcnlfcGxhbmUuYwo+IGluZGV4IDFmMmJlNDFhZTQ5Ni4uMTk3ZDVk NjgzZTIyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19wcmlt YXJ5X3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfcHJpbWFy eV9wbGFuZS5jCj4gQEAgLTU1LDggKzU1LDkgQEAgc3RhdGljIGludCB2c19wcmltYXJ5X3BsYW5l X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAo+ICAgc3RhdGljIHZv aWQgdnNfcHJpbWFyeV9wbGFuZV9jb21taXQoc3RydWN0IHZzX2RjICpkYywgdW5zaWduZWQgaW50 IG91dHB1dCkKPiAgIHsKPiAtCXJlZ21hcF9zZXRfYml0cyhkYy0+cmVncywgVlNEQ19GQl9DT05G SUdfRVgob3V0cHV0KSwKPiAtCQkJVlNEQ19GQl9DT05GSUdfRVhfQ09NTUlUKTsKPiArCWlmIChk Yy0+aW5mby0+aGFzX2NvbmZpZ19leCkKPiArCQlyZWdtYXBfc2V0X2JpdHMoZGMtPnJlZ3MsIFZT RENfRkJfQ09ORklHX0VYKG91dHB1dCksCj4gKwkJCQlWU0RDX0ZCX0NPTkZJR19FWF9DT01NSVQp Owo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCB2c19wcmltYXJ5X3BsYW5lX2F0b21pY19lbmFi bGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gQEAgLTY5LDExICs3MCwxMyBAQCBzdGF0aWMg dm9pZCB2c19wcmltYXJ5X3BsYW5lX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gICAJdW5zaWduZWQgaW50IG91dHB1dCA9IHZjcnRjLT5pZDsKPiAgIAlzdHJ1Y3QgdnNf ZGMgKmRjID0gdmNydGMtPmRjOwo+ICAgCj4gLQlyZWdtYXBfc2V0X2JpdHMoZGMtPnJlZ3MsIFZT RENfRkJfQ09ORklHX0VYKG91dHB1dCksCj4gLQkJCVZTRENfRkJfQ09ORklHX0VYX0ZCX0VOKTsK PiAtCXJlZ21hcF91cGRhdGVfYml0cyhkYy0+cmVncywgVlNEQ19GQl9DT05GSUdfRVgob3V0cHV0 KSwKPiAtCQkJICAgVlNEQ19GQl9DT05GSUdfRVhfRElTUExBWV9JRF9NQVNLLAo+IC0JCQkgICBW U0RDX0ZCX0NPTkZJR19FWF9ESVNQTEFZX0lEKG91dHB1dCkpOwo+ICsJaWYgKGRjLT5pbmZvLT5o YXNfY29uZmlnX2V4KSB7Cj4gKwkJcmVnbWFwX3NldF9iaXRzKGRjLT5yZWdzLCBWU0RDX0ZCX0NP TkZJR19FWChvdXRwdXQpLAo+ICsJCQkJVlNEQ19GQl9DT05GSUdfRVhfRkJfRU4pOwo+ICsJCXJl Z21hcF91cGRhdGVfYml0cyhkYy0+cmVncywgVlNEQ19GQl9DT05GSUdfRVgob3V0cHV0KSwKPiAr CQkJCSAgIFZTRENfRkJfQ09ORklHX0VYX0RJU1BMQVlfSURfTUFTSywKPiArCQkJCSAgIFZTRENf RkJfQ09ORklHX0VYX0RJU1BMQVlfSUQob3V0cHV0KSk7Cj4gKwl9Cj4gICAKPiAgIAl2c19wcmlt YXJ5X3BsYW5lX2NvbW1pdChkYywgb3V0cHV0KTsKPiAgIH0KPiBAQCAtODgsOCArOTEsOSBAQCBz dGF0aWMgdm9pZCB2c19wcmltYXJ5X3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAgCXVuc2lnbmVkIGludCBvdXRwdXQgPSB2Y3J0Yy0+aWQ7Cj4gICAJc3Ry dWN0IHZzX2RjICpkYyA9IHZjcnRjLT5kYzsKPiAgIAo+IC0JcmVnbWFwX3NldF9iaXRzKGRjLT5y ZWdzLCBWU0RDX0ZCX0NPTkZJR19FWChvdXRwdXQpLAo+IC0JCQlWU0RDX0ZCX0NPTkZJR19FWF9G Ql9FTik7Cj4gKwlpZiAoZGMtPmluZm8tPmhhc19jb25maWdfZXgpCj4gKwkJcmVnbWFwX3NldF9i aXRzKGRjLT5yZWdzLCBWU0RDX0ZCX0NPTkZJR19FWChvdXRwdXQpLAo+ICsJCQkJVlNEQ19GQl9D T05GSUdfRVhfRkJfRU4pOwo+ICAgCj4gICAJdnNfcHJpbWFyeV9wbGFuZV9jb21taXQoZGMsIG91 dHB1dCk7Cj4gICB9Cj4gQEAgLTEyNiw2ICsxMzAsMTEgQEAgc3RhdGljIHZvaWQgdnNfcHJpbWFy eV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQkJICAg VlNEQ19GQl9DT05GSUdfVVZfU1dJWlpMRV9FTiwKPiAgIAkJCSAgIHZzX3N0YXRlLT5mb3JtYXQu dXZfc3dpenpsZSk7Cj4gICAKPiArCS8qIERDVWx0cmEgTGl0ZSByZXF1aXJlcyBleHBsaWNpdCBl bmFibGUvcmVzZXQgYml0cyBpbiBGQl9DT05GSUcgKi8KPiArCWlmICghZGMtPmluZm8tPmhhc19j b25maWdfZXgpCj4gKwkJcmVnbWFwX3NldF9iaXRzKGRjLT5yZWdzLCBWU0RDX0ZCX0NPTkZJRyhv dXRwdXQpLAo+ICsJCQkJVlNEQ19GQl9DT05GSUdfRU5BQkxFIHwgVlNEQ19GQl9DT05GSUdfUkVT RVQpOwo+ICsKPiAgIAlkbWFfYWRkciA9IHZzX2ZiX2dldF9kbWFfYWRkcihmYiwgJnN0YXRlLT5z cmMpOwo+ICAgCj4gICAJcmVnbWFwX3dyaXRlKGRjLT5yZWdzLCBWU0RDX0ZCX0FERFJFU1Mob3V0 cHV0KSwKPiBAQCAtMTMzLDE2ICsxNDIsMTggQEAgc3RhdGljIHZvaWQgdnNfcHJpbWFyeV9wbGFu ZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCXJlZ21hcF93cml0 ZShkYy0+cmVncywgVlNEQ19GQl9TVFJJREUob3V0cHV0KSwKPiAgIAkJICAgICBmYi0+cGl0Y2hl c1swXSk7Cj4gICAKPiAtCXJlZ21hcF93cml0ZShkYy0+cmVncywgVlNEQ19GQl9UT1BfTEVGVChv dXRwdXQpLAo+IC0JCSAgICAgVlNEQ19NQUtFX1BMQU5FX1BPUyhzdGF0ZS0+Y3J0Y194LCBzdGF0 ZS0+Y3J0Y195KSk7Cj4gLQlyZWdtYXBfd3JpdGUoZGMtPnJlZ3MsIFZTRENfRkJfQk9UVE9NX1JJ R0hUKG91dHB1dCksCj4gLQkJICAgICBWU0RDX01BS0VfUExBTkVfUE9TKHN0YXRlLT5jcnRjX3gg KyBzdGF0ZS0+Y3J0Y193LAo+IC0JCQkJCSBzdGF0ZS0+Y3J0Y195ICsgc3RhdGUtPmNydGNfaCkp Owo+ICAgCXJlZ21hcF93cml0ZShkYy0+cmVncywgVlNEQ19GQl9TSVpFKG91dHB1dCksCj4gICAJ CSAgICAgVlNEQ19NQUtFX1BMQU5FX1NJWkUoc3RhdGUtPmNydGNfdywgc3RhdGUtPmNydGNfaCkp Owo+ICAgCj4gLQlyZWdtYXBfd3JpdGUoZGMtPnJlZ3MsIFZTRENfRkJfQkxFTkRfQ09ORklHKG91 dHB1dCksCj4gLQkJICAgICBWU0RDX0ZCX0JMRU5EX0NPTkZJR19CTEVORF9ESVNBQkxFKTsKPiAr CWlmIChkYy0+aW5mby0+aGFzX2NvbmZpZ19leCkgewo+ICsJCXJlZ21hcF93cml0ZShkYy0+cmVn cywgVlNEQ19GQl9UT1BfTEVGVChvdXRwdXQpLAo+ICsJCQkgICAgIFZTRENfTUFLRV9QTEFORV9Q T1Moc3RhdGUtPmNydGNfeCwgc3RhdGUtPmNydGNfeSkpOwo+ICsJCXJlZ21hcF93cml0ZShkYy0+ cmVncywgVlNEQ19GQl9CT1RUT01fUklHSFQob3V0cHV0KSwKPiArCQkJICAgICBWU0RDX01BS0Vf UExBTkVfUE9TKHN0YXRlLT5jcnRjX3ggKyBzdGF0ZS0+Y3J0Y193LAo+ICsJCQkJCQkgc3RhdGUt PmNydGNfeSArIHN0YXRlLT5jcnRjX2gpKTsKPiArCQlyZWdtYXBfd3JpdGUoZGMtPnJlZ3MsIFZT RENfRkJfQkxFTkRfQ09ORklHKG91dHB1dCksCj4gKwkJCSAgICAgVlNEQ19GQl9CTEVORF9DT05G SUdfQkxFTkRfRElTQUJMRSk7Cj4gKwl9Cj4gICAKPiAgIAl2c19wcmltYXJ5X3BsYW5lX2NvbW1p dChkYywgb3V0cHV0KTsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zlcmlz aWxpY29uL3ZzX3ByaW1hcnlfcGxhbmVfcmVncy5oIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxp Y29uL3ZzX3ByaW1hcnlfcGxhbmVfcmVncy5oCj4gaW5kZXggY2JiMTI1YzQ2YjM5Li4yODgwNjQ3 NjBiNDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3ByaW1h cnlfcGxhbmVfcmVncy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3By aW1hcnlfcGxhbmVfcmVncy5oCj4gQEAgLTE2LDYgKzE2LDggQEAKPiAgICNkZWZpbmUgVlNEQ19G Ql9TVFJJREUobikJCQkoMHgxNDA4ICsgMHg0ICogKG4pKQo+ICAgCj4gICAjZGVmaW5lIFZTRENf RkJfQ09ORklHKG4pCQkJKDB4MTUxOCArIDB4NCAqIChuKSkKPiArI2RlZmluZSBWU0RDX0ZCX0NP TkZJR19FTkFCTEUJCQlCSVQoMCkKPiArI2RlZmluZSBWU0RDX0ZCX0NPTkZJR19SRVNFVAkJCUJJ VCg0KQo+ICAgI2RlZmluZSBWU0RDX0ZCX0NPTkZJR19DTEVBUl9FTgkJCUJJVCg4KQo+ICAgI2Rl ZmluZSBWU0RDX0ZCX0NPTkZJR19ST1RfTUFTSwkJCUdFTk1BU0soMTMsIDExKQo+ICAgI2RlZmlu ZSBWU0RDX0ZCX0NPTkZJR19ST1QodikJCQkoKHYpIDw8IDExKQoKLS0gCi0tClRob21hcyBaaW1t ZXJtYW5uCkdyYXBoaWNzIERyaXZlciBEZXZlbG9wZXIKU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMg R2VybWFueSBHbWJICkZyYW5rZW5zdHIuIDE0NiwgOTA0NjEgTsO8cm5iZXJnLCBHZXJtYW55LCB3 d3cuc3VzZS5jb20KR0Y6IEpvY2hlbiBKYXNlciwgQW5kcmV3IE1jRG9uYWxkLCBXZXJuZXIgS25v YmxpY2gsIChIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykKCgo=