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 B26ACC98304 for ; Wed, 23 Sep 2026 18:30:12 +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=XPubC1H2rJMHDojOhUH4aDemqZgvpbXy1H3VZ9y0AuY=; b=yXRVbG1tIZGdmC /8Z6gKe5pt1r1R3eGpB9CGA0eEV0mpFuldfL+3aS8uc0H54lPNiRrFkx6Ls/M9UCb+9INcW0DIibX wx42xSTc/EQMMjSuhf+QQ/rDmfP+jQ1NPd/D4xUfxFMxJFX+6rPGuSrZH4VYFx/b6WtHIkBd6Ilmu wWbeUiaVoygFd3d3U/6YeQEI+zqdYq7Mok1lGY2/GH5iIqZ9QzwiPg/3SIRfUWOVA4BS3skDuwceo KJLp87f/ZiYQPgSfv6PyElqrJbJ/2eJ1JqvxkMscWG0H3x4rh7VjF/vwzZyUNo9C46+c9Po04YAA/ ur32w6pz44rUa7oOWBng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9RjQ-00000009CLP-0Es4; Wed, 23 Sep 2026 18:30:12 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9Rj7-00000009CAk-1DWW for linux-phy@bombadil.infradead.org; Wed, 23 Sep 2026 18:29:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Cc:To:In-Reply-To:References: Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=mp6wBBpQsQq5uAJhpRvAfRITa5kH/kGE8kQJrdjyLoY=; b=ddrjshvgPeOvRpfGr7poMOQA8S zapdelOajgRSEIkPuTKErWupUppQS9lZpJpeMOnFGis+AwbXADHLJ3S7/V2tukAocopyeThGrE1SC 8rE4hbaAT4n3CkN0ZUW08w7usfkk8QaHImq55Jz4QjqgH0KvADKG6kSebw7s/7Y8CU8W00dSNkAP+ KgXo26raW+YCBD27Ao6TLm+WJikiMgQmeyZvJznlbeagqZ2xDljjCX7EPRZT4mYIrn7S+EpunQIQ2 fmtmI4rCKJbvbGZ/WBU2lD1TN4xa72lCGcSXAfod4Wk6vawAPEAbqg+HSFvHmU+tontxhDTw0nBMT /hcJ1huA==; Received: from mail-wm2-x10.google.com ([2a00:1450:4864:31::10]) by desiato.infradead.org with esmtps (Exim 4.99.2 #2 (Red Hat Linux)) id 1x9Rj4-0000000F9fV-18nJ for linux-phy@lists.infradead.org; Wed, 23 Sep 2026 18:29:52 +0000 Received: by mail-wm2-x10.google.com with SMTP id 5b1f17b1804b1-49b912e2406so6197625e9.1 for ; Wed, 23 Sep 2026 11:29:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790188189; x=1790792989; 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=mp6wBBpQsQq5uAJhpRvAfRITa5kH/kGE8kQJrdjyLoY=; b=ZR5qypoTvsmMrB3hsLFsLL3WBYGRxx9SQ8FpUqkbmHXNB+bML49vabmKszs2leX6JC /e4opI/P+PbHaJeduEAdIBV4ZeZ2dpjlxpLtYHJmhB4qnsZckYtsLHl4gy/SwL31GA++ hAduXgZpXeNmu66mjV04Pqq58893yYCMdr8aDgtpAYpwhjyt5p3bSOZA2ACIGFBsvnkV U0wZyniSLTYLK2CJGpiZYFMkepuwfD/B2KwxISHe6NT3tZ1vi3FQFdqdfyAHp3DHqQx4 ocuP9VVqV/+Wtu5PVAxiDnNFxrTPP6VcCDABBjaLHF9cnEbNM2NB2XhOTGFNTTw2lBqu UFJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790188189; x=1790792989; 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=mp6wBBpQsQq5uAJhpRvAfRITa5kH/kGE8kQJrdjyLoY=; b=irkmKR6oKbX/tDoaiW+qKLtmDNoNBiJbYDTV+e4rReXzUOsRxdTayT/4CoXEMwVA6r /2F8ni5/A8K56krbwHcYiHwA8OT8wko672zVU+XO7XQ7GvFS7hBGm842ouFpU7kcRRRc 3kTn5g5Zz+mcc9Hg8ZoRQYt0vvIICbCkFo2cZJ9A/qwz69DINra9hgqPBJpX4qd9DdIi C3qii0BTRxy5lzjk9ACyrzJ2PdgpqtXZRLEPlTIclEmG2WxFG9uVj2YAEQkBZHRIBseg cmi5/W3ymkEHMV7f49WOk8qX5CrvA4mham3FnEs/6WbxtLDbUtMB3K2cGr7ktoIMoW0W 1ttw== X-Forwarded-Encrypted: i=1; AKwUvBwI5jztcDsLtOGXdOzK62yRncjNvYS9lbhU77MmRs6A+M5r+6VD8iIUQgLeKcCz/oJ4G4IEjjAs4Vo=@lists.infradead.org X-Gm-Message-State: AFuF++muaX5YbanaWrk/rjn8yvoFUdeIhAulxpP2W+iH4+7WQvK/OwBz 6UYTQVzMdvfU8Ho00BysNEG+wq8ejYU32HbUUSNaGrqSdpHj1kcyU+Jn X-Gm-Gg: AYBFou0xIpJI/7d7Dc4v1DQlMYaxt5kYjvBh0N0f9lG/zGc6kopcYmiO+3hm6rDwad6 +TC997fmdk+2+Bj3YYeFE9S5HCR73lUYO0c5Z4snbglwCSJb4JxY8KXRSEVIIglrqn3DChNNvE6 qteRs4T9r9+Kplk0MOSSk2g00TIn6LiN/Wq7bz8SEhCHOcml0dBVlqjXlY5o2qtPVgnAkrrSAlh sp7gWMySa2K2VDXaW8Uh7z09b8ile59/77TVy/P2LCFCh77H0VwfyxohkIcaA1OAw/Oht+cO0VJ dCEtlz8szCmoAZv50F9A1yyI1yy+Xd/zrtxH80tlHatD+sGZ3Ez8NX3tefYJ4fvwK+hV0c2gw9q 89ttRuQJ3PxzLWbU4TU+ozQp/p+XeppvDbVbJkqopqTR/EO9nvwk2WIE2ZvNKZwMNFw4mzAu5mI dHhDMBxVNNxZ9MJzLcdQ7Acw04UWr1JhosHNGlgsBHjtXy4zqBsx0N5XlDDyocLQI729DytM1ul qrC X-Received: by 2002:a05:600c:6986:b0:49f:c5aa:9ef4 with SMTP id 5b1f17b1804b1-49fe66d05d7mr1547555e9.8.1790188189034; Wed, 23 Sep 2026 11:29:49 -0700 (PDT) Received: from [192.168.0.2] ([197.250.51.38]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fe5cd3d5csm4711835e9.14.2026.09.23.11.29.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Sep 2026 11:29:48 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Wed, 23 Sep 2026 21:28:52 +0300 Subject: [PATCH v12 06/12] clk: zte: Add regmap-based clocks MIME-Version: 1.0 Message-Id: <20260923-zx29clk-v12-6-9c243796b6d2@gmail.com> References: <20260923-zx29clk-v12-0-9c243796b6d2@gmail.com> In-Reply-To: <20260923-zx29clk-v12-0-9c243796b6d2@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 , Brian Masney , Jerome Brunet , Manivannan Sadhasivam 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.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7927; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=xrGH6M3bJ8igFRHyhrXgCckCWaOGHyA4X0Rt+3qQ9UA=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBqtBpuQdGI3c2kAwgmD9hpZRBBsxjbvLmJKy6Wu p5HruEfARGJAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCarQabhsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiJx2Q/+OevB3ZmmFGlT6NVlxRxr4ntuHLQNJS7 RH32sCWbWgZz2WSsIXW75LTsmV4ZfW2PUwKUPgrf8RSPgU8470MrRn06OAFvX8ngR2N7/dU5qZA dfqUxDC/CarcbwreIiQrllx+un3ZrrPLeuX7ZBQoScdfipYsoBntuaBpbJVNQNk4oLjgHyLFMO+ YzAoKqk1vvxudjcH9AXR7eo4/RPgP6Z19CUy3ktVeIiIkdJEAaHgbOrAsrKC8qWPkwtyXjNm6Co oV52wpNqBZUSHKDXpQDG1fVRvK/+RxslHlD2lwfv9JbeCyOz23nDkv8aFu5da7cKRtPtrKHelFn V5k+meSKEEXSk0h1NHA5KZg574Ti7Sq/mHtjzQwjOvQNwhNd04g0f2vCpmbcEkofGcFXYjpNdci XRHCbnB3rPawe03Uwi9OmhqwdL+u/OMGRZhCJXwSC49hSrTG2sQ/4cb8FEDAkIcWXKyKC9Lq6a7 r36w/8pZYXMfapW4zo6d0GEjgS0vJHG9+VzQ5pQRVi/Krzdf9f+lTH39rQANcj4T2vUdE9h8ezh 2xm6r9Ahn/AoFxYwN0ciatadXSMMaFeGqkfyvzEfKXwLWEig9bjKb9rQvvq+pLzBovNOYaiKeoz 41ajqIrhSNc5bSwmkGxItVObZGACI4TD2AM83sGB0nZF0kL816DE= 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-20260923_192950_487484_BF723A28 X-CRM114-Status: GOOD ( 19.34 ) 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 VGhpcyBpcyBiYXNlZCBvbiBtZXNvbi9jbGstcmVnbWFwLmMsIGFsdGhvdWdoIHNsaWdodGx5IHNp bXBsaWZpZWQuIEkKaGF2ZSBrZXB0IHRoZSBjb3B5cmlnaHQgbGluZXMgYXQgdGhlIHRvcCBvZiB0 aGUgZmlsZSB0byBpbmRpY2F0ZSBpdHMKb3JpZ2luLgoKUmV2aWV3ZWQtYnk6IEJyaWFuIE1hc25l eSA8Ym1hc25leUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gRMO2c2luZ2VyIDxz dGVmYW5kb2VzaW5nZXJAZ21haWwuY29tPgotLS0KCkkgc2VlIHRoYXQgbnVtZXJvdXMgY2xvY2sg ZHJpdmVycyBoYXZlIHRoZWlyIG93biBpbmNhcm5hdGlvbiBvZiByZWdtYXAtCmJhc2VkIG11eC9k aXYvZ2F0ZSBjbG9ja3MuIElmIHRoZXJlIGlzIGFueSB2ZXJzaW9uIG9mIGl0IHRoYXQgaXMgbGlr ZWx5CnRvIGJlIGVsZXZhdGVkIHRvIHNoYXJlZCBjb2RlIGxpa2UgY2xrLWdhdGUuYyBJJ2xsIGNv cHkgdGhhdCBhbmQgdHJ5IHRvCnVzZSBpdCBhcyB1bm1vZGlmaWVkIGFzIHBvc3NpYmxlLgoKVmVy c2lvbiA5OgpSZWdpc3RlciBzaW5nbGUgY2xvY2tzIHBlciBmdW5jdGlvbiBpbnZvY2F0aW9uLCBy ZW1vdmUKWlgyOTc1MjBWM19DTEtfTk9fRVhQT1JUIGFnYWluCgpWZXJzaW9uIDg6IFVzZSBaWDI5 NzUyMFYzX0NMS19OT19FWFBPUlQgaW5zdGVhZCBvZiAwIGZvciB1bmV4cG9ydGVkIGNsb2Nrcy4K ClZlcnNpb24gNjogUmVtb3ZlIHN0cmF5IHJlZ21hcCAoU2FzaGlrbykKClZlcnNpb24gNTogVXNl IHJlZ21hcF90ZXN0X2JpdHMgaW4genRlX2Nsa19yZWdtYXBfZ2F0ZV9pc19lbmFibGVkCi0tLQog ZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAuYyB8IDIxOSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAu YyBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstcmVnbWFwLmMKaW5kZXggODAzMzJkYmE5N2Y2Li4wMjJi MmJlN2JiM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3p0ZS9jbGstcmVnbWFwLmMKKysrIGIv ZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAuYwpAQCAtMSwzMiArMSwyMzcgQEAKIC8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAvKgorICogQ29weXJpZ2h0IChjKSAyMDE4IEJh eUxpYnJlLCBTQVMuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMjYgU3RlZmFuIETDtnNpbmdlcgogICov CiAKKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVy Lmg+CisjaW5jbHVkZSA8bGludXgvY29udGFpbmVyX29mLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2 aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4K ICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCiAj aW5jbHVkZSAiY2xrLXp4LmgiCiAKK3N0cnVjdCB6dGVfY2xrX3JlZ21hcCB7CisJc3RydWN0IGNs a19odwlodzsKKwlzdHJ1Y3QgcmVnbWFwCSptYXA7CisJdTE2CQlyZWc7CisJdTgJCXNoaWZ0Owor CXU4CQlzaXplOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKnRv X3p0ZV9jbGtfcmVnbWFwKHN0cnVjdCBjbGtfaHcgKmh3KQoreworCXJldHVybiBjb250YWluZXJf b2YoaHcsIHN0cnVjdCB6dGVfY2xrX3JlZ21hcCwgaHcpOworfQorCitzdGF0aWMgaW50IHp0ZV9j bGtfcmVnbWFwX2dhdGVfZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQoreworCXN0cnVjdCB6dGVf Y2xrX3JlZ21hcCAqY2xrID0gdG9fenRlX2Nsa19yZWdtYXAoaHcpOworCisJcmV0dXJuIHJlZ21h cF9zZXRfYml0cyhjbGstPm1hcCwgY2xrLT5yZWcsIEJJVChjbGstPnNoaWZ0KSk7Cit9CisKK3N0 YXRpYyB2b2lkIHp0ZV9jbGtfcmVnbWFwX2dhdGVfZGlzYWJsZShzdHJ1Y3QgY2xrX2h3ICpodykK K3sKKwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKmNsayA9IHRvX3p0ZV9jbGtfcmVnbWFwKGh3KTsK KworCXJlZ21hcF9jbGVhcl9iaXRzKGNsay0+bWFwLCBjbGstPnJlZywgQklUKGNsay0+c2hpZnQp KTsKK30KKworc3RhdGljIGludCB6dGVfY2xrX3JlZ21hcF9nYXRlX2lzX2VuYWJsZWQoc3RydWN0 IGNsa19odyAqaHcpCit7CisJc3RydWN0IHp0ZV9jbGtfcmVnbWFwICpjbGsgPSB0b196dGVfY2xr X3JlZ21hcChodyk7CisKKwlyZXR1cm4gcmVnbWFwX3Rlc3RfYml0cyhjbGstPm1hcCwgY2xrLT5y ZWcsIEJJVChjbGstPnNoaWZ0KSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyB6 dGVfY2xrX3JlZ21hcF9nYXRlX29wcyA9IHsKKwkuZW5hYmxlCQk9IHp0ZV9jbGtfcmVnbWFwX2dh dGVfZW5hYmxlLAorCS5kaXNhYmxlCT0genRlX2Nsa19yZWdtYXBfZ2F0ZV9kaXNhYmxlLAorCS5p c19lbmFibGVkCT0genRlX2Nsa19yZWdtYXBfZ2F0ZV9pc19lbmFibGVkLAorfTsKKwogc3RydWN0 IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX2dhdGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg cmVnbWFwICpyZWdtYXAsCi0JCQkJICAgIGNvbnN0IHN0cnVjdCB6eF9nYXRlX2Rlc2MgKmRlc2Ms Ci0JCQkJICAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKQorCQkJCSAgICBjb25zdCBz dHJ1Y3QgenhfZ2F0ZV9kZXNjICpkZXNjLCBzdHJ1Y3QgY2xrX2h3ICogY29uc3QgKmNsb2NrcykK K3sKKwlzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIHBhcmVudCA9IHp4X2dldF9wYXJlbnQoJmRlc2Mt PnBhcmVudCwgY2xvY2tzKTsKKwlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0ID0ge307CisJc3Ry dWN0IHp0ZV9jbGtfcmVnbWFwICpjbGs7CisJaW50IHJlczsKKworCWNsayA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqY2xrKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbGspCisJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCisJaW5pdC5uYW1lID0gZGVzYy0+bmFtZTsKKwlpbml0Lm9wcyA9 ICZ6dGVfY2xrX3JlZ21hcF9nYXRlX29wczsKKwlpbml0LnBhcmVudF9kYXRhID0gJnBhcmVudDsK Kwlpbml0Lm51bV9wYXJlbnRzID0gMTsKKwlpbml0LmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVO VCB8IGRlc2MtPmZsYWdzOworCWNsay0+aHcuaW5pdCA9ICZpbml0OworCWNsay0+bWFwID0gcmVn bWFwOworCWNsay0+cmVnID0gZGVzYy0+cmVnOworCWNsay0+c2hpZnQgPSBkZXNjLT5zaGlmdDsK KwljbGstPnNpemUgPSAxOworCisJcmVzID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoZGV2LCAmY2xr LT5odyk7CisJaWYgKHJlcykKKwkJcmV0dXJuIEVSUl9QVFIocmVzKTsKKworCXJldHVybiAmY2xr LT5odzsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgenRlX2Nsa19yZWdtYXBfZGl2X3JlY2Fs Y19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAorCQkJCQkJICAgIHVuc2lnbmVkIGxvbmcgcHJhdGUp Cit7CisJc3RydWN0IHp0ZV9jbGtfcmVnbWFwICpjbGsgPSB0b196dGVfY2xrX3JlZ21hcChodyk7 CisJdW5zaWduZWQgaW50IHZhbDsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVnbWFwX3JlYWQoY2xr LT5tYXAsIGNsay0+cmVnLCAmdmFsKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gMDsgLyogR2l2ZXMg YSBoaW50IHRoYXQgc29tZXRoaW5nIGlzIHdyb25nICovCisKKwl2YWwgPj49IGNsay0+c2hpZnQ7 CisJdmFsICY9IGNsa19kaXZfbWFzayhjbGstPnNpemUpOworCisJcmV0dXJuIGRpdmlkZXJfcmVj YWxjX3JhdGUoaHcsIHByYXRlLCB2YWwsIE5VTEwsIDAsIGNsay0+c2l6ZSk7Cit9CisKK3N0YXRp YyBpbnQgenRlX2Nsa19yZWdtYXBfZGl2X2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3 LAorCQkJCQkgICAgIHN0cnVjdCBjbGtfcmF0ZV9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IHp0 ZV9jbGtfcmVnbWFwICpjbGsgPSB0b196dGVfY2xrX3JlZ21hcChodyk7CisKKwlyZXR1cm4gZGl2 aWRlcl9kZXRlcm1pbmVfcmF0ZShodywgcmVxLCBOVUxMLCBjbGstPnNpemUsIDApOworfQorCitz dGF0aWMgaW50IHp0ZV9jbGtfcmVnbWFwX2Rpdl9zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywg dW5zaWduZWQgbG9uZyByYXRlLAorCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRl KQogewotCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOworCXN0cnVjdCB6dGVfY2xrX3JlZ21hcCAq Y2xrID0gdG9fenRlX2Nsa19yZWdtYXAoaHcpOworCXVuc2lnbmVkIGludCB2YWw7CisJaW50IHJl dDsKKworCXJldCA9IGRpdmlkZXJfZ2V0X3ZhbChyYXRlLCBwYXJlbnRfcmF0ZSwgTlVMTCwgY2xr LT5zaXplLCAwKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXZhbCA9ICh1bnNp Z25lZCBpbnQpcmV0IDw8IGNsay0+c2hpZnQ7CisKKwlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRz KGNsay0+bWFwLCBjbGstPnJlZywgY2xrX2Rpdl9tYXNrKGNsay0+c2l6ZSkgPDwgY2xrLT5zaGlm dCwgdmFsKTsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHp0ZV9jbGtfcmVnbWFw X2RpdmlkZXJfb3BzID0geworCS5yZWNhbGNfcmF0ZSA9IHp0ZV9jbGtfcmVnbWFwX2Rpdl9yZWNh bGNfcmF0ZSwKKwkuZGV0ZXJtaW5lX3JhdGUgPSB6dGVfY2xrX3JlZ21hcF9kaXZfZGV0ZXJtaW5l X3JhdGUsCisJLnNldF9yYXRlID0genRlX2Nsa19yZWdtYXBfZGl2X3NldF9yYXRlLAorfTsKKwog c3RydWN0IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX2RpdmlkZXIoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsCiAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB6eF9kaXZf ZGVzYyAqZGVzYywKIAkJCQkgICAgICAgc3RydWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3MpCiB7 Ci0JcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CisJc3RydWN0IGNsa19wYXJlbnRfZGF0YSBwYXJl bnQgPSB6eF9nZXRfcGFyZW50KCZkZXNjLT5wYXJlbnQsIGNsb2Nrcyk7CisJc3RydWN0IGNsa19p bml0X2RhdGEgaW5pdCA9IHt9OworCXN0cnVjdCB6dGVfY2xrX3JlZ21hcCAqY2xrOworCWludCBy ZXM7CisKKwljbGsgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmNsayksIEdGUF9LRVJORUwp OworCWlmICghY2xrKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWluaXQubmFtZSA9 IGRlc2MtPm5hbWU7CisJaW5pdC5vcHMgPSAmenRlX2Nsa19yZWdtYXBfZGl2aWRlcl9vcHM7CisJ aW5pdC5wYXJlbnRfZGF0YSA9ICZwYXJlbnQ7CisJaW5pdC5udW1fcGFyZW50cyA9IDE7CisJaW5p dC5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQ7CisJY2xrLT5ody5pbml0ID0gJmluaXQ7CisJ Y2xrLT5tYXAgPSByZWdtYXA7CisJY2xrLT5yZWcgPSBkZXNjLT5yZWc7CisJY2xrLT5zaGlmdCA9 IGRlc2MtPnNoaWZ0OworCWNsay0+c2l6ZSA9IGRlc2MtPnNpemU7CisKKwlyZXMgPSBkZXZtX2Ns a19od19yZWdpc3RlcihkZXYsICZjbGstPmh3KTsKKwlpZiAocmVzKQorCQlyZXR1cm4gRVJSX1BU UihyZXMpOworCisJcmV0dXJuICZjbGstPmh3OwogfQogCitzdGF0aWMgdTggenRlX2Nsa19yZWdt YXBfbXV4X2dldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcpCit7CisJc3RydWN0IHp0ZV9jbGtf cmVnbWFwICpjbGsgPSB0b196dGVfY2xrX3JlZ21hcChodyk7CisJdW5zaWduZWQgaW50IHZhbDsK KwlpbnQgcmV0OworCisJcmV0ID0gcmVnbWFwX3JlYWQoY2xrLT5tYXAsIGNsay0+cmVnLCAmdmFs KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gMHhmZjsKKworCXZhbCA+Pj0gY2xrLT5zaGlmdDsKKwl2 YWwgJj0gR0VOTUFTSyhjbGstPnNpemUgLSAxLCAwKTsKKworCXJldHVybiBjbGtfbXV4X3ZhbF90 b19pbmRleChodywgTlVMTCwgMCwgdmFsKTsKK30KKworc3RhdGljIGludCB6dGVfY2xrX3JlZ21h cF9tdXhfc2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodywgdTggaW5kZXgpCit7CisJc3RydWN0 IHp0ZV9jbGtfcmVnbWFwICpjbGsgPSB0b196dGVfY2xrX3JlZ21hcChodyk7CisJdW5zaWduZWQg aW50IHZhbCA9IGNsa19tdXhfaW5kZXhfdG9fdmFsKE5VTEwsIDAsIGluZGV4KTsKKworCXJldHVy biByZWdtYXBfdXBkYXRlX2JpdHMoY2xrLT5tYXAsIGNsay0+cmVnLAorCQkJCSAgR0VOTUFTSyhj bGstPnNpemUgLSAxLCAwKSA8PCBjbGstPnNoaWZ0LAorCQkJCSAgdmFsIDw8IGNsay0+c2hpZnQp OworfQorCitzdGF0aWMgaW50IHp0ZV9jbGtfcmVnbWFwX211eF9kZXRlcm1pbmVfcmF0ZShzdHJ1 Y3QgY2xrX2h3ICpodywgc3RydWN0IGNsa19yYXRlX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4g Y2xrX211eF9kZXRlcm1pbmVfcmF0ZV9mbGFncyhodywgcmVxLCAwKTsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfb3BzIHp0ZV9jbGtfcmVnbWFwX211eF9vcHMgPSB7CisJLmdldF9wYXJl bnQgPSB6dGVfY2xrX3JlZ21hcF9tdXhfZ2V0X3BhcmVudCwKKwkuc2V0X3BhcmVudCA9IHp0ZV9j bGtfcmVnbWFwX211eF9zZXRfcGFyZW50LAorCS5kZXRlcm1pbmVfcmF0ZSA9IHp0ZV9jbGtfcmVn bWFwX211eF9kZXRlcm1pbmVfcmF0ZSwKK307CisKIHN0cnVjdCBjbGtfaHcgKnp4X2Nsa19yZWdp c3Rlcl9tdXgoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsCi0JCQkJ ICAgY29uc3Qgc3RydWN0IHp4X211eF9kZXNjICpkZXNjLAotCQkJCSAgIHN0cnVjdCBjbGtfaHcg KiBjb25zdCAqY2xvY2tzKQorCQkJICBjb25zdCBzdHJ1Y3QgenhfbXV4X2Rlc2MgKmRlc2MsIHN0 cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKQogewotCXJldHVybiBFUlJfUFRSKC1FTk9ERVYp OworCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEgcGFyZW50c1tDTEtfWlhfTUFYX1BBUkVOVFNdOwor CXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQgPSB7fTsKKwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAg KmNsazsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmVzOworCisJaWYgKFdBUk5fT04oZGVzYy0+ bnVtX3BhcmVudHMgPiBBUlJBWV9TSVpFKHBhcmVudHMpKSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJ TlZBTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGVzYy0+bnVtX3BhcmVudHM7ICsraSkKKwkJcGFy ZW50c1tpXSA9IHp4X2dldF9wYXJlbnQoJmRlc2MtPnBhcmVudHNbaV0sIGNsb2Nrcyk7CisKKwlj bGsgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmNsayksIEdGUF9LRVJORUwpOworCWlmICgh Y2xrKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWluaXQubmFtZSA9IGRlc2MtPm5h bWU7CisJaW5pdC5vcHMgPSAmenRlX2Nsa19yZWdtYXBfbXV4X29wczsKKwlpbml0LnBhcmVudF9k YXRhID0gcGFyZW50czsKKwlpbml0Lm51bV9wYXJlbnRzID0gZGVzYy0+bnVtX3BhcmVudHM7CisJ Y2xrLT5ody5pbml0ID0gJmluaXQ7CisJY2xrLT5tYXAgPSByZWdtYXA7CisJY2xrLT5yZWcgPSBk ZXNjLT5yZWc7CisJY2xrLT5zaGlmdCA9IGRlc2MtPnNoaWZ0OworCWNsay0+c2l6ZSA9IGRlc2Mt PnNpemU7CisKKwlyZXMgPSBkZXZtX2Nsa19od19yZWdpc3RlcihkZXYsICZjbGstPmh3KTsKKwlp ZiAocmVzKQorCQlyZXR1cm4gRVJSX1BUUihyZXMpOworCisJcmV0dXJuICZjbGstPmh3OwogfQoK LS0gCjIuNTUuMAoKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXBoeQo=