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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id B9A25C5AD55 for ; Sun, 9 Aug 2026 21:29:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jNCT49dje2VAA8+5gaEdAPXdfhQ0VgvqPfCdfAQT9zo=; b=PtzN+Zd/bV43rt Pj/iY8v3/MDCQiSHfwYscwCV5K8B2z4Db4RtltMna4T0q4Y/frBVbUUYdhDKFPT1QA9k85qYM7Nwh YoA7GbjdXsxn1BuS3FzAitH01kbQ++CYN7VD7OM8YwU7WnEYmv4AbiCKua0J1uC8pq+PR5jbxfNuy opBjsbvz0p4rDHtU0EAR1LwY66TjU9PtL0hjh9xfISznFlG+Xb75G9DSF16LOldlnWRHXxsHO/L+W 4wb9elGXoS6/CVsIZenDFcKHrkwPEhXDIWw/Sgca1x4jvDT3WYTrniiLmhzgieB3JZphP3RjYOnh/ 3ErEol+guSLVQtD9fnGw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtB57-0000000AkCy-1qxH; Sun, 09 Aug 2026 21:29:21 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtB54-0000000AkAB-2YFr for linux-phy@lists.infradead.org; Sun, 09 Aug 2026 21:29:20 +0000 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-49802c418b5so11104085e9.1 for ; Sun, 09 Aug 2026 14:29:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786310957; x=1786915757; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lMTBVu3U9QKzRcwaIpX6+14eLfct+c7n+dFYUe5JO9M=; b=k5iR61U4jbX4sfXVdCnLiKaTliWuUz5HtOr8IPpZV9WDOEtq1Su1LM1NpRBelgKNU3 IAn+UPnNwt/oeiZJ7AIfJdM82vUJrnnOxxym4lOolY4b+vqT5/zfe2fRr6d2JX2EJlQ2 qgi961lCvaGaq37fJ3q7NbeJoWmgJ999AUad6qEjbFLBtV9Rj+3jCZ6bK1uWtIpVHrcv OFb+CC25k1KxkzAa8zXVEAuezQzMGf4CR2SSg3M5sdZgAVecPyveA1xE4jJ/6X4HP+rE 5W9q5Y5BAgZ8zie2sUe3Jc0cU/XMuUeNXx6tJ3/3tGcboQ4KoN0qPwP2XRg4LnlVHoV1 zpgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786310957; x=1786915757; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=lMTBVu3U9QKzRcwaIpX6+14eLfct+c7n+dFYUe5JO9M=; b=jm+34z/HjjiblmP8xTOUaUx2tKae/+K1PaxmGNYhnmfmXLSh+WjwGsE9ouPrebaJm2 w6xC+HOm/KtWF5KR3s/Yllyt8NWzxOJTVF02hQKwE5KPnNNJik3ZH5b8vp7SNB/jZayy 4uMVZDhrXVLXyLSkVTQNigA59OoYtsf4zsK6egWTVb3G/P6fshVO3TGQK7hmZpu30rIs BST1qMkutpHYDi5PkgvUNghz7YE2tRWxXVSrxT0IxvP+Sv7ubtgET+eUfGEMkl6ZdYWQ cAcEzxsj4kKGz+/IQ+gNMrTXjhOSTRCI/yUwV3HLjJuFWx8g39MQVDqGZs/JdePRVdPb 7Fmg== X-Forwarded-Encrypted: i=1; AHgh+Rpiqufygba4KAE+AvvHLVYVC0R6gLqRQjQBcPtN86VRVs84s82aBHHB8fXvwNzkLFmV/R1OBQ0fIls=@lists.infradead.org X-Gm-Message-State: AOJu0YyqHX/PsN8fSbqmiqrjJoNmSwGyvCUsfKMtXXYE9Bcj61Q3/XNH 0moozmIrF+CyVJU8gBRTYeyIlxZKZ6Xi7eAz1NZhXT82QzTlpErgOLMn X-Gm-Gg: AR+sD12bTIcrxXJSK+dkKZdbXUmV8z+pbX51fbucsYWlDQmL/77Ls+1DR96huiCUi70 FqDPiqbxjqLDz1hmEP5UzlMzdJoJBW9yl2bfHlqVwE/z2OKTBV5r/vE3m+nRZCIx3CCnIAF096x JrcwutK/lMH77EL9lTcWH5X7+wc/Q0W9v05tEBmY5D8T3VDDAlgxc+W0WYBOMDYSWIY2MWprUHh vqAMjvZRkRZkNWE+YM+at5cQ+cmbdrbJK+roj2s+wi+88hXOzZuPNSGnL8EI9KgnKoqnGim4gN3 YLcU5n50LHXrPtvsbs716pnM9SiTG5TsVm1K4US/PY5r22EKQqTOknc13B3iwXK6Qd7ErNXMRz1 LjuN6K+5yyLBgMGhU6IiYFrh2dzi0l/o3VWNdouLNLK5QQX/YpYeLD4fwXrLvKpdTtelzp7kioy 6yJRjEKHxT1XfrtpuqRNWvKUtMEf+HsQxcsmekaDy0Lqi3/XO7md3vK+K6BiqCCFz3lEC41fA= X-Received: by 2002:a05:600c:8b4c:b0:495:5b4a:53b7 with SMTP id 5b1f17b1804b1-49961b9e37amr185947715e9.19.1786310956592; Sun, 09 Aug 2026 14:29:16 -0700 (PDT) Received: from [192.168.0.2] ([197.250.226.68]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-480021e8c5asm28987451f8f.18.2026.08.09.14.29.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 14:29:15 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Mon, 10 Aug 2026 00:28:24 +0300 Subject: [PATCH v10 05/12] clk: zte: Add Clock registration infrastructure MIME-Version: 1.0 Message-Id: <20260810-zx29clk-v10-5-63846490712c@gmail.com> References: <20260810-zx29clk-v10-0-63846490712c@gmail.com> In-Reply-To: <20260810-zx29clk-v10-0-63846490712c@gmail.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Brian Masney , Vinod Koul , Neil Armstrong , Russell King , Lee Jones Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, mfd@lists.linux.dev, =?utf-8?q?Stefan_D=C3=B6singer?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=15447; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=gSDtfWAVWdvlcma8ZqUEgPrZSl9GaOphLarVRTTZ1SQ=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBqePEO9Je+sowmHKrdKiomiDMuSudW5th1QLiaV cIfVMGW2jKJAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCanjxDhsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiLPjRAAlfnRtNJicYbcljtBRnkojI1vD29Yukh C2+ahjGL/8eOsbJlu8VZlubikRhX9XnEj1G3nrRAscL7o/fi1ZmjhlJyMVY+2Z330jNMoknd87t g3X/Zj5M4MtnCOIkKX/PeQQM9SyeV4+eptX8VTAx7wr+0TewJMCsnSAFvAZ5bKsFVlZCxF+V2Bg YQvfZfZPJL2e/DcOrfDkPQDcuIiZUPMRdumfaNJbsk9Q16njq53PuD7PL/yukISm95B3rbjqHrM ctOgbgUA7GnV6ohOpHxta5wvXOs8inlGjB+Dlzc6AdbzLgEA2bTzDJ/jZCjk/l44fC+37dgj0PR 6mYsWIk9UCW/zmlge782TyVHGza8pgtPArX8ewTgRhl+bqNawG52qj61TPXM7cxxmYjRghlPe/w 60dkx0GqMhrrNWAXUf8WV/fG7J4nRsAEQC1achVObmur7L8frhEyyxLypbfDfdbFZY+ifvUHqeL 714s/F8yNLnZMpD5uInDLrPxoyNV+R5q/1U2xwBHJT0jNyEEDa/z8RXunrRB3nOIcBvMtyzWC9l 8ZogTCNLqgVVGLi0P8v3aPY9iYNp/0FY6RaG01Nr8t27RmElfny0Dhq1yJ0hY6cWh8NdlAI6HA/ yaVVikJAgVAM1mBNRSbPdjJJevBXm3YowGpgH3DDyuSaq6xDiBOs= X-Developer-Key: i=stefandoesinger@gmail.com; a=openpgp; fpr=4F9C2C8728019633893EBBB98CB81F9A72BBA155 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260809_142918_801026_12C6B285 X-CRM114-Status: GOOD ( 33.12 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhlIG5leHQgcGF0Y2hlcyB3aWxsIGltcGxlbWVudCB0aGUgcmVnbWFwIGNsb2NrcyBhbmQgUExM IGRyaXZlci4gVGhlCmFjdHVhbCBoYXJkd2FyZSBzcGVjaWZpYyBjbG9jayBsaXN0aW5nIHdpbGwg bGl2ZSBpbiBhIHNlcGFyYXRlIG1vZHVsZS4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBEw7ZzaW5n ZXIgPHN0ZWZhbmRvZXNpbmdlckBnbWFpbC5jb20+CgotLS0KClZlcnNpb24gMTAgKEJyaWFuKToK UmVtb3ZlIHVudXNlZCBzdHJ1Y3QgenhfY2xrX2V4cG9ydApSZW1vdmUgYSBzdHJheSBzZW1pY29s b24gZnJvbSBzd2l0Y2gvY2FzZSBpbiB6eF9nZXRfcGFyZW50CkV4cGxhaW4gdGhlIHJhdGlvbmFs ZSBmb3IgdGhlIHZhbGlkYXRpb24gY29kZSBhbmQgZGlzY291cmFnZSBjb3B5aW5nIGl0CmludG8g b3RoZXIgY2xvY2sgZHJpdmVycwpNYWtlIHRoZSBleHBvcnRzIGFycmF5IGNvbnN0IChTYXNoaWtv KQoKVmVyc2lvbiA5OgpSZXdvcmsgcGFyZW50IG1hdGNoaW5nIGFuZCBjbG9jayBleHBvcnQgY29u dHJvbC4gTW9zdCBvZiB0aGUgY2hhbmdlcwp3aWxsIGJlIGluIHRoZSBuZXh0IHBhdGNoZXMuIFRo ZSB2aXNpYmxlIGNoYW5nZSBoZXJlIGlzIHRoYXQgdGhlIGNsb2NrCmFycmF5IGlzIHVuaWZpZWQg d2l0aCBzaW5nbGUgY2xvY2tzIGhhdmluZyBhIHR5cGUgcmF0aGVyIHRoYW4gb25lIGFycmF5CnBl ciB0eXBlLgoKRGVwZW5kIG9uIEhBU19JT01FTSwgc2ltaWxhcmx5IHRvIFNhc2hpa28ncyBmbGFn Z2VkIGlzc3VlIGluIHRoZSBSZXNldApwYXRjaAoKWlgyOTc1MjBWM19DTEtfTk9fRVhQT1JUIGlz IGdvbmUgYWdhaW4uCgpUaGUgZXhwbGljaXQgY2xvY2sgaW5wdXQgYXJyYXkgYW5kIGVuYWJsaW5n IG9mIExTUCdzIHBjbGsgaXMgcmVtb3ZlZApmcm9tIHRoZSBjbG9jayBkcml2ZXIuIFRoZSBNRkQg cGFyZW50IHRha2VzIGNhcmUgb2YgdGhpcyBpbnN0ZWFkLiBUaGUKY2xvY2sgZHJpdmVyIGRvZXMg c29tZSBzYW5pdHkgY2hlY2tpbmcgb24gdGhlIHN0YXRpYyBjbG9jayBkYXRhIHRob3VnaC4KClZl cnNpb24gODoKVXNlIFpYMjk3NTIwVjNfQ0xLX05PX0VYUE9SVD0ofjB1KSBmb3IgdW5leHBvcnRl ZCBjbG9ja3MuIFdoaWxlIHVzaW5nIDAsCmFuZCBzdGFydGluZyBjbG9jayBpbmRpY2VzIGF0IDEs IGlzIGEgY29tbW9uIHBhdHRlcm4gaW4gZXhpc3RpbmcKZHJpdmVycywgaXQgZXhwb3NlcyBhIGRy aXZlciBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgaW4gdGhlIGhhcmR3YXJlCmJpbmRpbmcgaW50ZXJm YWNlLgoKSWYgZGVzaXJlZCwgSSBjYW4gY2hhbmdlIHRoZSBzcGVjaWFsIGluZGV4IHRvIGEgc2Vw YXJhdGUgZmllbGQgaW4gdGhlCnN0cnVjdHMuCgpGaXggdGhlIHJldHVybiB2YWx1ZSBpZiB0aGUg LT5pbml0KCkgY2FsbGJhY2sgZmFpbHMuIChTYXNoaWtvKQoKVmVyc2lvbiA3OgoqKSBBZGQgZml4 ZWQgZGl2aWRlcnMgdG8gaGFuZGxlIFBMTCBzdWJkaXZpc2lvbnMKKikgTmV2ZXIgcmVnaXN0ZXIg UExMcyBkaXJlY3RseSBhcyBleHBvcnRlZCBjbG9ja3MgLSBldmVyeXRoaW5nIG9uIHRoaXMKU29D IGdvZXMgdGhyb3VnaCBhIGdhdGUgYmVmb3JlIGl0IGxlYXZlcyBhIGNvbnRyb2xsZXIuCgpWZXJz aW9uIDY6CiopIFJlbW92ZSBhdXhkZXYgbm93IHRoYXQgTFNQIGNsb2NrcyBhbHNvIHVzZSBNRkQK KikgRXJyb3IgY29kZXBhdGggZml4ZXMgcG9pbnRlZCBvdXQgYnkgU2FzaGlrby4KClZlcnNpb24g NToKCiopIFBhc3MgdGhlIHN0YXRpYyBjbGsgZGF0YSBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2V0X21h dGNoX2RhdGEgdG8gcHJlcGFyZQpmb3Igb3BlcmF0aW5nIGFzIGFuIE1GRCBjaGlsZC4KCiopIERv bid0IHVzZSBkZXZtX2t6YWxsb2MgdG8gYWxsb2NhdGUgdGhlIGF1eGlsaWFyeV9kZXZpY2UKc3Ry dWN0dXJlLiBJIGd1ZXNzIFNhc2hpa28gaXMgcmlnaHQsIGFuZCB0aGF0J3Mgd2hhdCAiQmVjYXVz ZSBvbmNlIHRoZQpkZXZpY2UgaXMgcGxhY2VkIG9uIHRoZSBidXMgdGhlIHBhcmVudCBkcml2ZXIg Y2FuIG5vdCB0ZWxsIHdoYXQgb3RoZXIKY29kZSBtYXkgaGF2ZSBhIHJlZmVyZW5jZSB0byB0aGlz IGRhdGEiIGlzIHRyeWluZyB0byB0ZWxsIG1lLgoKKikgRml4IGVycm9yIGNoZWNrIGZvciBkZXZp Y2Vfbm9kZV90b19yZWdtYXAuCi0tLQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICB8ICAg MSArCiBkcml2ZXJzL2Nsay9LY29uZmlnICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvY2xrL01h a2VmaWxlICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9jbGsvenRlL0tjb25maWcgICAgICB8ICAx NyArKysrCiBkcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUgICAgIHwgICA1ICsrCiBkcml2ZXJzL2Ns ay96dGUvY2xrLXJlZ21hcC5jIHwgIDMyICsrKysrKysrCiBkcml2ZXJzL2Nsay96dGUvY2xrLXp4 LmMgICAgIHwgMTkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvY2xrL3p0ZS9jbGstenguaCAgICAgfCAxMzcgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBkcml2ZXJzL2Nsay96dGUvcGxsLXp4LmMgICAgIHwgIDE4ICsrKysKIDkgZmls ZXMgY2hhbmdlZCwgNDA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBi L01BSU5UQUlORVJTCmluZGV4IGQ1MGMwM2ZkNWE3Ni4uNDA4YmIyNTZkMmQ0IDEwMDY0NAotLS0g YS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMzkwOSw2ICszOTA5LDcgQEAgRjoJ RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3p0ZSx6eDI5NzUyMHYzLW1h dHJpeGNybS55YW1sCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2sv enRlLHp4Mjk3NTIwdjMtdG9wY3JtLnlhbWwKIEY6CWFyY2gvYXJtL2Jvb3QvZHRzL3p0ZS8KIEY6 CWFyY2gvYXJtL21hY2gtenRlLworRjoJZHJpdmVycy9jbGsvenRlLwogRjoJZHJpdmVycy9tZmQv enRlLXp4Mjk3NTIwdjMtY3JtLmMKIEY6CWluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svenRlLHp4 Mjk3NTIwdjMtY2xrLmgKIEY6CWluY2x1ZGUvZHQtYmluZGluZ3MvcGh5L3p0ZSx6eDI5NzUyMHYz LXRvcGNybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9LY29uZmlnIGIvZHJpdmVycy9jbGsv S2NvbmZpZwppbmRleCAxNzE3Y2U3NWE5MDcuLjZmMGE4NjM5NTFjYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9jbGsvS2NvbmZpZworKysgYi9kcml2ZXJzL2Nsay9LY29uZmlnCkBAIC01NDUsNiArNTQ1 LDcgQEAgc291cmNlICJkcml2ZXJzL2Nsay91bmlwaGllci9LY29uZmlnIgogc291cmNlICJkcml2 ZXJzL2Nsay92aXNjb250aS9LY29uZmlnIgogc291cmNlICJkcml2ZXJzL2Nsay94ODYvS2NvbmZp ZyIKIHNvdXJjZSAiZHJpdmVycy9jbGsveGlsaW54L0tjb25maWciCitzb3VyY2UgImRyaXZlcnMv Y2xrL3p0ZS9LY29uZmlnIgogc291cmNlICJkcml2ZXJzL2Nsay96eW5xbXAvS2NvbmZpZyIKIAog IyBLdW5pdCB0ZXN0IGNhc2VzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9NYWtlZmlsZSBiL2Ry aXZlcnMvY2xrL01ha2VmaWxlCmluZGV4IDY4OTllMzJlMTRhYS4uNjUxZmU4NjZkZGFkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2Nsay9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsay9NYWtlZmlsZQpA QCAtMTY3LDUgKzE2Nyw2IEBAIGlmZXEgKCQoQ09ORklHX0NPTU1PTl9DTEspLCB5KQogb2JqLSQo Q09ORklHX1g4NikJCQkrPSB4ODYvCiBlbmRpZgogb2JqLXkJCQkJCSs9IHhpbGlueC8KK29iai0k KENPTkZJR19DT01NT05fQ0xLX1pURSkJCSs9IHp0ZS8KIG9iai0kKENPTkZJR19BUkNIX1pZTlEp CQkJKz0genlucS8KIG9iai0kKENPTkZJR19DT01NT05fQ0xLX1pZTlFNUCkgICAgICAgICArPSB6 eW5xbXAvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay96dGUvS2NvbmZpZyBiL2RyaXZlcnMvY2xr L3p0ZS9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTUy YzI0MjNiOGYwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvenRlL0tjb25maWcKQEAg LTAsMCArMSwxNyBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cisj CisjIFpURSBDbG9jayBEcml2ZXJzCisjCisKK2NvbmZpZyBDT01NT05fQ0xLX1pURQorCXRyaXN0 YXRlICJDbG9jayBkcml2ZXIgZm9yIFpURSBTb0NzIgorCWRlcGVuZHMgb24gSEFTX0lPTUVNCisJ ZGVwZW5kcyBvbiBBUkNIX1pURSB8fCBDT01QSUxFX1RFU1QKKwlkZWZhdWx0IEFSQ0hfWlRFCisJ c2VsZWN0IE1GRF9TWVNDT04KKwloZWxwCisJICBUaGlzIG9wdGlvbiBzZWxlY3RzIGNvbW1vbiBj bG9jayBpbmZyYXN0cnVjdHVyZSBmb3IgWlRFIGJhc2VkIFNvQ3MuCisJICBZb3Ugd2lsbCBuZWVk IHRvIGVuYWJsZSBvbmUgb3IgbW9yZSBTb0Mgc3BlY2lmaWMgZHJpdmVycyB0byBtYWtlIHVzZQor CSAgb2YgdGhpcy4KKworCSAgRW5hYmxlIHRoaXMgaWYgeW91IGFyZSBidWlsZGluZyBhIGtlcm5l bCBmb3IgYSBaVEUgZGVzaWduZWQgYm9hcmQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay96dGUv TWFrZWZpbGUgYi9kcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4yN2RiMDcyOTMxNjUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2Nsay96dGUvTWFrZWZpbGUKQEAgLTAsMCArMSw1IEBACisjIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkKKworb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfWlRFKSArPSBj bGstenRlLm8KKworY2xrLXp0ZS15ICs9IGNsay16eC5vIHBsbC16eC5vIGNsay1yZWdtYXAubwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAuYyBiL2RyaXZlcnMvY2xrL3p0 ZS9jbGstcmVnbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44 MDMzMmRiYTk3ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXJlZ21h cC5jCkBAIC0wLDAgKzEsMzIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w CisvKgorICogQ29weXJpZ2h0IChjKSAyMDI2IFN0ZWZhbiBEw7ZzaW5nZXIKKyAqLworCisjaW5j bHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Cisj aW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2lu Y2x1ZGUgImNsay16eC5oIgorCitzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfZ2F0ZShz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKKwkJCQkgICAgY29uc3Qg c3RydWN0IHp4X2dhdGVfZGVzYyAqZGVzYywKKwkJCQkgICAgc3RydWN0IGNsa19odyAqIGNvbnN0 ICpjbG9ja3MpCit7CisJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7Cit9CisKK3N0cnVjdCBjbGtf aHcgKnp4X2Nsa19yZWdpc3Rlcl9kaXZpZGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJl Z21hcCAqcmVnbWFwLAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgenhfZGl2X2Rlc2MgKmRlc2Ms CisJCQkJICAgICAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKQoreworCXJldHVybiBF UlJfUFRSKC1FTk9ERVYpOworfQorCitzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfbXV4 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqcmVnbWFwLAorCQkJCSAgIGNvbnN0 IHN0cnVjdCB6eF9tdXhfZGVzYyAqZGVzYywKKwkJCQkgICBzdHJ1Y3QgY2xrX2h3ICogY29uc3Qg KmNsb2NrcykKK3sKKwlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKK30KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xrL3p0ZS9jbGstenguYyBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstenguYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFlZjBmN2M3NTNlNgotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstenguYwpAQCAtMCwwICsxLDE5MiBAQAorLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorLyoKKyAqIENvcHlyaWdodCAo QykgMjAyNiBTdGVmYW4gRMO2c2luZ2VyCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92 aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgor I2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgor I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorCisjaW5jbHVkZSAiY2xrLXp4LmgiCisKK3N0YXRp YyBzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfZml4ZWRfZGl2KHN0cnVjdCBkZXZpY2Ug KmRldiwKKwkJCQkJCWNvbnN0IHN0cnVjdCB6eF9maXhlZF9kaXZpZGVyX2Rlc2MgKmRlc2MsCisJ CQkJCQlzdHJ1Y3QgY2xrX2h3ICogY29uc3QgKmNsb2NrcykKK3sKKwljb25zdCBzdHJ1Y3Qgenhf cGFyZW50X2Rlc2MgKnAgPSAmZGVzYy0+cGFyZW50OworCisJc3dpdGNoIChwLT50eXBlKSB7CisJ Y2FzZSBaWF9QQVJFTlRfRlc6CisJCXJldHVybiBkZXZtX2Nsa19od19yZWdpc3Rlcl9maXhlZF9m YWN0b3JfZnduYW1lKGRldiwgTlVMTCwgZGVzYy0+bmFtZSwgcC0+ZndfbmFtZSwKKwkJCQkJCQkJ Q0xLX1NFVF9SQVRFX1BBUkVOVCwgMSwgZGVzYy0+ZGl2KTsKKworCWNhc2UgWlhfUEFSRU5UX0lE OgorCQlyZXR1cm4gZGV2bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yX3BhcmVudF9odyhk ZXYsIGRlc2MtPm5hbWUsIGNsb2Nrc1twLT5pZF0sCisJCQkJCQkJCSAgIENMS19TRVRfUkFURV9Q QVJFTlQsIDEsCisJCQkJCQkJCSAgIGRlc2MtPmRpdik7CisJfQorCVdBUk5fT05fT05DRSgxKTsK KwlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKK30KKworc3RhdGljIGludCB6eF9jbGtfdmFsaWRh dGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUsCisJCQkg ICBjb25zdCBzdHJ1Y3QgenhfY2xrX2RhdGEgKmRhdGEpCit7CisJY29uc3Qgc3RydWN0IHp4X3Bh cmVudF9kZXNjICpwYXJlbnRzOworCXVuc2lnbmVkIGludCBpLCBwLCBudW1fcGFyZW50czsKKwlz dHJ1Y3QgY2xrICpjbGs7CisKKwkvKgorCSAqIFNhbml0eSBjaGVjazogTWFrZSBzdXJlIGFsbCBw YXJlbnRzIGFyZSB0aGVyZSBhbmQgd3JpdGUgYSBjbGVhciBtZXNzYWdlIHJhdGhlciB0aGFuCisJ ICogbGVhdmUgcG90ZW50aWFsIG9ycGhhbnMuCisJICoKKwkgKiBUaGlzIGNoZWNrIGlzIHVudXN1 YWwgaW4gY2xvY2sgZHJpdmVycy4gSXQgaXMgaW4gdGhpcyBkcml2ZXIgYmVjYXVzZSB0aGUgY2xv Y2sgdHJlZSBpcworCSAqIGJhc2VkIG9uIG1hbnVhbCByZXZlcnNlIGVuZ2luZWVyaW5nIHJhdGhl ciB0aGFuIGdlbmVyYXRlZCBmcm9tIGEgU29DIGRhdGFzaGVldC4KKwkgKi8KKwlmb3IgKGkgPSAw OyBpIDwgZGF0YS0+bnVtX2Nsb2NrczsgKytpKSB7CisJCXN3aXRjaCAoZGF0YS0+Y2xvY2tzW2ld LnR5cGUpIHsKKwkJY2FzZSBaWF9DTE9DS19QTEw6CisJCQlwYXJlbnRzID0gZGF0YS0+Y2xvY2tz W2ldLnBsbC5wYXJlbnRzOworCQkJbnVtX3BhcmVudHMgPSBkYXRhLT5jbG9ja3NbaV0ucGxsLm51 bV9wYXJlbnRzOworCQkJYnJlYWs7CisKKwkJY2FzZSBaWF9DTE9DS19GSVhFRF9ESVY6CisJCQlw YXJlbnRzID0gJmRhdGEtPmNsb2Nrc1tpXS5maXhlZF9kaXYucGFyZW50OworCQkJbnVtX3BhcmVu dHMgPSAxOworCQkJYnJlYWs7CisKKwkJY2FzZSBaWF9DTE9DS19NVVg6CisJCQlwYXJlbnRzID0g ZGF0YS0+Y2xvY2tzW2ldLm11eC5wYXJlbnRzOworCQkJbnVtX3BhcmVudHMgPSBkYXRhLT5jbG9j a3NbaV0ubXV4Lm51bV9wYXJlbnRzOworCQkJYnJlYWs7CisKKwkJY2FzZSBaWF9DTE9DS19ESVY6 CisJCQlwYXJlbnRzID0gJmRhdGEtPmNsb2Nrc1tpXS5kaXYucGFyZW50OworCQkJbnVtX3BhcmVu dHMgPSAxOworCQkJYnJlYWs7CisKKwkJY2FzZSBaWF9DTE9DS19HQVRFOgorCQkJcGFyZW50cyA9 ICZkYXRhLT5jbG9ja3NbaV0uZ2F0ZS5wYXJlbnQ7CisJCQludW1fcGFyZW50cyA9IDE7CisJCQli cmVhazsKKworCQlkZWZhdWx0OgorCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlOVkFM LCAiSW52YWxpZCBjbG9jayBlbnRyeSAldVxuIiwgaSk7CisJCX0KKworCQlmb3IgKHAgPSAwOyBw IDwgbnVtX3BhcmVudHM7ICsrcCkgeworCQkJc3dpdGNoIChwYXJlbnRzW3BdLnR5cGUpIHsKKwkJ CWNhc2UgWlhfUEFSRU5UX0ZXOgorCQkJCWNsayA9IG9mX2Nsa19nZXRfYnlfbmFtZShvZl9ub2Rl LCBwYXJlbnRzW3BdLmZ3X25hbWUpOworCQkJCWlmIChJU19FUlIoY2xrKSkKKwkJCQkJcmV0dXJu IGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksCisJCQkJCQkJICAgICAiSW5wdXQgY2xr ICVzIGZhaWx1cmVcbiIsCisJCQkJCQkJICAgICBwYXJlbnRzW3BdLmZ3X25hbWUpOworCQkJCWNs a19wdXQoY2xrKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBaWF9QQVJFTlRfSUQ6CisJCQkJaWYg KHBhcmVudHNbcF0uaWQgPj0gaSkKKwkJCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlO VkFMLAorCQkJCQkJCSAgICAgIkNsb2NrICV1IGhhcyBwYXJlbnQgJXVcbiIsCisJCQkJCQkJICAg ICBpLCBwYXJlbnRzW3BdLmlkKTsKKwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FSU5WQUwsCisJCQkJCQkgICAgICJDbG9jayAldSBoYXMg dW5leHBlY3RlZCBwYXJlbnQgb2YgdHlwZSAldVxuIiwKKwkJCQkJCSAgICAgaSwgcGFyZW50c1tw XS50eXBlKTsKKwkJCX0KKwkJfQorCX0KKworCXJldHVybiAwOworfQorCitpbnQgenhfY2xrX2Nv bW1vbl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfbm9k ZSwKKwkJCWNvbnN0IHN0cnVjdCB6eF9jbGtfZGF0YSAqZGF0YSkKK3sKKwlzdHJ1Y3QgY2xrX2h3 X29uZWNlbGxfZGF0YSAqZXhwb3J0czsKKwlzdHJ1Y3QgY2xrX2h3ICoqY2xvY2tzOworCXN0cnVj dCByZWdtYXAgKm1hcDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmVzOworCisJcmVzID0genhf Y2xrX3ZhbGlkYXRlKGRldiwgb2Zfbm9kZSwgZGF0YSk7CisJaWYgKHJlcykKKwkJcmV0dXJuIHJl czsKKworCW1hcCA9IGRldmljZV9ub2RlX3RvX3JlZ21hcChvZl9ub2RlKTsKKwlpZiAoSVNfRVJS KG1hcCkpCisJCXJldHVybiBQVFJfRVJSKG1hcCk7CisKKwljbG9ja3MgPSBkZXZtX2tjYWxsb2Mo ZGV2LCBkYXRhLT5udW1fY2xvY2tzLCBzaXplb2YoKmNsb2NrcyksIEdGUF9LRVJORUwpOworCWlm ICghY2xvY2tzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChkYXRhLT5pbml0KSB7CisJCXJl cyA9IGRhdGEtPmluaXQobWFwKTsKKwkJaWYgKHJlcykKKwkJCXJldHVybiByZXM7CisJfQorCisJ Zm9yIChpID0gMDsgaSA8IGRhdGEtPm51bV9jbG9ja3M7ICsraSkgeworCQlzdHJ1Y3QgY2xrX2h3 ICpodzsKKworCQlzd2l0Y2ggKGRhdGEtPmNsb2Nrc1tpXS50eXBlKSB7CisJCWNhc2UgWlhfQ0xP Q0tfUExMOgorCQkJaHcgPSB6eF9jbGtfcmVnaXN0ZXJfcGxsKGRldiwgbWFwLCAmZGF0YS0+Y2xv Y2tzW2ldLnBsbCwgY2xvY2tzKTsKKwkJCWJyZWFrOworCisJCWNhc2UgWlhfQ0xPQ0tfRklYRURf RElWOgorCQkJaHcgPSB6eF9jbGtfcmVnaXN0ZXJfZml4ZWRfZGl2KGRldiwgJmRhdGEtPmNsb2Nr c1tpXS5maXhlZF9kaXYsIGNsb2Nrcyk7CisJCQlicmVhazsKKworCQljYXNlIFpYX0NMT0NLX01V WDoKKwkJCWh3ID0genhfY2xrX3JlZ2lzdGVyX211eChkZXYsIG1hcCwgJmRhdGEtPmNsb2Nrc1tp XS5tdXgsIGNsb2Nrcyk7CisJCQlicmVhazsKKworCQljYXNlIFpYX0NMT0NLX0RJVjoKKwkJCWh3 ID0genhfY2xrX3JlZ2lzdGVyX2RpdmlkZXIoZGV2LCBtYXAsICZkYXRhLT5jbG9ja3NbaV0uZGl2 LCBjbG9ja3MpOworCQkJYnJlYWs7CisKKwkJY2FzZSBaWF9DTE9DS19HQVRFOgorCQkJaHcgPSB6 eF9jbGtfcmVnaXN0ZXJfZ2F0ZShkZXYsIG1hcCwgJmRhdGEtPmNsb2Nrc1tpXS5nYXRlLCBjbG9j a3MpOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisK KwkJaWYgKElTX0VSUihodykpCisJCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIo aHcpLCAiRmFpbGVkIHRvIHJlZ2lzdGVyIGNsayAldVxuIiwgaSk7CisKKwkJY2xvY2tzW2ldID0g aHc7CisJfQorCisJZXhwb3J0cyA9IGRldm1fa3phbGxvYyhkZXYsIHN0cnVjdF9zaXplKGV4cG9y dHMsIGh3cywgZGF0YS0+bnVtX2V4cG9ydHMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWV4cG9ydHMp CisJCXJldHVybiAtRU5PTUVNOworCWV4cG9ydHMtPm51bSA9IGRhdGEtPm51bV9leHBvcnRzOwor CisJZm9yIChpID0gMDsgaSA8IGRhdGEtPm51bV9leHBvcnRzOyArK2kpIHsKKwkJaWYgKGRhdGEt PmV4cG9ydHNbaV0gPj0gZGF0YS0+bnVtX2Nsb2NrcykKKwkJCXJldHVybiBkZXZfZXJyX3Byb2Jl KGRldiwgLUVJTlZBTCwKKwkJCQkJICAgICAiRXhwb3J0ICV1IHBvaW50cyB0byBvdXQgb2YgcmFu Z2UgY2xvY2sgJXVcbiIsCisJCQkJCSAgICAgaSwgZGF0YS0+ZXhwb3J0c1tpXSk7CisKKwkJZXhw b3J0cy0+aHdzW2ldID0gY2xvY2tzW2RhdGEtPmV4cG9ydHNbaV1dOworCX0KKworCWRldm1fa2Zy ZWUoZGV2LCBjbG9ja3MpOworCisJcmV0dXJuIGRldm1fb2ZfY2xrX2FkZF9od19wcm92aWRlcihk ZXYsIG9mX2Nsa19od19vbmVjZWxsX2dldCwgZXhwb3J0cyk7Cit9CitFWFBPUlRfU1lNQk9MX05T X0dQTCh6eF9jbGtfY29tbW9uX3Byb2JlLCAiWlRFX0NMSyIpOworCitNT0RVTEVfQVVUSE9SKCJT dGVmYW4gRMO2c2luZ2VyIDxzdGVmYW5kb2VzaW5nZXJAZ21haWwuY29tPiIpOworTU9EVUxFX0RF U0NSSVBUSU9OKCJaVEUgY29tbW9uIGNsb2NrIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL2Nsay16eC5oIGIvZHJpdmVycy9jbGsv enRlL2Nsay16eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODEz NzE4NWY0OTdmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvenRlL2Nsay16eC5oCkBA IC0wLDAgKzEsMTM3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5 ICovCisvKgorICogQ29weXJpZ2h0IChDKSAyMDI2IFN0ZWZhbiBEw7ZzaW5nZXIKKyAqLworCisj aWZuZGVmIF9fRFJWX0NMS19aWF9ICisjZGVmaW5lIF9fRFJWX0NMS19aWF9ICisKKyNpbmNsdWRl IDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgor CisjZGVmaW5lIENMS19aWF9QTExfUFJFUEFSRV9JU19FTkFCTEUJMQorI2RlZmluZSBDTEtfWlhf TUFYX1BBUkVOVFMJCTgKKworZW51bSB6eF9wYXJlbnRfdHlwZSB7CisJWlhfUEFSRU5UX0ZXLAor CVpYX1BBUkVOVF9JRCwKK307CisKK3N0cnVjdCB6eF9wYXJlbnRfZGVzYyB7CisJZW51bSB6eF9w YXJlbnRfdHlwZQkJdHlwZTsKKwl1bmlvbiB7CisJCWNvbnN0IGNoYXIJCSpmd19uYW1lOworCQl1 bnNpZ25lZCBpbnQJCWlkOworCX07Cit9OworCisjZGVmaW5lIFBBUkVOVF9GVyhfbmFtZSkgeyAu dHlwZSA9IFpYX1BBUkVOVF9GVywgLmZ3X25hbWUgPSAoX25hbWUpIH0KKworI2RlZmluZSBQQVJF TlRfSUQoX2lkKSB7IC50eXBlID0gWlhfUEFSRU5UX0lELCAuaWQgPSAoX2lkKSB9CisKK3N0YXRp YyBpbmxpbmUgc3RydWN0IGNsa19wYXJlbnRfZGF0YSB6eF9nZXRfcGFyZW50KGNvbnN0IHN0cnVj dCB6eF9wYXJlbnRfZGVzYyAqcCwKKwkJCQkJCSAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xv Y2tzKQoreworCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEgcmV0ID0ge307CisKKwlzd2l0Y2ggKHAt PnR5cGUpIHsKKwljYXNlIFpYX1BBUkVOVF9GVzoKKwkJcmV0LmZ3X25hbWUgPSBwLT5md19uYW1l OworCQlyZXQuaW5kZXggPSAtMTsKKwkJcmV0dXJuIHJldDsKKworCWNhc2UgWlhfUEFSRU5UX0lE OgorCQlyZXQuaHcgPSBjbG9ja3NbcC0+aWRdOworCQlyZXQuaW5kZXggPSAtMTsKKwkJcmV0dXJu IHJldDsKKwl9CisKKwlXQVJOX09OX09OQ0UoMSk7CisJcmV0dXJuIHJldDsKK30KKworc3RydWN0 IHp4X3BsbF9kZXNjIHsKKwljb25zdCBjaGFyCQkJKm5hbWU7CisJY29uc3Qgc3RydWN0IHp4X3Bh cmVudF9kZXNjCSpwYXJlbnRzOworCXVuc2lnbmVkIGludAkJCW51bV9wYXJlbnRzOworCXVuc2ln bmVkIGxvbmcJCQlyYXRlOworCXUxNgkJCQlyZWc7CisJdTE2CQkJCWZsYWdzOworfTsKKworc3Ry dWN0IHp4X2ZpeGVkX2RpdmlkZXJfZGVzYyB7CisJY29uc3QgY2hhcgkJCSpuYW1lOworCXN0cnVj dCB6eF9wYXJlbnRfZGVzYwkJcGFyZW50OworCXVuc2lnbmVkIGludAkJCWRpdjsKK307CisKK3N0 cnVjdCB6eF9tdXhfZGVzYyB7CisJY29uc3QgY2hhcgkJCSpuYW1lOworCWNvbnN0IHN0cnVjdCB6 eF9wYXJlbnRfZGVzYwkqcGFyZW50czsKKwl1bnNpZ25lZCBpbnQJCQludW1fcGFyZW50czsKKwl1 MTYJCQkJcmVnOworCXU4CQkJCXNoaWZ0LCBzaXplOworfTsKKworc3RydWN0IHp4X2Rpdl9kZXNj IHsKKwljb25zdCBjaGFyCQkJKm5hbWU7CisJc3RydWN0IHp4X3BhcmVudF9kZXNjCQlwYXJlbnQ7 CisJdTE2CQkJCXJlZzsKKwl1OAkJCQlzaGlmdCwgc2l6ZTsKK307CisKK3N0cnVjdCB6eF9nYXRl X2Rlc2MgeworCWNvbnN0IGNoYXIJCQkqbmFtZTsKKwlzdHJ1Y3QgenhfcGFyZW50X2Rlc2MJCXBh cmVudDsKKwl1bnNpZ25lZCBsb25nCQkJZmxhZ3M7CisJdTE2CQkJCXJlZzsKKwl1OAkJCQlzaGlm dDsKK307CisKK2VudW0genhfY2xvY2tfdHlwZSB7CisJWlhfQ0xPQ0tfSU5WQUxJRCA9IDAsCisJ WlhfQ0xPQ0tfUExMLAorCVpYX0NMT0NLX0ZJWEVEX0RJViwKKwlaWF9DTE9DS19NVVgsCisJWlhf Q0xPQ0tfRElWLAorCVpYX0NMT0NLX0dBVEUsCit9OworCitzdHJ1Y3QgenhfY2xvY2sgeworCWVu dW0genhfY2xvY2tfdHlwZSB0eXBlOworCXVuaW9uIHsKKwkJc3RydWN0IHp4X3BsbF9kZXNjIHBs bDsKKwkJc3RydWN0IHp4X2ZpeGVkX2RpdmlkZXJfZGVzYyBmaXhlZF9kaXY7CisJCXN0cnVjdCB6 eF9tdXhfZGVzYyBtdXg7CisJCXN0cnVjdCB6eF9kaXZfZGVzYyBkaXY7CisJCXN0cnVjdCB6eF9n YXRlX2Rlc2MgZ2F0ZTsKKwl9OworfTsKKworc3RydWN0IGNsa19odyAqenhfY2xrX3JlZ2lzdGVy X3BsbChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKKwkJCQkgICBj b25zdCBzdHJ1Y3QgenhfcGxsX2Rlc2MgKmRlc2MsCisJCQkJICAgc3RydWN0IGNsa19odyAqIGNv bnN0ICpjbG9ja3MpOworc3RydWN0IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKKwkJCQkgICBjb25zdCBzdHJ1Y3Qg enhfbXV4X2Rlc2MgKmRlc2MsCisJCQkJICAgc3RydWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3Mp Oworc3RydWN0IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX2RpdmlkZXIoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsCisJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB6eF9k aXZfZGVzYyAqZGVzYywKKwkJCQkgICAgICAgc3RydWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3Mp Oworc3RydWN0IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX2dhdGUoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsCisJCQkJICAgIGNvbnN0IHN0cnVjdCB6eF9nYXRlX2Rl c2MgKmRlc2MsCisJCQkJICAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKTsKKworc3Ry dWN0IHp4X2Nsa19kYXRhIHsKKwlpbnQgKCppbml0KShzdHJ1Y3QgcmVnbWFwICptYXApOworCWNv bnN0IHN0cnVjdCB6eF9jbG9jayAqY2xvY2tzOworCXVuc2lnbmVkIGludCBudW1fY2xvY2tzOwor CWNvbnN0IHVuc2lnbmVkIGludCAqZXhwb3J0czsKKwl1bnNpZ25lZCBpbnQgbnVtX2V4cG9ydHM7 Cit9OworCitpbnQgenhfY2xrX2NvbW1vbl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZSwKKwkJCWNvbnN0IHN0cnVjdCB6eF9jbGtfZGF0YSAqZGF0 YSk7CisKKyNlbmRpZiAvKiBfX0RSVl9DTEtfWlhfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvenRlL3BsbC16eC5jIGIvZHJpdmVycy9jbGsvenRlL3BsbC16eC5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmM3NmM2NTI0YTE2Ci0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9jbGsvenRlL3BsbC16eC5jCkBAIC0wLDAgKzEsMTggQEAKKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjYg U3RlZmFuIETDtnNpbmdlcgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4K KyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2lu Y2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSAiY2xrLXp4LmgiCisKK3N0cnVjdCBj bGtfaHcgKnp4X2Nsa19yZWdpc3Rlcl9wbGwoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVn bWFwICpyZWdtYXAsCisJCQkJICAgY29uc3Qgc3RydWN0IHp4X3BsbF9kZXNjICpkZXNjLAorCQkJ CSAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKQoreworCXJldHVybiBFUlJfUFRSKC1F Tk9ERVYpOworfQoKLS0gCjIuNTQuMAoKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4 LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=