From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78582C61DA4 for ; Mon, 6 Feb 2023 13:44:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229614AbjBFNoJ (ORCPT ); Mon, 6 Feb 2023 08:44:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229645AbjBFNoG (ORCPT ); Mon, 6 Feb 2023 08:44:06 -0500 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 135A010F4 for ; Mon, 6 Feb 2023 05:44:05 -0800 (PST) Received: by mail-wr1-x42b.google.com with SMTP id d14so10386389wrr.9 for ; Mon, 06 Feb 2023 05:44:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FYkW6U+ZAL6IPEC3v84+mOvhpm/8I/o3t0bipCAwglk=; b=vzGnF6eTcIkKhAJpWbA6oDofeaYPzVss3CFVFeOB1iJ8DIqf0Cqz97sPpyUfKw/l6p eOGcb3TVoaczcrvlQMbUg+FmUUSttFrtjX8koKDkMYvsQORjvT/mXwnAtvX/cMy8Od02 d2IbKUEFbx1G79TpsUexTwzWfnU+bZqqfd8PpAhFW1LA9XYVz7cuqsorTQUm6+WIEDSj toXE00nuVe7mNNOnvelne29+/wcLTGfI2XqhyzoY6hmZK+LBcE2GjahFRkyObAfumJhY ADJ+WBazhoQDVNA8+gyzUw7/C2LL2RjFP4QJkHpwNSvAL+d6s20IC29dvutstUFDg3h0 GtTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FYkW6U+ZAL6IPEC3v84+mOvhpm/8I/o3t0bipCAwglk=; b=IVYeh5rkcFZ+gQQbG6lmzdoY/9YfpTj/eGBGLme6ONyKCU39jGRziHZj1rrcANodYU QkuUq2uGwFiPmOdf3XjYkZ9EhwgC5YHOUq6JwOGi0IkhBytYa7339vokL8klD+quFw87 iOBZht/WuNd3N+LyX3ZmDFyryNvC4h8hCcoJNFyIq7elotBKiF5EC5o6Zgfo3kDDMTb8 lREJ2f7M4GEtAVtLehjZqygSQ0ndR9TKbfZDvPjU86sgxy6U63Drd4mMMkVWKZW2N1k3 sAkLec5LscbZx8WfmRyZFYujTyXjhY384TWDvQpJ30ifs4nZC0+gBkQq2BsMDiwKaaR7 vS0A== X-Gm-Message-State: AO0yUKX5SyeMt2Yg57dD50DSNptjzLBFHfL+5kSVJMxlE0s1JgsKDjBS xOyfFfpXNgcsUSVlKVDiPP/zaDCUSudQNzdA X-Google-Smtp-Source: AK7set+qCFUgEh+bVwHGY/St4xMegpDUi//09r2x1k/PfLugJzYkyDeQ443vxhjaj9O6rsmpB1ooQg== X-Received: by 2002:a5d:64e6:0:b0:2bf:b33b:fb7a with SMTP id g6-20020a5d64e6000000b002bfb33bfb7amr21463238wri.25.1675691043623; Mon, 06 Feb 2023 05:44:03 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:03 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Samuel Holland , Srinivas Kandagatla Subject: [PATCH v2 01/22] nvmem: sunxi_sid: Drop the workaround on A64 Date: Mon, 6 Feb 2023 13:43:35 +0000 Message-Id: <20230206134356.839737-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Samuel Holland Now that the SRAM readout code is fixed by using 32-bit accesses, it always returns the same values as register readout, so the A64 variant no longer needs the workaround. This makes the D1 variant structure redundant, so remove it. Signed-off-by: Samuel Holland Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/sunxi_sid.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c index 92dfe4cb10e3..a970f1741cc6 100644 --- a/drivers/nvmem/sunxi_sid.c +++ b/drivers/nvmem/sunxi_sid.c @@ -197,15 +197,9 @@ static const struct sunxi_sid_cfg sun8i_h3_cfg =3D { .need_register_readout =3D true, }; =20 -static const struct sunxi_sid_cfg sun20i_d1_cfg =3D { - .value_offset =3D 0x200, - .size =3D 0x100, -}; - static const struct sunxi_sid_cfg sun50i_a64_cfg =3D { .value_offset =3D 0x200, .size =3D 0x100, - .need_register_readout =3D true, }; =20 static const struct sunxi_sid_cfg sun50i_h6_cfg =3D { @@ -218,7 +212,7 @@ static const struct of_device_id sunxi_sid_of_match[] = =3D { { .compatible =3D "allwinner,sun7i-a20-sid", .data =3D &sun7i_a20_cfg }, { .compatible =3D "allwinner,sun8i-a83t-sid", .data =3D &sun50i_a64_cfg }, { .compatible =3D "allwinner,sun8i-h3-sid", .data =3D &sun8i_h3_cfg }, - { .compatible =3D "allwinner,sun20i-d1-sid", .data =3D &sun20i_d1_cfg }, + { .compatible =3D "allwinner,sun20i-d1-sid", .data =3D &sun50i_a64_cfg }, { .compatible =3D "allwinner,sun50i-a64-sid", .data =3D &sun50i_a64_cfg }, { .compatible =3D "allwinner,sun50i-h5-sid", .data =3D &sun50i_a64_cfg }, { .compatible =3D "allwinner,sun50i-h6-sid", .data =3D &sun50i_h6_cfg }, --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5304DC61DA4 for ; Mon, 6 Feb 2023 13:44:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229999AbjBFNoN (ORCPT ); Mon, 6 Feb 2023 08:44:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47648 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229930AbjBFNoI (ORCPT ); Mon, 6 Feb 2023 08:44:08 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6340C10F4 for ; Mon, 6 Feb 2023 05:44:06 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id bk16so10382407wrb.11 for ; Mon, 06 Feb 2023 05:44:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wTC3NAL1hZxJOCcXWMuQzdITVQ+oLa3AAEmCazUtZWo=; b=QkPiV36RXZpXn/hyY4s2C9T2aTMpZXkIT0lTJ7/lXBGFHOj3a1BlALnkfuZvbuZ/zA pSm5a25VP0/NDC8cLtDrxxo7/H7JKpAMJeb81GleHau46/dro09zmLF72WQvYju/VSdT g39QpfYbmga654OteJvGttZCDr1VSpDJ5VBLSNtf3QkGMfPj9mtpi9I4QUdr5krXIYN3 ddLnY1Yoy9q/p5mQZXSy6ODBT8tQaE31y0o9cWyuy0UIcg/u3NioMjkv6SRvcvlpo5Ro p7PweOTLWHwc5H6iJtf29copYfhTDN+YHK7CTop68ipbCXVwrrL2Q+6d1uVs0g7Hndac YZxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wTC3NAL1hZxJOCcXWMuQzdITVQ+oLa3AAEmCazUtZWo=; b=sqhX4YycwIRgvBh84kI9OSjnWFPAxYJPFBxiESBV8VXBy1fseix21M6q+sfWmKGd5g DiZy6D8Y5QL8r4HdG5Q0EXp9NnARlCHH2kCTILySDT6Mj/HIrqBjNWPvgFrp8o4ltWqy YEdLYtSrOT5jC5kstr4IbcTQodQOuEWk/JKKAb11201nEfZPv04waIQyFeNdexrWRtuk l3bN1qlwJ+LSQ1uBMAkytJj5vY+UBwfPLwZVgsDt39Nk8DUYuLgNil0ngLpp29YMfEx2 B4lsvcn7AyiKH8ZEbcEq5hj+piSVKZR3E+9QYcnj/B7HZ4W7qLs06NbbhIOEIG9GRNJN 80mw== X-Gm-Message-State: AO0yUKWx2BQdNuGE+WsWFACSWjOSwTtPTXZV46Ok8gGyDE7P1fbYtf57 jiEeZiHerZ0Y6asIyRHaTfLaVg== X-Google-Smtp-Source: AK7set9O3OUe0JjsDlRUkT1jBp5ZQ3xrhAeScb3AJp2JbDyXbRwjIZIcumRRIdPT6YUgP6nL4RdN/Q== X-Received: by 2002:a5d:6d8e:0:b0:2bf:da39:5628 with SMTP id l14-20020a5d6d8e000000b002bfda395628mr21380852wrs.41.1675691044937; Mon, 06 Feb 2023 05:44:04 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:04 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, AngeloGioacchino Del Regno , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [PATCH v2 02/22] dt-bindings: nvmem: Fix qcom,qfprom compatibles enum ordering Date: Mon, 6 Feb 2023 13:43:36 +0000 Message-Id: <20230206134356.839737-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: AngeloGioacchino Del Regno Move qcom,msm8974-qfprom after qcom,msm8916-qfprom to respect alphabetical ordering. Signed-off-by: AngeloGioacchino Del Regno Reviewed-by: Krzysztof Kozlowski Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Doc= umentation/devicetree/bindings/nvmem/qcom,qfprom.yaml index 8e89b15b535f..cc39514e8c84 100644 --- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml +++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml @@ -19,8 +19,8 @@ properties: - qcom,apq8064-qfprom - qcom,apq8084-qfprom - qcom,ipq8064-qfprom - - qcom,msm8974-qfprom - qcom,msm8916-qfprom + - qcom,msm8974-qfprom - qcom,msm8996-qfprom - qcom,msm8998-qfprom - qcom,qcs404-qfprom --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F1DEC61DA4 for ; Mon, 6 Feb 2023 13:44:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230102AbjBFNoX (ORCPT ); Mon, 6 Feb 2023 08:44:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229686AbjBFNoR (ORCPT ); Mon, 6 Feb 2023 08:44:17 -0500 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C150C171B for ; Mon, 6 Feb 2023 05:44:07 -0800 (PST) Received: by mail-wr1-x429.google.com with SMTP id h16so10376082wrz.12 for ; Mon, 06 Feb 2023 05:44:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ezl79ZrFtdgcZgpVVd2789IBH+ROi3SQvtmwb7LRshQ=; b=kLbQjpp+yiFEof3kgQGIRvdAG5E4s1w7U0CwzYzfOazeD7mDTdFoIkBj1SLzWJFCOM aIrgw/bXwdXdy7WHWoFwtB6+YB+Pmlcv916+1K4wv1tn39MKp6uATJF48JXAkw96qz7U CuSO5g2O2xkEReMJ7P2lEsd1tJ4JaqcK0lOnvXv8KDhFFHKop7ayer3OIZlFt/yUbE6L 4ysc+x9lsVPRRz6Fq31CB3QrsWFNFZVbia0VRROd1j31RW5i+cL1s11fL2rve07yhbXR FHt4+mFFF1Wo/o/hxww2IxXac7oaa//g8NFdDI6BFPMv7DTNv1pnzHPTQ96e80xT0RKA USBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ezl79ZrFtdgcZgpVVd2789IBH+ROi3SQvtmwb7LRshQ=; b=CZ2ahREzkOHyox5cgzT1Bvr7fE8BAtRpg92zOIgNUR934sHX6W0gEpoGajDInT7gPM W2Dc/dQFwUSMOzaJOsQByuYvCrjqtUw9+cq1iNwiJKblNilTaWcuaqyRPfCKRqMZ0q84 Dt4lUIF3rzVut3Lb4zw9MPHO/vNn4jqDar4+VSJZYiHMemkY+BShVBbyrNfORJqGAVZh aGV+btTgeVe7YnpwIOCYkY8PVbORxxK0L+eDsbJrBv6ockOXPzXxD46QNcwd5gwaKSCA 8YhLlTF7rDInhmIm5mHMIV3ANqDkrd271xmJcE91n9XbhpAIIORH5GqUjKHy+As2kowf zO7w== X-Gm-Message-State: AO0yUKUFbaRQXuPWBaK/bISc5a4lO3fMg34K0iwxX1ZJ/yglZkcDEh8g CCxjm8pDJYQpjXtMqCjGzhdMmw== X-Google-Smtp-Source: AK7set+d3iadIuWYGv5FMnRCWDbtJkPgZQzhceYHzmr+5LpWHGTFcKvz6y58uJ5ClLQiBmJorLPI1g== X-Received: by 2002:a5d:4bc9:0:b0:2c3:e300:f5a2 with SMTP id l9-20020a5d4bc9000000b002c3e300f5a2mr6003394wrt.50.1675691046359; Mon, 06 Feb 2023 05:44:06 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:05 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Marijn Suijten , AngeloGioacchino Del Regno , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [PATCH v2 03/22] dt-bindings: nvmem: Add compatible for MSM8976 Date: Mon, 6 Feb 2023 13:43:37 +0000 Message-Id: <20230206134356.839737-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Marijn Suijten Document generic QFPROM compatibility on MSM8976. Signed-off-by: Marijn Suijten Signed-off-by: AngeloGioacchino Del Regno Reviewed-by: Krzysztof Kozlowski Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Doc= umentation/devicetree/bindings/nvmem/qcom,qfprom.yaml index cc39514e8c84..48cfec0c9ece 100644 --- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml +++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml @@ -21,6 +21,7 @@ properties: - qcom,ipq8064-qfprom - qcom,msm8916-qfprom - qcom,msm8974-qfprom + - qcom,msm8976-qfprom - qcom,msm8996-qfprom - qcom,msm8998-qfprom - qcom,qcs404-qfprom --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93963C61DA4 for ; Mon, 6 Feb 2023 13:44:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230152AbjBFNo1 (ORCPT ); Mon, 6 Feb 2023 08:44:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229974AbjBFNoT (ORCPT ); Mon, 6 Feb 2023 08:44:19 -0500 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F53E1F914 for ; Mon, 6 Feb 2023 05:44:09 -0800 (PST) Received: by mail-wr1-x42c.google.com with SMTP id h16so10376181wrz.12 for ; Mon, 06 Feb 2023 05:44:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VFwznKCeayr2WD3soqgUqkepaQfJ5RmftUu8mIvFKwU=; b=pBZ2a0GgWpOdfqVM0qZtjZLpuqEBEy3wnvrNML3WQOPCmkRI8axWjbvCPCRA8aI54I t/QW+oljN27dEotnNiReBAjDoNywMbYgi4xS9Yv9l99bAKQ19bUGyhcMphpPAc5hZ8/r gr+2IAcXvzG2wBgPTy+cs4DULno5EsCRVhHxxBLjReinhQelgS+0O0AF2cgCjTZUvrMn vGuS9b5ycff6HgOHV5k0aSIUtBZ78a1UIP+eoD2a7XxF1eevuaihGnlqF0VgH21GW27+ VG37IBR7eSbXQ5MFJf0AK3OWN8UjctXHvhV158+0jHEvgUZosmRU9bxYHwNIUTqa3QIt GjOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VFwznKCeayr2WD3soqgUqkepaQfJ5RmftUu8mIvFKwU=; b=BQrV2dS6lcSMhzrMaFYmgfIhT4i6sqCffRT3O1C2RW1tJTAnPX4uklS7V9XvIkmwQ+ 8hOa4XzCSVKv7JyhYaGbG/lpsnNfQiTLTdT0o4W7BV09PpeT3QbQRY9JOhCFcGbF+0Ox 6Df4spPUwBBobqhpmljHbFuthTt/Tcj0SyW4Hx+qIjCGZ6FSlXABeUkhzUYhVu2YeTtP Wi/xcoJR6TLkzACXDbrKYRfnxzPcqne5F+GaEjLT8/sAx+olPNWIT2vmQMyt6cjOFgCO XQxxN6VsBceytrWP3vx2p4AYTRm38eUPabYs8TxSuv6zBMzswk0ampHST9FuEhW7QvQK o/UA== X-Gm-Message-State: AO0yUKWYO9ViwWadP63eBeYtwNy1/3xGfERjhGK8hCFjxH5H5HWpd21u xOwwa93fhUCKX4atFMBjVImKnw== X-Google-Smtp-Source: AK7set+GY52KL+G87rnx+qvufVRFJD0pAhZNeWiT/1yRg+dVUpn0cCsAOfo61byS6xDEAG8NOx4CsA== X-Received: by 2002:adf:da49:0:b0:2c3:b765:76ec with SMTP id r9-20020adfda49000000b002c3b76576ecmr17436731wrl.55.1675691047928; Mon, 06 Feb 2023 05:44:07 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:07 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Richard Acayan , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [PATCH v2 04/22] dt-bindings: nvmem: qfprom: add sdm670 compatible Date: Mon, 6 Feb 2023 13:43:38 +0000 Message-Id: <20230206134356.839737-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Richard Acayan There is some configuration in SDM670's QFPROM. Add the compatible for it. Signed-off-by: Richard Acayan Reviewed-by: Krzysztof Kozlowski Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Doc= umentation/devicetree/bindings/nvmem/qcom,qfprom.yaml index 48cfec0c9ece..b7811bbb0e71 100644 --- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml +++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml @@ -28,6 +28,7 @@ properties: - qcom,sc7180-qfprom - qcom,sc7280-qfprom - qcom,sdm630-qfprom + - qcom,sdm670-qfprom - qcom,sdm845-qfprom - qcom,sm6115-qfprom - const: qcom,qfprom --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A1A3AC05027 for ; Mon, 6 Feb 2023 13:44:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230205AbjBFNob (ORCPT ); Mon, 6 Feb 2023 08:44:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48206 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230091AbjBFNoU (ORCPT ); Mon, 6 Feb 2023 08:44:20 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B36D21F4B0 for ; Mon, 6 Feb 2023 05:44:11 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id ba1so6341978wrb.5 for ; Mon, 06 Feb 2023 05:44:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mJ+Rhyub7QdZQCx+PBV6POAj+tkBwCFqMXV8WoFTj5c=; b=OChgLe4ZJ1dox+jdQUl/heeyMhsmlL8/nv1cYk4sdWdaUTz/im5P84Mvk0I+Fh4+WI j9aZMBJh1cHyQqgpElp12GILE492J+R9GSpDj3P3XzmkulnvhzwXBahZmzbEvWsWbNdr sNZ8LuEQFR63b9jlIBXITgJoaGhNY33wZrF44C3v9aOR78OkTfPiPEkjDNxkMefoV2GS scpNEezlP9hzJdVZd7d7DVS5M/i1gmCXpNYY0Y/Y2VDhAMiZvoC/BvQUi5WTHzVMJUfp sWhlCnYYD+/5XOzeYfUukNc9ckbeYj0lx23aaVRV1GtZPLQyHK5jwxpVnvEZjxjLCPH5 JhSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mJ+Rhyub7QdZQCx+PBV6POAj+tkBwCFqMXV8WoFTj5c=; b=r58vh6mN7KCrvAFnKeKI7clJETz2oLpSWj1LJwbrp8N262JvZYclKioJy8Y510AYex eN39xnxq4dfh7yINaHGdbeyLS2Ny61qS4tRw1KyHVhmUOsSht1JNdLfEPjytB52Zj8i7 bD0gXTR8u/h+zTHs33KpRXQm6/UiDe2te9APO4NUyIbUTYxedG8u/xfJeMW5sl+yk2wT 4f8SQ16RnVejEn+5TwkBDxYOrg/CeBenwioYa3EZ3F6DMcG6Itgt81TztxUDReB8tQFZ nsD2tAKe8+LOfmO4uIZSQS8SCKrEEKj6veXLGzima+BJEjM/Yo+nww/2EIfWBBw1+njq VqUQ== X-Gm-Message-State: AO0yUKXTV+y5jG4sUeE1WWOsxp5se/rQKOiTtdhmwYsUL3Q6bsEiX0/9 HNAkXUqcgORTeybQKKXsP5cXIw== X-Google-Smtp-Source: AK7set+X66bm1yfueEC08h0O6tOXAvErhlYe4QxeGIe3Jv5dgXFFC1gnbZs1EHKOU8AECwItDbna4A== X-Received: by 2002:a05:6000:185:b0:2bf:b77c:df72 with SMTP id p5-20020a056000018500b002bfb77cdf72mr16820884wrx.25.1675691049632; Mon, 06 Feb 2023 05:44:09 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:08 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [PATCH v2 05/22] dt-bindings: nvmem: Add compatible for SM8150 Date: Mon, 6 Feb 2023 13:43:39 +0000 Message-Id: <20230206134356.839737-6-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Konrad Dybcio Docuemnt the QFPROM on SM8150. Signed-off-by: Konrad Dybcio Acked-by: Krzysztof Kozlowski Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Doc= umentation/devicetree/bindings/nvmem/qcom,qfprom.yaml index b7811bbb0e71..a248033026b1 100644 --- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml +++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml @@ -31,6 +31,7 @@ properties: - qcom,sdm670-qfprom - qcom,sdm845-qfprom - qcom,sm6115-qfprom + - qcom,sm8150-qfprom - const: qcom,qfprom =20 reg: --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37084C636D6 for ; Mon, 6 Feb 2023 13:44:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230103AbjBFNoe (ORCPT ); Mon, 6 Feb 2023 08:44:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230025AbjBFNoU (ORCPT ); Mon, 6 Feb 2023 08:44:20 -0500 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6824423DB5 for ; Mon, 6 Feb 2023 05:44:12 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id z13so1232778wmp.2 for ; Mon, 06 Feb 2023 05:44:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bcQCOTgzaeE74ZCuxo4/3CNeOTAuJvVOxPA2T7IDx74=; b=Pfgt8ch43jiNNCklv4ad/yczZ5V7HMAIs19a0WwmzBW9S2RPMkHLbMK0vGhUyEj4iH MfkYZ479mOjU6cn8U51zyhr0h4rLVr4vNKIAmjFOOo2fBeQCrF0hWxhjURJhQSjGvOU1 AaZobTc9or0EhwGrffaOy4QUKnHKFW5AL3e4qavBkEIRhD+/hLcWOXIQdBEXGOBaRl2Z titS6s7kqhydT50R3KntOop8azQjrYogj/V9+KSitD/rLVt4p/X23YELkTjXuTcGWCB9 q5vrv9N53J6qaS8jB/Tx3XDdfWQpnrHmjcbkUXbwWmlOvAZZzzxnChDF5YBBf4yX3zjT Cnew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bcQCOTgzaeE74ZCuxo4/3CNeOTAuJvVOxPA2T7IDx74=; b=gL0o04HjDsJIY9CuZNYxrRjx0W0ya3M1qUWS2KdGV2nR8buUNV1//tC1i8bfsAMMg4 F34ml46JJ0k2Xbej2atE07r2UZBQOT6OIymgxsHMmNlno9JRXwimJgUyTF3Zc0TH5nyl ubslS0uh4T0G9JSMlvWoGsspUPPGruv4dYqJXzLVREUSOD5nNHEAs9umAW1yOTsAKuhN 5y+QIg57rG9XK/9JmWfyU15M3eX4y3enLTEeAuYIs+mG1MinCZJpVlepDW0rEUYKDb5L l8fJXuz1bhGXJ1SXRO+Q+qKjTzF/riVaZqGQi6Gpavi8ikk88JoKRD8JutGlrvdM0ZHG Zr9Q== X-Gm-Message-State: AO0yUKWyd0bCtRfHLSTY0wSu+H4HTttad246jUjmz1pb/pKDfrIFTslf XFul9f8gcBO9qXJlwE7wvdiV+g== X-Google-Smtp-Source: AK7set8RZMqp4z50un/8cdVYpt/C4OGBbCWxw7yAwgAmYfJ6JGAyT8YJVq72OnnGJyjrMPF5kWDNSg== X-Received: by 2002:a05:600c:3c88:b0:3dc:1f90:35b with SMTP id bg8-20020a05600c3c8800b003dc1f90035bmr1245689wmb.34.1675691050947; Mon, 06 Feb 2023 05:44:10 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:10 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [PATCH v2 06/22] dt-bindings: nvmem: Add compatible for SM8250 Date: Mon, 6 Feb 2023 13:43:40 +0000 Message-Id: <20230206134356.839737-7-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Konrad Dybcio Docuemnt the QFPROM on SM8250. Signed-off-by: Konrad Dybcio Acked-by: Krzysztof Kozlowski Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Doc= umentation/devicetree/bindings/nvmem/qcom,qfprom.yaml index a248033026b1..9ddf3cef9e84 100644 --- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml +++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml @@ -32,6 +32,7 @@ properties: - qcom,sdm845-qfprom - qcom,sm6115-qfprom - qcom,sm8150-qfprom + - qcom,sm8250-qfprom - const: qcom,qfprom =20 reg: --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1C6BC61DA4 for ; Mon, 6 Feb 2023 13:44:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230075AbjBFNoj (ORCPT ); Mon, 6 Feb 2023 08:44:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230151AbjBFNo1 (ORCPT ); Mon, 6 Feb 2023 08:44:27 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E84723C44 for ; Mon, 6 Feb 2023 05:44:14 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id g6so2422177wrv.1 for ; Mon, 06 Feb 2023 05:44:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kmitWArQk6CIBydogs7WRFxwX5Xsu7yBBRQ1KBB+uN0=; b=AeZps2uD91V2HVw7gdWzFJ5/F0RvUp5Vz24SBa6MH6nGcQPf6oCLMEaY0LBb5SrQ78 V0cj6r3cKC8822Vproi7kjo4AFN9MDMrR4IzH+RRRmKsOgZK9IsGVRdbJNIvyOou82sI DEKZ3TiAdkWtyYVef6VmyQ0eUsr2aYqwETkXJwK/pgnp8N6WgaKnLgIRmHVm6X+zDOg9 d19YjAy8u7rzkDyriPYR7kTNSoH4BE2wmJW7JnruPK19BkkYSMO6wgKD9G2v1k5KOTqc VWSP13sqtdLh7unQN5HZa0+pFjKlDrS8Ywk2Vq7GxFQ3MZtf+h1QPGlTvrA0qOPxa8l2 vRvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kmitWArQk6CIBydogs7WRFxwX5Xsu7yBBRQ1KBB+uN0=; b=dSmgRU+vBheVd0klCaDI+tENGpRsakvENyEDLG1wV5Sknv8q7dT+V+JrDcpptP906k kpJbLI1gfYgolaczpFuF0dZ5fNmet/4hEid60L7K/r8Y+n+hQFua/Zel/leRAlPE4VTc zGqEqRf2s6oszFm4/h6Fyjbkd1KNHaMjGLeRtFp+Cajkz4exaDYDrxIbqhNtd+yISTri 1VTvchHzOXf7jk+A5cmr7cDIXe6A/tyfkHBH9Wjhzsbd6rDFiuxO/xYkfO1kYeMMYLua 1MYo/1+La3dipdozgs2wFyGNtke4/ZowPj1dPU/tHX1aDLQt1PGcDSzHwICxH9fVnHix xQfg== X-Gm-Message-State: AO0yUKUru2nVKmRj0Gf0b5vEb/+45GRDRJdYEU8PD2G7LVhQRn44J7mi evBvz0qb7zkNtcrkfMufsRT56w== X-Google-Smtp-Source: AK7set9BI8RYHs5qer7e+3+1sosIzp+aDOxstBhy0zZRkDox+5Oj8NU+iLwRWdyh9I/Ij98+Ve2YFQ== X-Received: by 2002:adf:e4cc:0:b0:2c3:f026:9082 with SMTP id v12-20020adfe4cc000000b002c3f0269082mr664229wrm.35.1675691052645; Mon, 06 Feb 2023 05:44:12 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:11 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, "Russell King (Oracle)" , Srinivas Kandagatla Subject: [PATCH v2 07/22] nvmem: core: remove spurious white space Date: Mon, 6 Feb 2023 13:43:41 +0000 Message-Id: <20230206134356.839737-8-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Russell King (Oracle)" Remove a spurious white space in for the ida_alloc() call. Signed-off-by: Russell King (Oracle) Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 34ee9d36ee7b..233c6c275031 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -764,7 +764,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_= config *config) if (!nvmem) return ERR_PTR(-ENOMEM); =20 - rval =3D ida_alloc(&nvmem_ida, GFP_KERNEL); + rval =3D ida_alloc(&nvmem_ida, GFP_KERNEL); if (rval < 0) { kfree(nvmem); return ERR_PTR(rval); --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC643C61DA4 for ; Mon, 6 Feb 2023 13:44:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230013AbjBFNol (ORCPT ); Mon, 6 Feb 2023 08:44:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230157AbjBFNo2 (ORCPT ); Mon, 6 Feb 2023 08:44:28 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B6561F4A1 for ; Mon, 6 Feb 2023 05:44:14 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id bk16so10382906wrb.11 for ; Mon, 06 Feb 2023 05:44:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Y+cl5Ym56wJ7OQnEfR1Yodsc3crTZ07l528z+P6rSd8=; b=hNyOPh9k+ioWrpArqXwn8leHfx0tRugeEFdqswjt4vumT7yAguVtyBt9GOnbQZzWA/ W7f6EWWXHrga24+/tVNEwNznt+n9DuY3MwysnUDe4ut0jK8LvnpGN6ehUP82t5tLXaIC ZzqclXU71IRzD23CEo45WhpKwfK2GPLbChIkiH9RRkGztxZ9ASTue+WCKOnQ8Ab7d6a7 0uatxjl49iHi6I6Emo6zPrri9QW9KUWpyKUvGB/vwLP5gKZraTpbggBi3cp0xGxOo5Rl syRo4bdV012Ahjf6fGIOOViFPnKUKnY1JLeqN+IZt4FUqAbN1BVckkHb+2ZmPYdiCWlx 1UkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Y+cl5Ym56wJ7OQnEfR1Yodsc3crTZ07l528z+P6rSd8=; b=k0/cVDxd7h7yV+IivFdyWdZAjHfxGP/eDtjCaEBCs6iP7RYk2+fbo72zLhz/nHn9W0 tLJ6YULGl01RtsnpJn72Lj8X6r3zDHRUmi2/jGrZOVrTCvTkp6/Ek/2Kk7NNPbhtR6ww NCrkVoKIePaAlzmqdDeE3wo0PadnxCq6G84BsrfYw55/G4Ha8KaB8z6/FnBY5lvTEmUc vmRs7d9fEBFg6raVTlcLVRAEV85YAI5aHhZBvPaIR2Lo5P6JRR55iw8X9rV7eQ1Sc1RS yHWq9wAP/oOzH/tta7Ghd5cFNG9gt9d4xI5EHRhh97UENX9hvfGna/pA95IqRzjRKS1b 6Hxg== X-Gm-Message-State: AO0yUKUmmTBgkk7fyELrDNJJDAh/U9Ibq7yVL/YfavyKMnXhl0FKKOwD XrQhkEW3zzcxKoRe+UzZtV1h9w== X-Google-Smtp-Source: AK7set9LLx/YHmimLRa9yBqS5L/CBBE9ByHi5JaNSBTWDHVl8XCIG5VLYYxagh/5cH/Xn2gPnsYbug== X-Received: by 2002:adf:9c8e:0:b0:2c1:28dc:1561 with SMTP id d14-20020adf9c8e000000b002c128dc1561mr16263048wre.44.1675691054594; Mon, 06 Feb 2023 05:44:14 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:13 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Andrew Lunn , Jakub Kicinski , Srinivas Kandagatla Subject: [PATCH v2 08/22] net: add helper eth_addr_add() Date: Mon, 6 Feb 2023 13:43:42 +0000 Message-Id: <20230206134356.839737-9-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Add a helper to add an offset to a ethernet address. This comes in handy if you have a base ethernet address for multiple interfaces. Signed-off-by: Michael Walle Reviewed-by: Andrew Lunn Acked-by: Jakub Kicinski Signed-off-by: Srinivas Kandagatla --- include/linux/etherdevice.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index a541f0c4f146..224645f17c33 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h @@ -507,6 +507,20 @@ static inline void eth_addr_inc(u8 *addr) u64_to_ether_addr(u, addr); } =20 +/** + * eth_addr_add() - Add (or subtract) an offset to/from the given MAC addr= ess. + * + * @offset: Offset to add. + * @addr: Pointer to a six-byte array containing Ethernet address to incre= ment. + */ +static inline void eth_addr_add(u8 *addr, long offset) +{ + u64 u =3D ether_addr_to_u64(addr); + + u +=3D offset; + u64_to_ether_addr(u, addr); +} + /** * is_etherdev_addr - Tell if given Ethernet address belongs to the device. * @dev: Pointer to a device structure --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CEBE1C05027 for ; Mon, 6 Feb 2023 13:44:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229953AbjBFNov (ORCPT ); Mon, 6 Feb 2023 08:44:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48758 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230214AbjBFNoc (ORCPT ); Mon, 6 Feb 2023 08:44:32 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FA2E241FA for ; Mon, 6 Feb 2023 05:44:17 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id n28-20020a05600c3b9c00b003ddca7a2bcbso8825666wms.3 for ; Mon, 06 Feb 2023 05:44:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bZk++rAGilP0se2vyyYc9G9oc9KF7qnie14AIpwjJ4k=; b=PVvD4x0O5Q22hJvMzp2jlbWAqCDih5j+vPpSY5gW+tkccS3qK4OnDzcR3RlL/J5DZQ D6pee7D9WPVkNiVrNY68T8WMhFPbpwn+KlZKzIxWtL8PuIPBc4iHLr2OeKhAUSPxQxIF eLLebwJvuhXWsIkFAF+lv1fzzEkoGkL0giCIwFZfKXM+1M0yGj9+HfgO+9HoLC/8c2rh uDCpvXzWfmIVIAO0cW6lFd033DRLVuKmMhafqk55koxKDRqAyd+KnkN2i+PUZGCLz4QV nEkeT1J6x8oeZxx07EnqglMKb0D4BwV+T4lMA62xJY2h4KUMg9kWtZ+wMjSZaWhqmPZN bnmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bZk++rAGilP0se2vyyYc9G9oc9KF7qnie14AIpwjJ4k=; b=n4Z/AQz/gm4FX9NZJv1nFy+fJKUshRJcqTkM9w+NjhMjO9ayssG21EvGPtxxKCSNyN KEZOUmIxQMIXPNuUTACKyHqMi4t3iXjP6Dvq6C4UBQMJy2XCwTHfWR11umqty+gFcmTJ eBp0XRnnlpMF7KLidQTM9NLOv6Y++8SOov8s/tMSl2HuHCEXl9j0DAmUleKF41t/gGts scypovnIO1LM2LwZqrrz26rHbVujL60bo/z59BB9KYYYB1V89eTgyaKMF8i/qGQtnS2P 5XzHrTeG8zyBJC8i112r9Zk3LxGYfZDK4FGGP9DAympEoYGzkftKeQES/VOKDBa/2A4S hx/Q== X-Gm-Message-State: AO0yUKXS8xR1rZlodCCMIgLGGJ0qWldxU5pZGR33yDsZ3oCrOp+tpfQT recvMl12bULFZbbmlvur+1kED7/fvI6cYE1j X-Google-Smtp-Source: AK7set/jX3/LZO9deONWBV+4EHtI2+16PUSS77Hr/BKRnELJynZeaYF4awQBxnTrweYtwTOqEXgp6Q== X-Received: by 2002:a7b:c00d:0:b0:3da:f5d1:c677 with SMTP id c13-20020a7bc00d000000b003daf5d1c677mr19585070wmb.35.1675691056034; Mon, 06 Feb 2023 05:44:16 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:15 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Rob Herring , Srinivas Kandagatla Subject: [PATCH v2 09/22] of: base: add of_parse_phandle_with_optional_args() Date: Mon, 6 Feb 2023 13:43:43 +0000 Message-Id: <20230206134356.839737-10-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Add a new variant of the of_parse_phandle_with_args() which treats the cells name as optional. If it's missing, it is assumed that the phandle has no arguments. Up until now, a nvmem node didn't have any arguments, so all the device trees haven't any '#*-cells' property. But there is a need for an additional argument for the phandle, for which we need a '#*-cells' property. Therefore, we need to support nvmem nodes with and without this property. Signed-off-by: Michael Walle Reviewed-by: Rob Herring Signed-off-by: Srinivas Kandagatla --- include/linux/of.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/include/linux/of.h b/include/linux/of.h index 8b9f94386dc3..98c252d2d851 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -1008,6 +1008,31 @@ static inline int of_parse_phandle_with_fixed_args(c= onst struct device_node *np, index, out_args); } =20 +/** + * of_parse_phandle_with_optional_args() - Find a node pointed by phandle = in a list + * @np: pointer to a device tree node containing a list + * @list_name: property name that contains a list + * @cells_name: property name that specifies phandles' arguments count + * @index: index of a phandle to parse out + * @out_args: optional pointer to output arguments structure (will be fill= ed) + * + * Same as of_parse_phandle_with_args() except that if the cells_name prop= erty + * is not found, cell_count of 0 is assumed. + * + * This is used to useful, if you have a phandle which didn't have argumen= ts + * before and thus doesn't have a '#*-cells' property but is now migrated = to + * having arguments while retaining backwards compatibility. + */ +static inline int of_parse_phandle_with_optional_args(const struct device_= node *np, + const char *list_name, + const char *cells_name, + int index, + struct of_phandle_args *out_args) +{ + return __of_parse_phandle_with_args(np, list_name, cells_name, + 0, index, out_args); +} + /** * of_property_count_u8_elems - Count the number of u8 elements in a prope= rty * --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8BD8EC636D6 for ; Mon, 6 Feb 2023 13:45:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230374AbjBFNpE (ORCPT ); Mon, 6 Feb 2023 08:45:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230236AbjBFNoi (ORCPT ); Mon, 6 Feb 2023 08:44:38 -0500 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE6D31F499 for ; Mon, 6 Feb 2023 05:44:18 -0800 (PST) Received: by mail-wr1-x434.google.com with SMTP id k13so2992106wrh.8 for ; Mon, 06 Feb 2023 05:44:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IuNPxuqkDxRzNPOYh07wBpNquE5qEOaWbzlq0xSbE+Y=; b=xCwAEYnbhFTOFJsOY4rd0ikFrJ8/HuPSMr83uhELgmmzntGM2wHu6X6/mGXgHUWK5k qLW9lyOz09jgQy/4TZ5olQJQIeiSBo7xKq9bfnArXcORqisHukVxGPTc1CG60DWbZT7p mw1wJLxssUCyq4NjbgjuVI9JL3uUB7lOb9U0PK+j0DY0KznbgiIMRTSHYxp41is0/KOi RoxqIYJsvdA1V+rK48MlXaBbMx404Dmp0XzpKvBM7GpdtG/+yn58v2ADuRzUX4CuB+kj SbG/Hsc2+1E3LJm+sQ1Cs+iEzK+XucIU6+5yVzV/INrjlIoLJ5oriWX+Vu83QxkPanUE VIKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IuNPxuqkDxRzNPOYh07wBpNquE5qEOaWbzlq0xSbE+Y=; b=utdmAGXP+xWkbQ1eGtDjBcMyqcKJjZspGxcVCtJ8IjM6+qkHblNUEukNFEt2mCTq79 iXLHFTGlkLlpwky8O9E+fVVlWiHWB8ZIU0FsNbx21y3LjIG2zAyWJwMNfZf5b2ZnT4R5 MLQNOIE2EwB0+LKf0P1NcPGfKlM0P5aDYBPrwMffOJ0YMqdik7rnVX82lGyTKOvoRHkc EZ3ETUbsd281lUTk6rLzxgV6N3yQSGAO+i4ns6wuCo3f9WjJC4Us1oF7A9F9sdSdZmsh QzN35kH8IsuEXE2gvGjLLKAHGGBB064lNdmGVMl2leFfEq+ZilZVXOUkS/PyxGwi79Bs 3qSw== X-Gm-Message-State: AO0yUKWwLaSDcDfjHDXh1An7NscgO8GmiJA8bNUw9bBRe4rlOlvtvQnZ DjA39xwCNXsfVQ7SjG23tIFxbg== X-Google-Smtp-Source: AK7set/m5OhVm+B+L023m1F7Td/8NNF7aBp2ECEuvxqiTPOTWm5oNFpcrGyLd79PzuxD69Z+Syl6YQ== X-Received: by 2002:adf:f7c7:0:b0:2c3:ea78:35be with SMTP id a7-20020adff7c7000000b002c3ea7835bemr1937184wrq.19.1675691057299; Mon, 06 Feb 2023 05:44:17 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:16 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Miquel Raynal , Rob Herring , Srinivas Kandagatla Subject: [PATCH v2 10/22] of: property: make #.*-cells optional for simple props Date: Mon, 6 Feb 2023 13:43:44 +0000 Message-Id: <20230206134356.839737-11-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Sometimes, future bindings for phandles will get additional arguments. Thus the target node of the phandle will need a new #.*-cells property. To be backwards compatible, this needs to be optional. Prepare the DEFINE_SIMPLE_PROPS() to handle the cells name as optional. Signed-off-by: Michael Walle Tested-by: Miquel Raynal Reviewed-by: Rob Herring Signed-off-by: Srinivas Kandagatla --- drivers/of/property.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 134cfc980b70..989e692e0319 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1202,8 +1202,8 @@ static struct device_node *parse_prop_cells(struct de= vice_node *np, if (strcmp(prop_name, list_name)) return NULL; =20 - if (of_parse_phandle_with_args(np, list_name, cells_name, index, - &sup_args)) + if (__of_parse_phandle_with_args(np, list_name, cells_name, 0, index, + &sup_args)) return NULL; =20 return sup_args.np; --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 993DAC61DA4 for ; Mon, 6 Feb 2023 13:45:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230260AbjBFNpC (ORCPT ); Mon, 6 Feb 2023 08:45:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230060AbjBFNoi (ORCPT ); Mon, 6 Feb 2023 08:44:38 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 568C53AAE for ; Mon, 6 Feb 2023 05:44:19 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id ba1so6342436wrb.5 for ; Mon, 06 Feb 2023 05:44:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hdDsTum1L187tCV5H314M2VOHnznVA4j1l+89UWeiF8=; b=jlaG85rbsc+NfSU7vQXeKD4rz1YWj1z7QurcuDklbSn4iQqoVJcVh8Z0G2DOpXoK8a ZaeM6DJ53qqEjRrgM5ckFTBB3nQoYb7MtkfH4z7cqol+ovWLuskZ96a2W2TKdP0TpxF2 CXzG8F3cIfHc01ctUuCjVmLrQt3/pa5+aoTc7pxRuIHivWmzT6mgdzZWTsI4hvktMwlf WkXVVjaW5aO30iBSL9WBs7xPIvAqqJeVW8tqi6tU9mCdWFLjZ8qMZI1/QlKXLJjsHGFV CXA11jSUT/A7Loj93ewe4HPlAes9SBKB8yp97j9w9k9APQjgwp4ntSw4gpisoJ0K1OyY PHwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hdDsTum1L187tCV5H314M2VOHnznVA4j1l+89UWeiF8=; b=vhABusxKECB+cclUoJvHQTeDavlekPa5jEAT4U6eBqFiFOvkpkweaGQqcF7bNwH2k4 0zSjZF7vQAkN0cB8li+L70vvy1fvRjei4mocQG2dQJMQqW3lo95nCHjDAzUFzer5+iRZ F051t0PftMo/9o3dS3ouDs3bprXaxcTMs23dmx7XLlMGlUB7oC0CZct+U+eoEdQn5EWw xcARP5qwJxjEinwjoDuAvnltbubB+ftzm5v67ZKW7PzsGnH9FPWBbgouc/HBIDr+ycc+ N4JnmrMdxs6Pp+D3N6rb23B13LoGNWbjBfLFVYufXyDH0s1MnrY30dYj5+Yadr+27yuV Zbww== X-Gm-Message-State: AO0yUKW/1YKc+h5iKBlLMhVt2ezMACDWvNKyUv1lPhwJMmQUSe9KhMlu biGjPA4oUkeYutxCRL2DoBDTUw== X-Google-Smtp-Source: AK7set/07vHVzpXkrlKmI3EtIVrqvcUfYGW8vso8my/g5FNaD3hKpp/QAHoGet2Q+IT03TtWgIxQmQ== X-Received: by 2002:a5d:55ca:0:b0:2c3:e0a0:94f with SMTP id i10-20020a5d55ca000000b002c3e0a0094fmr6496593wrw.37.1675691058688; Mon, 06 Feb 2023 05:44:18 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:17 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Miquel Raynal , Rob Herring , Srinivas Kandagatla Subject: [PATCH v2 11/22] of: property: add #nvmem-cell-cells property Date: Mon, 6 Feb 2023 13:43:45 +0000 Message-Id: <20230206134356.839737-12-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Bindings describe the new '#nvmem-cell-cells' property. Now that the arguments count property is optional, we just add this property to the nvmem-cells. Signed-off-by: Michael Walle Tested-by: Miquel Raynal Reviewed-by: Rob Herring Signed-off-by: Srinivas Kandagatla --- drivers/of/property.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 989e692e0319..95b838185b2f 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1307,7 +1307,7 @@ DEFINE_SIMPLE_PROP(dmas, "dmas", "#dma-cells") DEFINE_SIMPLE_PROP(power_domains, "power-domains", "#power-domain-cells") DEFINE_SIMPLE_PROP(hwlocks, "hwlocks", "#hwlock-cells") DEFINE_SIMPLE_PROP(extcon, "extcon", NULL) -DEFINE_SIMPLE_PROP(nvmem_cells, "nvmem-cells", NULL) +DEFINE_SIMPLE_PROP(nvmem_cells, "nvmem-cells", "#nvmem-cell-cells") DEFINE_SIMPLE_PROP(phys, "phys", "#phy-cells") DEFINE_SIMPLE_PROP(wakeup_parent, "wakeup-parent", NULL) DEFINE_SIMPLE_PROP(pinctrl0, "pinctrl-0", NULL) --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5705C61DA4 for ; Mon, 6 Feb 2023 13:45:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230209AbjBFNpN (ORCPT ); Mon, 6 Feb 2023 08:45:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229954AbjBFNor (ORCPT ); Mon, 6 Feb 2023 08:44:47 -0500 Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AC9E25E07 for ; Mon, 6 Feb 2023 05:44:22 -0800 (PST) Received: by mail-wr1-x42f.google.com with SMTP id k13so2992251wrh.8 for ; Mon, 06 Feb 2023 05:44:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JXDBpITirucrehQ9ezP0AqqR7r7iazhcEnMQ2xV42Tk=; b=wq3blDGd1bUs9sK+AAPvVDcy+8JtO2naQMAbZD6mif932suZCcwkz32DsTve5mvqWS 4fAGzQjIxWz/2oF5LIiYLwy/aL55k7TFoFqkK68oqXos5HHwtUGoh+uzr63KRQ0/qmYA AOMaQfBXk/UqPaj+2QTELexn4h40lKbgN86qHz4XIUYbmKaKZy2X3p/xi8NDC3X9bAWE CLUnFuyT46lBvIUu0ZZ3beHp4ae8SU2eV/ODCamyxhV5nqirXEgp84+vOCalr9DGaG4i k+5WtAhJKZFH7B6YuihAQQczSP1Lm0+8lCL0s3i2gbT6LVRJI39J9WKRmKBfP3PuSM/O zE7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JXDBpITirucrehQ9ezP0AqqR7r7iazhcEnMQ2xV42Tk=; b=VQsHaVSXf9zGFMcOqxR2uqxCbC/+hicW4Ef2yOGwynidhlcB+eDgunHmiBCGeC69VA wfJSmJQE8YwOXVwuuuqSrA83F+YTnkSeSlLKnvIe+396KlSqDfpHVylz9NRc6CVPglFY pAm+omwkRepfsK7LhrW5mMwM1mMj5WlsFxeK/INcP4EJwF8nukOgtcZYc5rEw8SqtV2D 1ialnnaYRGdbY6sAF14KwaDh4mSf/Oh3flHtcUKro2+rr+Jmfnp0nYXYwHbCBGc9rCxl wgaAwqC9DPTLHKx2H4gf3/T21zKSx2tvCTSluoel0JDYx2qoVKeui64rPZPCCFzOaHLZ J57w== X-Gm-Message-State: AO0yUKUSuP0Ev28RHXc5cZ31JMN8GL529VfGuzKowx3pQEaWXXOpnZIU lPvxJtLR7Je03BA1ShXRzwaC0Zi+zCTC+Gig X-Google-Smtp-Source: AK7set+YwBORonJ5xzbqXpR3mqnMhETCjT4RNaC8EQIlwhjasFUwUtn/3oKIvt94IT+CV1SJ+7A4Mw== X-Received: by 2002:adf:eb10:0:b0:2c3:ef94:12e4 with SMTP id s16-20020adfeb10000000b002c3ef9412e4mr1395097wrn.10.1675691060429; Mon, 06 Feb 2023 05:44:20 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:19 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [PATCH v2 12/22] nvmem: core: add an index parameter to the cell Date: Mon, 6 Feb 2023 13:43:46 +0000 Message-Id: <20230206134356.839737-13-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Sometimes a cell can represend multiple values. For example, a base ethernet address stored in the NVMEM can be expanded into multiple discreet ones by adding an offset. For this use case, introduce an index parameter which is then used to distiguish between values. This parameter will then be passed to the post process hook which can then use it to create different values during reading. At the moment, there is only support for the device tree path. You can add the index to the phandle, e.g. &net { nvmem-cells =3D <&base_mac_address 2>; nvmem-cell-names =3D "mac-address"; }; &nvmem_provider { base_mac_address: base-mac-address@0 { #nvmem-cell-cells =3D <1>; reg =3D <0 6>; }; }; Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 37 ++++++++++++++++++++++++---------- drivers/nvmem/imx-ocotp.c | 4 ++-- include/linux/nvmem-provider.h | 4 ++-- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 233c6c275031..30567dd51fba 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -60,6 +60,7 @@ struct nvmem_cell_entry { struct nvmem_cell { struct nvmem_cell_entry *entry; const char *id; + int index; }; =20 static DEFINE_MUTEX(nvmem_mutex); @@ -1122,7 +1123,8 @@ struct nvmem_device *devm_nvmem_device_get(struct dev= ice *dev, const char *id) } EXPORT_SYMBOL_GPL(devm_nvmem_device_get); =20 -static struct nvmem_cell *nvmem_create_cell(struct nvmem_cell_entry *entry= , const char *id) +static struct nvmem_cell *nvmem_create_cell(struct nvmem_cell_entry *entry, + const char *id, int index) { struct nvmem_cell *cell; const char *name =3D NULL; @@ -1141,6 +1143,7 @@ static struct nvmem_cell *nvmem_create_cell(struct nv= mem_cell_entry *entry, cons =20 cell->id =3D name; cell->entry =3D entry; + cell->index =3D index; =20 return cell; } @@ -1179,7 +1182,7 @@ nvmem_cell_get_from_lookup(struct device *dev, const = char *con_id) __nvmem_device_put(nvmem); cell =3D ERR_PTR(-ENOENT); } else { - cell =3D nvmem_create_cell(cell_entry, con_id); + cell =3D nvmem_create_cell(cell_entry, con_id, 0); if (IS_ERR(cell)) __nvmem_device_put(nvmem); } @@ -1227,15 +1230,27 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_= node *np, const char *id) struct nvmem_device *nvmem; struct nvmem_cell_entry *cell_entry; struct nvmem_cell *cell; + struct of_phandle_args cell_spec; int index =3D 0; + int cell_index =3D 0; + int ret; =20 /* if cell name exists, find index to the name */ if (id) index =3D of_property_match_string(np, "nvmem-cell-names", id); =20 - cell_np =3D of_parse_phandle(np, "nvmem-cells", index); - if (!cell_np) - return ERR_PTR(-ENOENT); + ret =3D of_parse_phandle_with_optional_args(np, "nvmem-cells", + "#nvmem-cell-cells", + index, &cell_spec); + if (ret) + return ERR_PTR(ret); + + if (cell_spec.args_count > 1) + return ERR_PTR(-EINVAL); + + cell_np =3D cell_spec.np; + if (cell_spec.args_count) + cell_index =3D cell_spec.args[0]; =20 nvmem_np =3D of_get_parent(cell_np); if (!nvmem_np) { @@ -1257,7 +1272,7 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_no= de *np, const char *id) return ERR_PTR(-ENOENT); } =20 - cell =3D nvmem_create_cell(cell_entry, id); + cell =3D nvmem_create_cell(cell_entry, id, cell_index); if (IS_ERR(cell)) __nvmem_device_put(nvmem); =20 @@ -1410,8 +1425,8 @@ static void nvmem_shift_read_buffer_in_place(struct n= vmem_cell_entry *cell, void } =20 static int __nvmem_cell_read(struct nvmem_device *nvmem, - struct nvmem_cell_entry *cell, - void *buf, size_t *len, const char *id) + struct nvmem_cell_entry *cell, + void *buf, size_t *len, const char *id, int index) { int rc; =20 @@ -1425,7 +1440,7 @@ static int __nvmem_cell_read(struct nvmem_device *nvm= em, nvmem_shift_read_buffer_in_place(cell, buf); =20 if (nvmem->cell_post_process) { - rc =3D nvmem->cell_post_process(nvmem->priv, id, + rc =3D nvmem->cell_post_process(nvmem->priv, id, index, cell->offset, buf, cell->bytes); if (rc) return rc; @@ -1460,7 +1475,7 @@ void *nvmem_cell_read(struct nvmem_cell *cell, size_t= *len) if (!buf) return ERR_PTR(-ENOMEM); =20 - rc =3D __nvmem_cell_read(nvmem, cell->entry, buf, len, cell->id); + rc =3D __nvmem_cell_read(nvmem, cell->entry, buf, len, cell->id, cell->in= dex); if (rc) { kfree(buf); return ERR_PTR(rc); @@ -1773,7 +1788,7 @@ ssize_t nvmem_device_cell_read(struct nvmem_device *n= vmem, if (rc) return rc; =20 - rc =3D __nvmem_cell_read(nvmem, &cell, buf, &len, NULL); + rc =3D __nvmem_cell_read(nvmem, &cell, buf, &len, NULL, 0); if (rc) return rc; =20 diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c index 14284e866f26..e9b52ecb3f72 100644 --- a/drivers/nvmem/imx-ocotp.c +++ b/drivers/nvmem/imx-ocotp.c @@ -222,8 +222,8 @@ static int imx_ocotp_read(void *context, unsigned int o= ffset, return ret; } =20 -static int imx_ocotp_cell_pp(void *context, const char *id, unsigned int o= ffset, - void *data, size_t bytes) +static int imx_ocotp_cell_pp(void *context, const char *id, int index, + unsigned int offset, void *data, size_t bytes) { struct ocotp_priv *priv =3D context; =20 diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index bb15c9234e21..55181d837969 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -20,8 +20,8 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned int = offset, typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset, void *val, size_t bytes); /* used for vendor specific post processing of cell data */ -typedef int (*nvmem_cell_post_process_t)(void *priv, const char *id, unsig= ned int offset, - void *buf, size_t bytes); +typedef int (*nvmem_cell_post_process_t)(void *priv, const char *id, int i= ndex, + unsigned int offset, void *buf, size_t bytes); =20 enum nvmem_type { NVMEM_TYPE_UNKNOWN =3D 0, --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE0FEC61DA4 for ; Mon, 6 Feb 2023 13:45:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230298AbjBFNpQ (ORCPT ); Mon, 6 Feb 2023 08:45:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230210AbjBFNou (ORCPT ); Mon, 6 Feb 2023 08:44:50 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E09CC25968 for ; Mon, 6 Feb 2023 05:44:24 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id o18so10415756wrj.3 for ; Mon, 06 Feb 2023 05:44:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nylkfILgKvlTwcBcSR4ZJEvoZ9v4elWH8Nq2L7mAsOo=; b=H9jm3OlRYRGTzZCk5lmT7eN8Dp4V/B3kpKpx/RPRsXcSBQgmYNib53ZjvCpH7zbBI0 xru8bSXstX1DMK+FGJ/gVo4VN3gY7AByQdpzdDUBg/X8PUUa3mWYV1vVad0lSVyeSYiP IRA2JRuCFJgagBpaPorgdl7HA1gfp//Zd0Mxsj39fFQm2kenSqSXnK8dDvqajpUDts1p Be6yg1EtZtyotzx/0sLSdFhz/hGy2GwY/ylHVaUZkooY4xMLjGypBrraGa5QIya9/Jx0 rak50zCHrRDUOVpI4dsAGxtpQ31X5ibG9kYmz+hhmypKv1y0vxoOOzqYhMYQ+l/WcH1H YOlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nylkfILgKvlTwcBcSR4ZJEvoZ9v4elWH8Nq2L7mAsOo=; b=J8QbkLqiRbs2g8FrAtVtr2i/hCgB3OwWFN1CIgC9DeslJeqjqsHucilgBP0EvoPThp 9+85oaOK2w5NtGQEhSgwMOGZFcpTOxaeMc80vaLjLTJJLeY04eJkav9vuorz8d9HAWDJ MWzTXxLumRI0tt/geaJEcYQkJCkFAtyATkXuLXi+Fn2Aqc85OP1ClfJps8ueiKKweCDs BR9BzA8DyLI3uSxUaHnpMHdufWIxyhFI64SrZX4aBUxKB93rvJBWC+AwYofXuhrqkEwE JwISE/zLRfAsruYXxmUFjpwz2Nk1jEratBsEuWrxHRVQ4ezEMnguYsT3+iFLv0YC9esN mUyg== X-Gm-Message-State: AO0yUKVZuV8b+wNDfxKWnaaY91YVKCtyC8ibugW0GYiEBs499XTHweQ9 vPVui3OrMK3uasn0+DPQ1FZ/vw== X-Google-Smtp-Source: AK7set/eLRoPVamcMK9GHV0XwfA2TzVYpn7HeUW2QmFhOFNzizAv6sQQcLjlxCkzfe0inbNZJDQ0KA== X-Received: by 2002:adf:c70b:0:b0:2bf:b5c0:f157 with SMTP id k11-20020adfc70b000000b002bfb5c0f157mr18499613wrg.39.1675691062482; Mon, 06 Feb 2023 05:44:22 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:21 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [PATCH v2 13/22] nvmem: core: move struct nvmem_cell_info to nvmem-provider.h Date: Mon, 6 Feb 2023 13:43:47 +0000 Message-Id: <20230206134356.839737-14-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle struct nvmem_cell_info is used to describe a cell. Thus this should really be in the nvmem-provider's header. There are two (unused) nvmem access methods which use the nvmem_cell_info to describe the cell to be accesses. One can argue, that they will create a cell before accessing, thus they are both a provider and a consumer. struct nvmem_cell_info will get used more and more by nvmem-providers, don't force them to also include the consumer header, although they are not. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- include/linux/nvmem-consumer.h | 10 +--------- include/linux/nvmem-provider.h | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/include/linux/nvmem-consumer.h b/include/linux/nvmem-consumer.h index 980f9c9ac0bc..1f62f7ba71ca 100644 --- a/include/linux/nvmem-consumer.h +++ b/include/linux/nvmem-consumer.h @@ -18,15 +18,7 @@ struct device_node; /* consumer cookie */ struct nvmem_cell; struct nvmem_device; - -struct nvmem_cell_info { - const char *name; - unsigned int offset; - unsigned int bytes; - unsigned int bit_offset; - unsigned int nbits; - struct device_node *np; -}; +struct nvmem_cell_info; =20 /** * struct nvmem_cell_lookup - cell lookup entry diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 55181d837969..a953a3a59535 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -14,7 +14,6 @@ #include =20 struct nvmem_device; -struct nvmem_cell_info; typedef int (*nvmem_reg_read_t)(void *priv, unsigned int offset, void *val, size_t bytes); typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset, @@ -47,6 +46,24 @@ struct nvmem_keepout { unsigned char value; }; =20 +/** + * struct nvmem_cell_info - NVMEM cell description + * @name: Name. + * @offset: Offset within the NVMEM device. + * @bytes: Length of the cell. + * @bit_offset: Bit offset if cell is smaller than a byte. + * @nbits: Number of bits. + * @np: Optional device_node pointer. + */ +struct nvmem_cell_info { + const char *name; + unsigned int offset; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; +}; + /** * struct nvmem_config - NVMEM device configuration * --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15DA1C05027 for ; Mon, 6 Feb 2023 13:45:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230316AbjBFNpS (ORCPT ); Mon, 6 Feb 2023 08:45:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230280AbjBFNov (ORCPT ); Mon, 6 Feb 2023 08:44:51 -0500 Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C05B1265BA for ; Mon, 6 Feb 2023 05:44:25 -0800 (PST) Received: by mail-wr1-x42f.google.com with SMTP id h3so2566249wrp.10 for ; Mon, 06 Feb 2023 05:44:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IgWqiYoy7iTVqZHJ21rDyJ80SvbTnPhWOGsjkHQz9g4=; b=PPkL9u4sZCnSnIkNubHB3J6EUGYeSot5ohz3PKnJt87QXfJRvUwyyTUcdo2RTzN5/p TVH/p7NnTGsbK07S5XIGDTlr5DukYyBOo5XSEPfVTcCKKez7owdB6ZAcOw/8XgPukzHW QM7+VE/4olxW4D0PvA8+rUEksKLHc8WFKy9x554fpszgQrUe8gJrKswJLpzhXWSSkuz6 y+Rxjfj0fxPjx/y+aqEdplfeSdnaynqoemj2bOqcTzlEW7Bz0CJV3BA7CrBdNtN4WaW/ PLaoiTQD96CZPBBC0q62b3fdG5OLdmiuO/XOYc5ZLiyMVNZs7llqvRzc8tqG2S1qX7+7 5EdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IgWqiYoy7iTVqZHJ21rDyJ80SvbTnPhWOGsjkHQz9g4=; b=qV6N84o9sKSz/+ARKwBax/hKXKw2cCDidk9mOvI5zxDbn4OVnYqZXE9hBmhxLGFTz9 5Oj58+FWSBFKCKaEMPbSVVnNiS0Rn2E/FCAU+f2H5JZRjV4yqqMw2WMHhlcYISUe2Iag bWBF0DJ4DcfkOI5P015yJTFt6HX6UfHaxmegpJlN/0Mztm7+rAQD3lRC9wjazmMIRY93 0pOcPO4eRLZUnyfqcnPFnn/i11ql8YquYZmIIlnsHAEjPRcgS/ltJBCH5Rx+VVojWR6w CO6ChG6ZmPwSqdh0wXP+RcwCAZ/04vvZ9f05Zbx5QF0Pj7QnNlQmARtGacMRNPY0+llU IB2g== X-Gm-Message-State: AO0yUKWQyFCgGKkPPvGqwhfSLINy3VHERFl5G4xFNIUDvHuTYjv8eHcR k7RSqdcdsxX2Oaq2ZR2WwOk0yQ== X-Google-Smtp-Source: AK7set8Ae5Oywqh+DdEOeWLncTNeCJsYmHjavWOb/AFEzdjH7u7JJjnfRmOWNjUTt54ypxe5jMbEOA== X-Received: by 2002:a5d:6b89:0:b0:2bf:ef3b:d072 with SMTP id n9-20020a5d6b89000000b002bfef3bd072mr16782532wrx.0.1675691063825; Mon, 06 Feb 2023 05:44:23 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:23 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [PATCH v2 14/22] nvmem: core: drop the removal of the cells in nvmem_add_cells() Date: Mon, 6 Feb 2023 13:43:48 +0000 Message-Id: <20230206134356.839737-15-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle If nvmem_add_cells() fails, the whole nvmem_register() will fail and the cells will then be removed anyway. This is a preparation to introduce a nvmem_add_one_cell() which can then be used by nvmem_add_cells(). This is then the same to what nvmem_add_cells_from_table() and nvmem_add_cells_from_of() do. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 30567dd51fba..98ae70695f36 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -515,7 +515,7 @@ static int nvmem_add_cells(struct nvmem_device *nvmem, int ncells) { struct nvmem_cell_entry **cells; - int i, rval; + int i, rval =3D 0; =20 cells =3D kcalloc(ncells, sizeof(*cells), GFP_KERNEL); if (!cells) @@ -525,28 +525,22 @@ static int nvmem_add_cells(struct nvmem_device *nvmem, cells[i] =3D kzalloc(sizeof(**cells), GFP_KERNEL); if (!cells[i]) { rval =3D -ENOMEM; - goto err; + goto out; } =20 rval =3D nvmem_cell_info_to_nvmem_cell_entry(nvmem, &info[i], cells[i]); if (rval) { kfree(cells[i]); - goto err; + goto out; } =20 nvmem_cell_entry_add(cells[i]); } =20 +out: /* remove tmp array */ kfree(cells); =20 - return 0; -err: - while (i--) - nvmem_cell_entry_drop(cells[i]); - - kfree(cells); - return rval; } =20 --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7734C61DA4 for ; Mon, 6 Feb 2023 13:45:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230408AbjBFNpX (ORCPT ); Mon, 6 Feb 2023 08:45:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230305AbjBFNox (ORCPT ); Mon, 6 Feb 2023 08:44:53 -0500 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 28306265B1 for ; Mon, 6 Feb 2023 05:44:28 -0800 (PST) Received: by mail-wm1-x32c.google.com with SMTP id j29-20020a05600c1c1d00b003dc52fed235so8840249wms.1 for ; Mon, 06 Feb 2023 05:44:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RiCtgga95+oBIC2lKHYt0aFS1kvbxISlsHgDAHK16wM=; b=vAl0ZYTrNr7W3RyZT4InLCmyPaUkKoGS7M5yB7Xv5793YvVy2Xm3toVnlyINzR35dJ 4TaaoUetqzOk1p34yhwM8uFjnkFKGMnQ+oFKaRdY+uX7xjRrO5L7sRZBHGr+M+NfjzDk Xnqa6eBJResdECOOiLtW1R3eNm1aHPMkqLeYoTx/mdsWkN2ueuMGi5I1mv/ZK9zixkg+ 3AcHBdReUocYpjplqYiR7a+SQzonQXucoynshC+Y1vb+ZUblxnEtjJeTPQO1xlIEmIeJ +zTcKoxumLxof33AnALyQ3OOfTw/au0WDaOe57KObeO9By0S26gCq2ESLudnQgRJReM3 3dng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RiCtgga95+oBIC2lKHYt0aFS1kvbxISlsHgDAHK16wM=; b=UQcKT50iuMQ5s1RLS2/4ZRBpxOUPnrrxj/CdH58Qbzy0pUHG4pZmIcYEr/H+z1d+7Z ipT2yZAOu7mEnKsZoY0wQ7WbySfz7WXuglklc/3DWEADTtfyCWW2VMoA9WxMdhplAoFc i/p0UGsiJgasAgfPWnbCPCPTWq1d54dkoNR+NcY/nXTqJBY1fOrHx89IkAp3KCVgTuxB YcxkJdXbpM70ceCSY6wzDzKQLuzJafh21bZLz2lHYs+BplDZDkdAg3W7BGZgWH1lxk6c Ba1QyZJO9EkR5C1TqpqL86a+wc8i3hRWFU+zo7vtfiBIba1r0uKnlOSJvA5YrkdFM0jT pRhA== X-Gm-Message-State: AO0yUKXkvw0Jl4bHgJ8MRNN9tK+1hqa6RufV09O+ge8CZYQgc9lwffxa E62ExBMIN8zRtWC1QlHiOliS3A== X-Google-Smtp-Source: AK7set8UxLy3WuepG5tkFF+mX8wG5yUrkb2IQv4w+xsBTlxdyfQ9pzf1R5RmefhwFWQv4+xHhSGIxA== X-Received: by 2002:a05:600c:4f07:b0:3dc:50c1:5fd4 with SMTP id l7-20020a05600c4f0700b003dc50c15fd4mr1260874wmq.15.1675691065019; Mon, 06 Feb 2023 05:44:25 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:24 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [PATCH v2 15/22] nvmem: core: add nvmem_add_one_cell() Date: Mon, 6 Feb 2023 13:43:49 +0000 Message-Id: <20230206134356.839737-16-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Add a new function to add exactly one cell. This will be used by the nvmem layout drivers to add custom cells. In contrast to the nvmem_add_cells(), this has the advantage that we don't have to assemble a list of cells on runtime. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 59 ++++++++++++++++++++-------------- include/linux/nvmem-provider.h | 8 +++++ 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 98ae70695f36..58f8e33e7a8c 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -501,6 +501,36 @@ static int nvmem_cell_info_to_nvmem_cell_entry(struct = nvmem_device *nvmem, return 0; } =20 +/** + * nvmem_add_one_cell() - Add one cell information to an nvmem device + * + * @nvmem: nvmem device to add cells to. + * @info: nvmem cell info to add to the device + * + * Return: 0 or negative error code on failure. + */ +int nvmem_add_one_cell(struct nvmem_device *nvmem, + const struct nvmem_cell_info *info) +{ + struct nvmem_cell_entry *cell; + int rval; + + cell =3D kzalloc(sizeof(*cell), GFP_KERNEL); + if (!cell) + return -ENOMEM; + + rval =3D nvmem_cell_info_to_nvmem_cell_entry(nvmem, info, cell); + if (rval) { + kfree(cell); + return rval; + } + + nvmem_cell_entry_add(cell); + + return 0; +} +EXPORT_SYMBOL_GPL(nvmem_add_one_cell); + /** * nvmem_add_cells() - Add cell information to an nvmem device * @@ -514,34 +544,15 @@ static int nvmem_add_cells(struct nvmem_device *nvmem, const struct nvmem_cell_info *info, int ncells) { - struct nvmem_cell_entry **cells; - int i, rval =3D 0; - - cells =3D kcalloc(ncells, sizeof(*cells), GFP_KERNEL); - if (!cells) - return -ENOMEM; + int i, rval; =20 for (i =3D 0; i < ncells; i++) { - cells[i] =3D kzalloc(sizeof(**cells), GFP_KERNEL); - if (!cells[i]) { - rval =3D -ENOMEM; - goto out; - } - - rval =3D nvmem_cell_info_to_nvmem_cell_entry(nvmem, &info[i], cells[i]); - if (rval) { - kfree(cells[i]); - goto out; - } - - nvmem_cell_entry_add(cells[i]); + rval =3D nvmem_add_one_cell(nvmem, &info[i]); + if (rval) + return rval; } =20 -out: - /* remove tmp array */ - kfree(cells); - - return rval; + return 0; } =20 /** diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index a953a3a59535..0262b86194eb 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -153,6 +153,9 @@ struct nvmem_device *devm_nvmem_register(struct device = *dev, void nvmem_add_cell_table(struct nvmem_cell_table *table); void nvmem_del_cell_table(struct nvmem_cell_table *table); =20 +int nvmem_add_one_cell(struct nvmem_device *nvmem, + const struct nvmem_cell_info *info); + #else =20 static inline struct nvmem_device *nvmem_register(const struct nvmem_confi= g *c) @@ -170,6 +173,11 @@ devm_nvmem_register(struct device *dev, const struct n= vmem_config *c) =20 static inline void nvmem_add_cell_table(struct nvmem_cell_table *table) {} static inline void nvmem_del_cell_table(struct nvmem_cell_table *table) {} +static inline int nvmem_add_one_cell(struct nvmem_device *nvmem, + const struct nvmem_cell_info *info) +{ + return -EOPNOTSUPP; +} =20 #endif /* CONFIG_NVMEM */ #endif /* ifndef _LINUX_NVMEM_PROVIDER_H */ --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3C04C636D6 for ; Mon, 6 Feb 2023 13:45:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230324AbjBFNpU (ORCPT ); Mon, 6 Feb 2023 08:45:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230299AbjBFNox (ORCPT ); Mon, 6 Feb 2023 08:44:53 -0500 Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29DBD265B5 for ; Mon, 6 Feb 2023 05:44:28 -0800 (PST) Received: by mail-wm1-x335.google.com with SMTP id c4-20020a1c3504000000b003d9e2f72093so10817208wma.1 for ; Mon, 06 Feb 2023 05:44:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GuTt71lD8B/n2u59N4cGLt6TG19xWq8/kXTRq4dBA90=; b=lPZh/SlNhPkBN/EBEtMPXYtKfHR6e84GfMOfReruV5ruas0/VgSlpbhUpxWxCsPn5+ +L/cTpLlzEieacLyNsVd31LJEe5g/9+XtqLY97GPF4KyLtTuN23NfciIQH6oo5zsuV1R iYCeJ1m2CgzhK/vPk1gGWn52MV4hb7lAI95ujLAoVxe/yA+IvSLfRv8xqP9gMMlB6kXT IG0AN/xP7nIPiWNaQ4fn3JYN4SlnMQwkXfS6lnDW90HSjJCMBnurI4M5hKJFqM47mgWJ tl8k+yYWEZ4Z+dzMBGYGvevQRcxRASj8DW8DuX99nIiIsfpLj7MijUit0ksixY0SAbja dhFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GuTt71lD8B/n2u59N4cGLt6TG19xWq8/kXTRq4dBA90=; b=4rzaer4P5r0L+QX9Ms0Mmltix5ATWtTlbFZ1Og6ugTEWkK15VYEUDzfCi0ZMOuU3cn G6kCoHTrI7ZHKvg4iaVcY1FupKJnp9GqxPzt5BTgeAr6r0owGsLoRTeLPzpDWyU6EPgg Foje6f9SrxAkKKEX/YRWZaueEmgL9ZWNrgkSQE50IT+FsMllmYTu2yPsp969FI8pkDcK 9Fb4U343/BVrMKw31LBvJY3EIg2GMG9t2he78KpK525ZZrDPDsMzusCK4Q3FV6eSeNtZ SjEN+4fP7yHOKCtcEg8CnofVAv1jeXtfC9/T5u5xkI+3jStXUnhM5D+Ya3lDpmgxJMcc xsxg== X-Gm-Message-State: AO0yUKUIev7NC5vAbaVCNQKMh+4jkmzwJwTdG6HsD4dzCnrkkkX8gJyH xPE3GXAhbY+U7Q86wgTgc/v69g== X-Google-Smtp-Source: AK7set8EjhF6v8wrXbJxOIlrjTQPcQnG1R41c1zfXhaH13XFrAiQ7Qi6jsY+brkDJZTlWazstTXPHg== X-Received: by 2002:a05:600c:35ca:b0:3df:f7cc:4da2 with SMTP id r10-20020a05600c35ca00b003dff7cc4da2mr6901629wmq.16.1675691066579; Mon, 06 Feb 2023 05:44:26 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:25 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [PATCH v2 16/22] nvmem: core: use nvmem_add_one_cell() in nvmem_add_cells_from_of() Date: Mon, 6 Feb 2023 13:43:50 +0000 Message-Id: <20230206134356.839737-17-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michael Walle Convert nvmem_add_cells_from_of() to use the new nvmem_add_one_cell(). This will remove duplicate code and it will make it possible to add a hook to a nvmem layout in between, which can change fields before the cell is finally added. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 45 ++++++++++++++------------------------------ 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 58f8e33e7a8c..174ef3574e07 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -688,15 +688,14 @@ static int nvmem_validate_keepouts(struct nvmem_devic= e *nvmem) =20 static int nvmem_add_cells_from_of(struct nvmem_device *nvmem) { - struct device_node *parent, *child; struct device *dev =3D &nvmem->dev; - struct nvmem_cell_entry *cell; + struct device_node *child; const __be32 *addr; - int len; + int len, ret; =20 - parent =3D dev->of_node; + for_each_child_of_node(dev->of_node, child) { + struct nvmem_cell_info info =3D {0}; =20 - for_each_child_of_node(parent, child) { addr =3D of_get_property(child, "reg", &len); if (!addr) continue; @@ -706,40 +705,24 @@ static int nvmem_add_cells_from_of(struct nvmem_devic= e *nvmem) return -EINVAL; } =20 - cell =3D kzalloc(sizeof(*cell), GFP_KERNEL); - if (!cell) { - of_node_put(child); - return -ENOMEM; - } - - cell->nvmem =3D nvmem; - cell->offset =3D be32_to_cpup(addr++); - cell->bytes =3D be32_to_cpup(addr); - cell->name =3D kasprintf(GFP_KERNEL, "%pOFn", child); + info.offset =3D be32_to_cpup(addr++); + info.bytes =3D be32_to_cpup(addr); + info.name =3D kasprintf(GFP_KERNEL, "%pOFn", child); =20 addr =3D of_get_property(child, "bits", &len); if (addr && len =3D=3D (2 * sizeof(u32))) { - cell->bit_offset =3D be32_to_cpup(addr++); - cell->nbits =3D be32_to_cpup(addr); + info.bit_offset =3D be32_to_cpup(addr++); + info.nbits =3D be32_to_cpup(addr); } =20 - if (cell->nbits) - cell->bytes =3D DIV_ROUND_UP( - cell->nbits + cell->bit_offset, - BITS_PER_BYTE); + info.np =3D of_node_get(child); =20 - if (!IS_ALIGNED(cell->offset, nvmem->stride)) { - dev_err(dev, "cell %s unaligned to nvmem stride %d\n", - cell->name, nvmem->stride); - /* Cells already added will be freed later. */ - kfree_const(cell->name); - kfree(cell); + ret =3D nvmem_add_one_cell(nvmem, &info); + kfree(info.name); + if (ret) { of_node_put(child); - return -EINVAL; + return ret; } - - cell->np =3D of_node_get(child); - nvmem_cell_entry_add(cell); } =20 return 0; --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 879A4C61DA4 for ; Mon, 6 Feb 2023 13:45:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230227AbjBFNpb (ORCPT ); Mon, 6 Feb 2023 08:45:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230140AbjBFNo6 (ORCPT ); Mon, 6 Feb 2023 08:44:58 -0500 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 229911F90F for ; Mon, 6 Feb 2023 05:44:30 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id n13so8700558wmr.4 for ; Mon, 06 Feb 2023 05:44:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TOii0AZvp0xitiPCZxLRCwu43Y7/Kz/YcZ98FF4tD+Y=; b=ahWqNRGHx60SrgLD6AHi3aPk1TYHnB/OHTRFTkQN3SGqI9MwtySM2miIgNq5Lm7wl9 TnVWqOdt5lznmIqz5WcD549iU1Dih0tG5ze9DYAPD0Yj3vyYKw6tzrc5UFNyJH59Bkr/ GE/nUD44rzOAw23TBejK0h+d6Y2Wlceb9HG+5gCNpZk6CUHNzvgYqtLlwj19p6/npsN8 KyLzH3hf7ptuXGo5BDBCpyi8Xz/5TBkycJ7JmSbRAiJgDGs52Uy5rRAf2LwPRTdYhF4F ndzCdRltm9A/YCWE07BkuE8A+wN+RvYHSja+pZb4KeX3ovdo/3C3mPHueD9VCRV65RXX CyzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TOii0AZvp0xitiPCZxLRCwu43Y7/Kz/YcZ98FF4tD+Y=; b=SGDjCw6MTR/z50FjrEG6LAgLqIt/wrAoge5+dMfBgkoZOECAsLqQjajxtYGUyBGBfa Cad1srVFssyYPJG6Wotqz18uoVI4LJPKebiOoPjhVo0EzyTKibpkwREVIjarUCVCt0Ld IUl417VneYnEHkCU0Dg7NnNNG1juPN7PcxLx746BQl4lzeSXn4QmjAsaO1uZA9z1fIsB KlYyme6rMqPKG1w3fscbGDGQuLSW/hWaFY6zA+GrhJzIW6S2wWVbaFjgObThjPU8cKde NXCEY20hJi2JTbio9w2PLnXDgp5T1XpOAx+J355ye2Efh6O17fZ8tJ88AH1Gj4IwR06m 9yNA== X-Gm-Message-State: AO0yUKXST933PSx5e+sWgo1CyLlfFo70ui1PLAU2vZHLhek2q2xfxPJK 7txJuZyMrDzotdiqfFD2hd7daw== X-Google-Smtp-Source: AK7set/aK4pyfSjcT6eRtuqPn9Erjxwon1Ycc8z+Un0zeNSpX/CkXUY0XdHlztW/86ZG/rFJFI2XBQ== X-Received: by 2002:a05:600c:1994:b0:3e0:185:e916 with SMTP id t20-20020a05600c199400b003e00185e916mr3023952wmq.13.1675691068413; Mon, 06 Feb 2023 05:44:28 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:27 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Patrick Delaunay , Etienne Carriere , Srinivas Kandagatla Subject: [PATCH v2 17/22] nvmem: stm32: add OP-TEE support for STM32MP13x Date: Mon, 6 Feb 2023 13:43:51 +0000 Message-Id: <20230206134356.839737-18-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Patrick Delaunay For boot with OP-TEE on STM32MP13, the communication with the secure world no more use STMicroelectronics SMC but communication with the STM32MP BSEC TA, for data access (read/write) or lock operation: - all the request are sent to OP-TEE trusted application, - for upper OTP with ECC protection and with word programming only each OTP are permanently locked when programmed to avoid ECC error on the second write operation Signed-off-by: Patrick Delaunay Reviewed-by: Etienne Carriere Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/Kconfig | 11 + drivers/nvmem/Makefile | 1 + drivers/nvmem/stm32-bsec-optee-ta.c | 298 ++++++++++++++++++++++++++++ drivers/nvmem/stm32-bsec-optee-ta.h | 80 ++++++++ drivers/nvmem/stm32-romem.c | 54 ++++- 5 files changed, 441 insertions(+), 3 deletions(-) create mode 100644 drivers/nvmem/stm32-bsec-optee-ta.c create mode 100644 drivers/nvmem/stm32-bsec-optee-ta.h diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index 755f551426b5..4d262f69a073 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -290,9 +290,20 @@ config NVMEM_SPRD_EFUSE This driver can also be built as a module. If so, the module will be called nvmem-sprd-efuse. =20 +config NVMEM_STM32_BSEC_OPTEE_TA + bool "STM32MP BSEC OP-TEE TA support for nvmem-stm32-romem driver" + depends on OPTEE + help + Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE + trusted application STM32MP BSEC. + + This library is a used by stm32-romem driver or included in the module + called nvmem-stm32-romem. + config NVMEM_STM32_ROMEM tristate "STMicroelectronics STM32 factory-programmed memory support" depends on ARCH_STM32 || COMPILE_TEST + imply NVMEM_STM32_BSEC_OPTEE_TA help Say y here to enable read-only access for STMicroelectronics STM32 factory-programmed memory area. diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile index fa80fe17e567..6a1efffa88f0 100644 --- a/drivers/nvmem/Makefile +++ b/drivers/nvmem/Makefile @@ -61,6 +61,7 @@ obj-$(CONFIG_NVMEM_SPRD_EFUSE) +=3D nvmem_sprd_efuse.o nvmem_sprd_efuse-y :=3D sprd-efuse.o obj-$(CONFIG_NVMEM_STM32_ROMEM) +=3D nvmem_stm32_romem.o nvmem_stm32_romem-y :=3D stm32-romem.o +nvmem_stm32_romem-$(CONFIG_NVMEM_STM32_BSEC_OPTEE_TA) +=3D stm32-bsec-opte= e-ta.o obj-$(CONFIG_NVMEM_SUNPLUS_OCOTP) +=3D nvmem_sunplus_ocotp.o nvmem_sunplus_ocotp-y :=3D sunplus-ocotp.o obj-$(CONFIG_NVMEM_SUNXI_SID) +=3D nvmem_sunxi_sid.o diff --git a/drivers/nvmem/stm32-bsec-optee-ta.c b/drivers/nvmem/stm32-bsec= -optee-ta.c new file mode 100644 index 000000000000..f89ce791dd12 --- /dev/null +++ b/drivers/nvmem/stm32-bsec-optee-ta.c @@ -0,0 +1,298 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * OP-TEE STM32MP BSEC PTA interface, used by STM32 ROMEM driver + * + * Copyright (C) 2022, STMicroelectronics - All Rights Reserved + */ + +#include + +#include "stm32-bsec-optee-ta.h" + +/* + * Read OTP memory + * + * [in] value[0].a OTP start offset in byte + * [in] value[0].b Access type (0:shadow, 1:fuse, 2:lock) + * [out] memref[1].buffer Output buffer to store read values + * [out] memref[1].size Size of OTP to be read + * + * Return codes: + * TEE_SUCCESS - Invoke command success + * TEE_ERROR_BAD_PARAMETERS - Incorrect input param + * TEE_ERROR_ACCESS_DENIED - OTP not accessible by caller + */ +#define PTA_BSEC_READ_MEM 0x0 + +/* + * Write OTP memory + * + * [in] value[0].a OTP start offset in byte + * [in] value[0].b Access type (0:shadow, 1:fuse, 2:lock) + * [in] memref[1].buffer Input buffer to read values + * [in] memref[1].size Size of OTP to be written + * + * Return codes: + * TEE_SUCCESS - Invoke command success + * TEE_ERROR_BAD_PARAMETERS - Incorrect input param + * TEE_ERROR_ACCESS_DENIED - OTP not accessible by caller + */ +#define PTA_BSEC_WRITE_MEM 0x1 + +/* value of PTA_BSEC access type =3D value[in] b */ +#define SHADOW_ACCESS 0 +#define FUSE_ACCESS 1 +#define LOCK_ACCESS 2 + +/* Bitfield definition for LOCK status */ +#define LOCK_PERM BIT(30) + +/* OP-TEE STM32MP BSEC TA UUID */ +static const uuid_t stm32mp_bsec_ta_uuid =3D + UUID_INIT(0x94cf71ad, 0x80e6, 0x40b5, + 0xa7, 0xc6, 0x3d, 0xc5, 0x01, 0xeb, 0x28, 0x03); + +/* + * Check whether this driver supports the BSEC TA in the TEE instance + * represented by the params (ver/data) to this function. + */ +static int stm32_bsec_optee_ta_match(struct tee_ioctl_version_data *ver, + const void *data) +{ + /* Currently this driver only supports GP compliant, OP-TEE based TA */ + if ((ver->impl_id =3D=3D TEE_IMPL_ID_OPTEE) && + (ver->gen_caps & TEE_GEN_CAP_GP)) + return 1; + else + return 0; +} + +/* Open a session to OP-TEE for STM32MP BSEC TA */ +static int stm32_bsec_ta_open_session(struct tee_context *ctx, u32 *id) +{ + struct tee_ioctl_open_session_arg sess_arg; + int rc; + + memset(&sess_arg, 0, sizeof(sess_arg)); + export_uuid(sess_arg.uuid, &stm32mp_bsec_ta_uuid); + sess_arg.clnt_login =3D TEE_IOCTL_LOGIN_REE_KERNEL; + sess_arg.num_params =3D 0; + + rc =3D tee_client_open_session(ctx, &sess_arg, NULL); + if ((rc < 0) || (sess_arg.ret !=3D 0)) { + pr_err("%s: tee_client_open_session failed err:%#x, ret:%#x\n", + __func__, sess_arg.ret, rc); + if (!rc) + rc =3D -EINVAL; + } else { + *id =3D sess_arg.session; + } + + return rc; +} + +/* close a session to OP-TEE for STM32MP BSEC TA */ +static void stm32_bsec_ta_close_session(void *ctx, u32 id) +{ + tee_client_close_session(ctx, id); +} + +/* stm32_bsec_optee_ta_open() - initialize the STM32MP BSEC TA */ +int stm32_bsec_optee_ta_open(struct tee_context **ctx) +{ + struct tee_context *tee_ctx; + u32 session_id; + int rc; + + /* Open context with TEE driver */ + tee_ctx =3D tee_client_open_context(NULL, stm32_bsec_optee_ta_match, NULL= , NULL); + if (IS_ERR(tee_ctx)) { + rc =3D PTR_ERR(tee_ctx); + if (rc =3D=3D -ENOENT) + return -EPROBE_DEFER; + pr_err("%s: tee_client_open_context failed (%d)\n", __func__, rc); + + return rc; + } + + /* Check STM32MP BSEC TA presence */ + rc =3D stm32_bsec_ta_open_session(tee_ctx, &session_id); + if (rc) { + tee_client_close_context(tee_ctx); + return rc; + } + + stm32_bsec_ta_close_session(tee_ctx, session_id); + + *ctx =3D tee_ctx; + + return 0; +} + +/* stm32_bsec_optee_ta_open() - release the PTA STM32MP BSEC TA */ +void stm32_bsec_optee_ta_close(void *ctx) +{ + tee_client_close_context(ctx); +} + +/* stm32_bsec_optee_ta_read() - nvmem read access using PTA client driver = */ +int stm32_bsec_optee_ta_read(struct tee_context *ctx, unsigned int offset, + void *buf, size_t bytes) +{ + struct tee_shm *shm; + struct tee_ioctl_invoke_arg arg; + struct tee_param param[2]; + u8 *shm_buf; + u32 start, num_bytes; + int ret; + u32 session_id; + + ret =3D stm32_bsec_ta_open_session(ctx, &session_id); + if (ret) + return ret; + + memset(&arg, 0, sizeof(arg)); + memset(¶m, 0, sizeof(param)); + + arg.func =3D PTA_BSEC_READ_MEM; + arg.session =3D session_id; + arg.num_params =3D 2; + + /* align access on 32bits */ + start =3D ALIGN_DOWN(offset, 4); + num_bytes =3D round_up(offset + bytes - start, 4); + param[0].attr =3D TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT; + param[0].u.value.a =3D start; + param[0].u.value.b =3D SHADOW_ACCESS; + + shm =3D tee_shm_alloc_kernel_buf(ctx, num_bytes); + if (IS_ERR(shm)) { + ret =3D PTR_ERR(shm); + goto out_tee_session; + } + + param[1].attr =3D TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT; + param[1].u.memref.shm =3D shm; + param[1].u.memref.size =3D num_bytes; + + ret =3D tee_client_invoke_func(ctx, &arg, param); + if (ret < 0 || arg.ret !=3D 0) { + pr_err("TA_BSEC invoke failed TEE err:%#x, ret:%#x\n", + arg.ret, ret); + if (!ret) + ret =3D -EIO; + } + if (!ret) { + shm_buf =3D tee_shm_get_va(shm, 0); + if (IS_ERR(shm_buf)) { + ret =3D PTR_ERR(shm_buf); + pr_err("tee_shm_get_va failed for transmit (%d)\n", ret); + } else { + /* read data from 32 bits aligned buffer */ + memcpy(buf, &shm_buf[offset % 4], bytes); + } + } + + tee_shm_free(shm); + +out_tee_session: + stm32_bsec_ta_close_session(ctx, session_id); + + return ret; +} + +/* stm32_bsec_optee_ta_write() - nvmem write access using PTA client drive= r */ +int stm32_bsec_optee_ta_write(struct tee_context *ctx, unsigned int lower, + unsigned int offset, void *buf, size_t bytes) +{ struct tee_shm *shm; + struct tee_ioctl_invoke_arg arg; + struct tee_param param[2]; + u8 *shm_buf; + int ret; + u32 session_id; + + ret =3D stm32_bsec_ta_open_session(ctx, &session_id); + if (ret) + return ret; + + /* Allow only writing complete 32-bits aligned words */ + if ((bytes % 4) || (offset % 4)) + return -EINVAL; + + memset(&arg, 0, sizeof(arg)); + memset(¶m, 0, sizeof(param)); + + arg.func =3D PTA_BSEC_WRITE_MEM; + arg.session =3D session_id; + arg.num_params =3D 2; + + param[0].attr =3D TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT; + param[0].u.value.a =3D offset; + param[0].u.value.b =3D FUSE_ACCESS; + + shm =3D tee_shm_alloc_kernel_buf(ctx, bytes); + if (IS_ERR(shm)) { + ret =3D PTR_ERR(shm); + goto out_tee_session; + } + + param[1].attr =3D TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT; + param[1].u.memref.shm =3D shm; + param[1].u.memref.size =3D bytes; + + shm_buf =3D tee_shm_get_va(shm, 0); + if (IS_ERR(shm_buf)) { + ret =3D PTR_ERR(shm_buf); + pr_err("tee_shm_get_va failed for transmit (%d)\n", ret); + tee_shm_free(shm); + + goto out_tee_session; + } + + memcpy(shm_buf, buf, bytes); + + ret =3D tee_client_invoke_func(ctx, &arg, param); + if (ret < 0 || arg.ret !=3D 0) { + pr_err("TA_BSEC invoke failed TEE err:%#x, ret:%#x\n", arg.ret, ret); + if (!ret) + ret =3D -EIO; + } + pr_debug("Write OTPs %d to %zu, ret=3D%d\n", offset / 4, (offset + bytes)= / 4, ret); + + /* Lock the upper OTPs with ECC protection, word programming only */ + if (!ret && ((offset + bytes) >=3D (lower * 4))) { + u32 start, nb_lock; + u32 *lock =3D (u32 *)shm_buf; + int i; + + /* + * don't lock the lower OTPs, no ECC protection and incremental + * bit programming, a second write is allowed + */ + start =3D max_t(u32, offset, lower * 4); + nb_lock =3D (offset + bytes - start) / 4; + + param[0].u.value.a =3D start; + param[0].u.value.b =3D LOCK_ACCESS; + param[1].u.memref.size =3D nb_lock * 4; + + for (i =3D 0; i < nb_lock; i++) + lock[i] =3D LOCK_PERM; + + ret =3D tee_client_invoke_func(ctx, &arg, param); + if (ret < 0 || arg.ret !=3D 0) { + pr_err("TA_BSEC invoke failed TEE err:%#x, ret:%#x\n", arg.ret, ret); + if (!ret) + ret =3D -EIO; + } + pr_debug("Lock upper OTPs %d to %d, ret=3D%d\n", + start / 4, start / 4 + nb_lock, ret); + } + + tee_shm_free(shm); + +out_tee_session: + stm32_bsec_ta_close_session(ctx, session_id); + + return ret; +} diff --git a/drivers/nvmem/stm32-bsec-optee-ta.h b/drivers/nvmem/stm32-bsec= -optee-ta.h new file mode 100644 index 000000000000..3966a0535179 --- /dev/null +++ b/drivers/nvmem/stm32-bsec-optee-ta.h @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * OP-TEE STM32MP BSEC PTA interface, used by STM32 ROMEM driver + * + * Copyright (C) 2022, STMicroelectronics - All Rights Reserved + */ + +#if IS_ENABLED(CONFIG_NVMEM_STM32_BSEC_OPTEE_TA) +/** + * stm32_bsec_optee_ta_open() - initialize the STM32 BSEC TA + * @ctx: the OP-TEE context on success + * + * Return: + * On success, 0. On failure, -errno. + */ +int stm32_bsec_optee_ta_open(struct tee_context **ctx); + +/** + * stm32_bsec_optee_ta_close() - release the STM32 BSEC TA + * @ctx: the OP-TEE context + * + * This function used to clean the OP-TEE resources initialized in + * stm32_bsec_optee_ta_open(); it can be used as callback to + * devm_add_action_or_reset() + */ +void stm32_bsec_optee_ta_close(void *ctx); + +/** + * stm32_bsec_optee_ta_read() - nvmem read access using TA client driver + * @ctx: the OP-TEE context provided by stm32_bsec_optee_ta_open + * @offset: nvmem offset + * @buf: buffer to fill with nvem values + * @bytes: number of bytes to read + * + * Return: + * On success, 0. On failure, -errno. + */ +int stm32_bsec_optee_ta_read(struct tee_context *ctx, unsigned int offset, + void *buf, size_t bytes); + +/** + * stm32_bsec_optee_ta_write() - nvmem write access using TA client driver + * @ctx: the OP-TEE context provided by stm32_bsec_optee_ta_open + * @lower: number of lower OTP, not protected by ECC + * @offset: nvmem offset + * @buf: buffer with nvem values + * @bytes: number of bytes to write + * + * Return: + * On success, 0. On failure, -errno. + */ +int stm32_bsec_optee_ta_write(struct tee_context *ctx, unsigned int lower, + unsigned int offset, void *buf, size_t bytes); + +#else + +static inline int stm32_bsec_optee_ta_open(struct tee_context **ctx) +{ + return -EOPNOTSUPP; +} + +static inline void stm32_bsec_optee_ta_close(void *ctx) +{ +} + +static inline int stm32_bsec_optee_ta_read(struct tee_context *ctx, + unsigned int offset, void *buf, + size_t bytes) +{ + return -EOPNOTSUPP; +} + +static inline int stm32_bsec_optee_ta_write(struct tee_context *ctx, + unsigned int lower, + unsigned int offset, void *buf, + size_t bytes) +{ + return -EOPNOTSUPP; +} +#endif /* CONFIG_NVMEM_STM32_BSEC_OPTEE_TA */ diff --git a/drivers/nvmem/stm32-romem.c b/drivers/nvmem/stm32-romem.c index d1d03c2ad081..978a63edf297 100644 --- a/drivers/nvmem/stm32-romem.c +++ b/drivers/nvmem/stm32-romem.c @@ -11,6 +11,9 @@ #include #include #include +#include + +#include "stm32-bsec-optee-ta.h" =20 /* BSEC secure service access from non-secure */ #define STM32_SMC_BSEC 0x82001003 @@ -25,12 +28,14 @@ struct stm32_romem_cfg { int size; u8 lower; + bool ta; }; =20 struct stm32_romem_priv { void __iomem *base; struct nvmem_config cfg; u8 lower; + struct tee_context *ctx; }; =20 static int stm32_romem_read(void *context, unsigned int offset, void *buf, @@ -138,12 +143,29 @@ static int stm32_bsec_write(void *context, unsigned i= nt offset, void *buf, return 0; } =20 +static int stm32_bsec_pta_read(void *context, unsigned int offset, void *b= uf, + size_t bytes) +{ + struct stm32_romem_priv *priv =3D context; + + return stm32_bsec_optee_ta_read(priv->ctx, offset, buf, bytes); +} + +static int stm32_bsec_pta_write(void *context, unsigned int offset, void *= buf, + size_t bytes) +{ + struct stm32_romem_priv *priv =3D context; + + return stm32_bsec_optee_ta_write(priv->ctx, priv->lower, offset, buf, byt= es); +} + static int stm32_romem_probe(struct platform_device *pdev) { const struct stm32_romem_cfg *cfg; struct device *dev =3D &pdev->dev; struct stm32_romem_priv *priv; struct resource *res; + int rc; =20 priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -173,15 +195,31 @@ static int stm32_romem_probe(struct platform_device *= pdev) } else { priv->cfg.size =3D cfg->size; priv->lower =3D cfg->lower; - priv->cfg.reg_read =3D stm32_bsec_read; - priv->cfg.reg_write =3D stm32_bsec_write; + if (cfg->ta) { + rc =3D stm32_bsec_optee_ta_open(&priv->ctx); + /* wait for OP-TEE client driver to be up and ready */ + if (rc) + return rc; + } + if (priv->ctx) { + rc =3D devm_add_action_or_reset(dev, stm32_bsec_optee_ta_close, priv->c= tx); + if (rc) { + dev_err(dev, "devm_add_action_or_reset() failed (%d)\n", rc); + return rc; + } + priv->cfg.reg_read =3D stm32_bsec_pta_read; + priv->cfg.reg_write =3D stm32_bsec_pta_write; + } else { + priv->cfg.reg_read =3D stm32_bsec_read; + priv->cfg.reg_write =3D stm32_bsec_write; + } } =20 return PTR_ERR_OR_ZERO(devm_nvmem_register(dev, &priv->cfg)); } =20 /* - * STM32MP15 BSEC OTP regions: 4096 OTP bits (with 3072 effective bits) + * STM32MP15/13 BSEC OTP regions: 4096 OTP bits (with 3072 effective bits) * =3D> 96 x 32-bits data words * - Lower: 1K bits, 2:1 redundancy, incremental bit programming * =3D> 32 (x 32-bits) lower shadow registers =3D words 0 to 31 @@ -191,6 +229,13 @@ static int stm32_romem_probe(struct platform_device *p= dev) static const struct stm32_romem_cfg stm32mp15_bsec_cfg =3D { .size =3D 384, .lower =3D 32, + .ta =3D false, +}; + +static const struct stm32_romem_cfg stm32mp13_bsec_cfg =3D { + .size =3D 384, + .lower =3D 32, + .ta =3D true, }; =20 static const struct of_device_id stm32_romem_of_match[] =3D { @@ -198,7 +243,10 @@ static const struct of_device_id stm32_romem_of_match[= ] =3D { .compatible =3D "st,stm32mp15-bsec", .data =3D (void *)&stm32mp15_bsec_cfg, }, { + .compatible =3D "st,stm32mp13-bsec", + .data =3D (void *)&stm32mp13_bsec_cfg, }, + { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, stm32_romem_of_match); =20 --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F441C61DA4 for ; Mon, 6 Feb 2023 13:45:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230430AbjBFNpg (ORCPT ); Mon, 6 Feb 2023 08:45:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49252 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230151AbjBFNo6 (ORCPT ); Mon, 6 Feb 2023 08:44:58 -0500 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29E331F49B for ; Mon, 6 Feb 2023 05:44:32 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id k8-20020a05600c1c8800b003dc57ea0dfeso10824426wms.0 for ; Mon, 06 Feb 2023 05:44:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PgSSD3uLqDr7SGSKLQ1i7dmWi7XiSm1LY65hwRVkN5w=; b=puX7oD3naZq8rVYH7SguIkVRuMn0GoSpW4EpyxvcwInxxFKZLFo+TN+Pnqsz5md4+m lbbaLAy1MShDHkf1MGffEsE7qL8VobusO8zeWUgOZFsDuC2mKo4Z6a9PpBC/YuElU5Vz N3H1JGVvtoDUFLEksql7lMSV0t32P2t+2fmuEQM5piaHTkM8BEtf29YQqWsRSr+mfIOE LHv41IbrJHVoZgQpdFt8MRaop1M++RUXqtCvVWU5Hyqx+UxcfIwYfYCDhKOkVKOo+OVt VvpNIRUIgp/LoE0nXSlGDu0QC0geoF4dRcgA3wEFWLNV8BNj4Phkc8f4JszM2UyIhHiV 8wKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PgSSD3uLqDr7SGSKLQ1i7dmWi7XiSm1LY65hwRVkN5w=; b=2dQxuMNjwvhUPTXdKHe0UsCotO5Fr3W+g6rUqAITkg/CU+Ed6gIoc/RVxDApJyRbmV hMJOYTKOPVwwTXFJ1YismoRVZeQ15AHkDr+5dhr6xvFtdghtY2A9SGfeA4iWQw6vX2Q1 m0HLmBB5tirXKgkBnFMK6VBxrEX9LJYKb8nY8DF0a0p0xz0qeOQfwfiU5lUPrBu72U8w C5MieCfgEu32c3rLz4/xqOGgGxZ1r3zdx/dgcl6OEx0S65vkmBfsmW8gaEWGTieCxw2k Hd4TvOwSwhphac0qw376DsjpOrRpNy6Pl5Owbb4dOUopyzDcrZd7GiwRHm8vmtfZVKC3 r4Tw== X-Gm-Message-State: AO0yUKVBEMGwJcgB7z0LDPFAIYQjbgtlj+zAB7fhfQf0KqBbNjOpEyNl rDsQV4/NOI0r2E2ZpUM4NvHLjA== X-Google-Smtp-Source: AK7set/ZFyAs4dYJ9dFtlSw+WxP7B1z6/cWyGYbVeiFQg6npVtJCO+jS95SY1mAUCQ9BkSMpEZ2zvg== X-Received: by 2002:a05:600c:4a9b:b0:3de:1d31:1043 with SMTP id b27-20020a05600c4a9b00b003de1d311043mr19114949wmp.21.1675691069563; Mon, 06 Feb 2023 05:44:29 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:28 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Patrick Delaunay , Etienne Carriere , Srinivas Kandagatla Subject: [PATCH v2 18/22] nvmem: stm32: detect bsec pta presence for STM32MP15x Date: Mon, 6 Feb 2023 13:43:52 +0000 Message-Id: <20230206134356.839737-19-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Patrick Delaunay On STM32MP15x SoC, the SMC backend is optional when OP-TEE is used; the PTA BSEC should be used as it is done on STM32MP13x platform, but the BSEC SMC can be also used: it is a legacy mode in OP-TEE, not recommended but used in previous OP-TEE firmware. The presence of OP-TEE is dynamically detected in STM32MP15x device tree and the supported NVMEM backend is dynamically detected: - PTA with stm32_bsec_pta_find - SMC with stm32_bsec_check With OP-TEE but without PTA and SMC detection, the probe is deferred for STM32MP15x devices. On STM32MP13x platform, only the PTA is supported with cfg->ta =3D true and this detection is skipped. Signed-off-by: Patrick Delaunay Reviewed-by: Etienne Carriere Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/stm32-romem.c | 38 +++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/drivers/nvmem/stm32-romem.c b/drivers/nvmem/stm32-romem.c index 978a63edf297..ba779e26937a 100644 --- a/drivers/nvmem/stm32-romem.c +++ b/drivers/nvmem/stm32-romem.c @@ -159,6 +159,31 @@ static int stm32_bsec_pta_write(void *context, unsigne= d int offset, void *buf, return stm32_bsec_optee_ta_write(priv->ctx, priv->lower, offset, buf, byt= es); } =20 +static bool stm32_bsec_smc_check(void) +{ + u32 val; + int ret; + + /* check that the OP-TEE support the BSEC SMC (legacy mode) */ + ret =3D stm32_bsec_smc(STM32_SMC_READ_SHADOW, 0, 0, &val); + + return !ret; +} + +static bool optee_presence_check(void) +{ + struct device_node *np; + bool tee_detected =3D false; + + /* check that the OP-TEE node is present and available. */ + np =3D of_find_compatible_node(NULL, NULL, "linaro,optee-tz"); + if (np && of_device_is_available(np)) + tee_detected =3D true; + of_node_put(np); + + return tee_detected; +} + static int stm32_romem_probe(struct platform_device *pdev) { const struct stm32_romem_cfg *cfg; @@ -195,11 +220,16 @@ static int stm32_romem_probe(struct platform_device *= pdev) } else { priv->cfg.size =3D cfg->size; priv->lower =3D cfg->lower; - if (cfg->ta) { + if (cfg->ta || optee_presence_check()) { rc =3D stm32_bsec_optee_ta_open(&priv->ctx); - /* wait for OP-TEE client driver to be up and ready */ - if (rc) - return rc; + if (rc) { + /* wait for OP-TEE client driver to be up and ready */ + if (rc =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + /* BSEC PTA is required or SMC not supported */ + if (cfg->ta || !stm32_bsec_smc_check()) + return rc; + } } if (priv->ctx) { rc =3D devm_add_action_or_reset(dev, stm32_bsec_optee_ta_close, priv->c= tx); --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DF68C05027 for ; Mon, 6 Feb 2023 13:45:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230447AbjBFNpk (ORCPT ); Mon, 6 Feb 2023 08:45:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230244AbjBFNpA (ORCPT ); Mon, 6 Feb 2023 08:45:00 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A798E1F4B7 for ; Mon, 6 Feb 2023 05:44:33 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id h16so10377223wrz.12 for ; Mon, 06 Feb 2023 05:44:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yPRxk+XR4q6rcvb7Uhvae10cdYLboc87AwhU8wC3gnk=; b=ik4Hpyc3d7+1n8poSyS1lqyWPbx6SKuKX/QefYGcqIEMERtyVSAJ34C4EjWEvwXZr/ iU/fgY8ufybzSGXSZmm77gomeSyVRG9RMKRJ8DS4TmJvKRNx2MtFjZSr1+22fjpUBZMn xC1nLxCXX862XsfQwkPGaEEM5uxcUXp1bb06WJqiMqZxPmCz75JT+xfX9gfSo7/B6aHa a4mv0aEBx53YYsQqGJ8Aw8rP6P5e0CuOCtHvFAW8Yajhx3cqwG4SfxNGl2YJt5ptGjRg GZ9snu0avF/Y5MliyLo079Z0gWnnVPt4bg8R6YcQEImDt0iuA9IXrxNLQx3V5Vbej228 fcOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yPRxk+XR4q6rcvb7Uhvae10cdYLboc87AwhU8wC3gnk=; b=AgprSlti88ModC0+n2cWAQgMi/SmvkWAsdKjY2bYzkmVvOu0gu/tCOPacIBIMfoGfU /f9FRtpaVjGvwPz96LgggV9ldGCdBu+w4e9n733I7J4D45DfeZHFP1WhlHV7OkrxMxC2 wnc8qTPCaz2HdbEoTC6AfEADCfZfzzb5udNqzG5NgKuzPVmlHFA62wGHQYWM+ivUVI/n 6esRoUNWA/wkoTCbTueGi712jv8+h5SAy/jjIbZjtz53k1Ba3AbN1GyDKHU0Z2ifjJRj xnIUyWiQnbLkAzMySEloOdsmYtUMFyITXZ0zEPUb5loH8kDf8wqft/mU3Q//yrK6X0j0 5Zsw== X-Gm-Message-State: AO0yUKWUVgNuuG8OAwT+l2ooKUEMCbPYGNHTzallQsrqZ3NxJdLqom0N OUGnc7f5HSt4O851VaRPvD9MtQ== X-Google-Smtp-Source: AK7set8NOXbV45AQNStf+I2RM8WMStxkgrt0xuD6+yidVm21bxZ5HAZF55ujEyi7taymRuJjKdaaxg== X-Received: by 2002:a05:6000:1c15:b0:2bf:b27f:c9b3 with SMTP id ba21-20020a0560001c1500b002bfb27fc9b3mr19253418wrb.32.1675691071218; Mon, 06 Feb 2023 05:44:31 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:30 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Randy Dunlap , Srinivas Kandagatla , Andrey Vostrikov , Nikita Yushchenko , Andrey Smirnov Subject: [PATCH v2 19/22] nvmem: rave-sp-eeprm: fix kernel-doc bad line warning Date: Mon, 6 Feb 2023 13:43:53 +0000 Message-Id: <20230206134356.839737-20-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Randy Dunlap Convert an empty line to " *" to avoid a kernel-doc warning: drivers/nvmem/rave-sp-eeprom.c:48: warning: bad line: Signed-off-by: Randy Dunlap Cc: Srinivas Kandagatla Cc: Andrey Vostrikov Cc: Nikita Yushchenko Cc: Andrey Smirnov Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/rave-sp-eeprom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/rave-sp-eeprom.c b/drivers/nvmem/rave-sp-eeprom.c index 66699d44f73d..c456011b75e8 100644 --- a/drivers/nvmem/rave-sp-eeprom.c +++ b/drivers/nvmem/rave-sp-eeprom.c @@ -45,7 +45,7 @@ enum rave_sp_eeprom_header_size { * @type: Access type (see enum rave_sp_eeprom_access_type) * @success: Success flag (Success =3D 1, Failure =3D 0) * @data: Read data - + * * Note this structure corresponds to RSP_*_EEPROM payload from RAVE * SP ICD */ --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 549D4C05027 for ; Mon, 6 Feb 2023 13:45:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230451AbjBFNpm (ORCPT ); Mon, 6 Feb 2023 08:45:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230250AbjBFNpA (ORCPT ); Mon, 6 Feb 2023 08:45:00 -0500 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC6422684A for ; Mon, 6 Feb 2023 05:44:34 -0800 (PST) Received: by mail-wm1-x32c.google.com with SMTP id m16-20020a05600c3b1000b003dc4050c94aso8819795wms.4 for ; Mon, 06 Feb 2023 05:44:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=V0RAZYB/XfMSgNVeIjbEr49M4Q3OadQw/L8K9G9Uq8k=; b=DZVOjt6JrW+BSaV8Hww4zpACnfSHvJSsz1Sgpy5QblmshgOig6+mGSlZc8VZ2I+MOD ippN+leCi9AhBCgLtGPwxhxDnH8Beu/GDIMFQTlgkYJzJAtpZn+6Ai15jRVw2e0Gx0cf Dzp/510+SY3ADA9nyor7w6Kdjq+xx/AdI7DdyJznCJIakgy2o0QXSjcwFiWstc+h13EO OG/spUAKAs15x9D4jxI5ISXo09CYCFz+Yf0xAxiVr5t0T1fpMGju4KUG1Gg2Hd82N7Gs /PluAhFsCFCE81jcYiGzfmkxC45QTh7sEs34+dQZNfebbTxURAzvGixkG8snWIwctpxc e7aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V0RAZYB/XfMSgNVeIjbEr49M4Q3OadQw/L8K9G9Uq8k=; b=edASnTZBmGuPXj80NPEeMAzqtuOZbyUht4DUnaxzfoqO/tb52WbE84hd4pqWsL4MUi WBQqMFY0ywXQ9Z5Zk3Y6CQRwwBZIubLyRm7udX9Kd9OFaXxDQNlKF1TTrjO6tTo5ZZlS ctb6aDQbk4K9GtdPq3kE4Gm4AagQdztZOcU+wFfDwz9hbnjsJBV6IaUP0mirTkJSB54g AvmsrvjBj0Y9EzaX7hbvF2zI1+wAqfLuzlDtDeRPjiXMLNN5BRW39UatVcVQyB4r2d7R sVZbDED9ifBz89AzatA6tl4ki2Q51ZTsfucrVr2+lp813jmzQNmVmKTTQ5uqBy6EzsGx ZWLA== X-Gm-Message-State: AO0yUKWIDsqYkzeNjD2ZzmPnyozUSMKZ+64Ta8paxfBRS7Z6J9GEfVkp ZFMeBL8Ly5KgBgR3RA33p69LHA== X-Google-Smtp-Source: AK7set+rahsuZZNNf1RmoP8TEb+S2VlcLpKi4wsi0ZDh0RU8+5W+OPTdwnXbusPBzKnCqfJHZqJqtA== X-Received: by 2002:a05:600c:1e0c:b0:3df:d8c5:ec18 with SMTP id ay12-20020a05600c1e0c00b003dfd8c5ec18mr15120490wmb.13.1675691072612; Mon, 06 Feb 2023 05:44:32 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:31 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Johan Hovold , Bjorn Andersson , Srinivas Kandagatla Subject: [PATCH v2 20/22] nvmem: qcom-spmi-sdam: register at device init time Date: Mon, 6 Feb 2023 13:43:54 +0000 Message-Id: <20230206134356.839737-21-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Johan Hovold There are currently no in-tree users of the Qualcomm SDAM nvmem driver and there is generally no point in registering a driver that can be built as a module at subsys init time. Register the driver at the normal device init time instead and let driver core sort out the probe order. Signed-off-by: Johan Hovold Reviewed-by: Bjorn Andersson Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/qcom-spmi-sdam.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c index 8499892044b7..f822790db49e 100644 --- a/drivers/nvmem/qcom-spmi-sdam.c +++ b/drivers/nvmem/qcom-spmi-sdam.c @@ -175,18 +175,7 @@ static struct platform_driver sdam_driver =3D { }, .probe =3D sdam_probe, }; - -static int __init sdam_init(void) -{ - return platform_driver_register(&sdam_driver); -} -subsys_initcall(sdam_init); - -static void __exit sdam_exit(void) -{ - return platform_driver_unregister(&sdam_driver); -} -module_exit(sdam_exit); +module_platform_driver(sdam_driver); =20 MODULE_DESCRIPTION("QCOM SPMI SDAM driver"); MODULE_LICENSE("GPL v2"); --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FE47C05027 for ; Mon, 6 Feb 2023 13:45:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230469AbjBFNps (ORCPT ); Mon, 6 Feb 2023 08:45:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230355AbjBFNpC (ORCPT ); Mon, 6 Feb 2023 08:45:02 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 611CC24132 for ; Mon, 6 Feb 2023 05:44:38 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id o18so10416306wrj.3 for ; Mon, 06 Feb 2023 05:44:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IEBwyInNQj4T9UrPWpH8IzyU0lvHzwvDqekdsT+4wvM=; b=eTUHGNo1UuEuc0hxSLBRF68hd7oI3LV6W715ikMdMKdtCLwU+jZsmWm9sjVgTxhU5q T1S2B5SXUFDaKRkgJ0doTGkD/FTUPD0DpkROCMSeRUaAVuI3kWKUO7BcAInj4A2GZNNN NsnxTIU0upVjiSpS4xYIt2hTNFFpvGa4SS53R1f4VDhrCbroRSOwL1KeMhE3GzEgNYuz 3J5oiRC+7e6shqoMhx6EUM9eD9NWKvuAuhdfZPYPx1gy7NkIRilJSy2wbx5EFT7DEToC /Bamz2kVDOX0AGX69/9yIInNDBJdkGuKu4+Bljm+yblIYXJzcGM/E7GQTkritbB47LIY 5yqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IEBwyInNQj4T9UrPWpH8IzyU0lvHzwvDqekdsT+4wvM=; b=PsqbrVVJAVn5hSnmFLuv5LmjKaPAzGo1U7LJLwKhCalF17phFVDBnmv/yNGozg/P+V yeGZYs8WSjL3YU+PazRATUcM4acc2HSzYC776uFG8orTZJuHx58iml05v60OaUlSDV1d 6Yk6OTRo4AkbtRPfzTLqIs6YC340JvvYMhWSJeCLvCDBlHR+89pE3UvIHIV0S6nq4YHc uX54pjfwEfXwX1AAqaA9/plyj8sKnN5JO0JFOzaozVZ8sDQTQ/qQi/EXoJzHRjsABiH5 eKmL6R9E4ENfKtcLBZfpMbYFtdIGTa9eau1J0Tz1Bf7FJVPRinlxflqs6nV4hVdubAzP o9Pg== X-Gm-Message-State: AO0yUKUS9B5MnpGRL5updwBk1camopm0a26qO5iDJOam7eqGKFPCGINk 8Inq/+Nz7FA7nIZ1vn1a6A4HkA== X-Google-Smtp-Source: AK7set/xhyK/TQetImdnuZohMTBiQ2LNlVUmrkeifNVtMyy398EMPHNFH0KrzY7HlK+YRgdG2LfexA== X-Received: by 2002:adf:e18e:0:b0:2c3:f070:911f with SMTP id az14-20020adfe18e000000b002c3f070911fmr299177wrb.21.1675691074094; Mon, 06 Feb 2023 05:44:34 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:33 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Robert Marko , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [PATCH v2 21/22] dt-bindings: nvmem: qfprom: add IPQ8074 compatible Date: Mon, 6 Feb 2023 13:43:55 +0000 Message-Id: <20230206134356.839737-22-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Robert Marko Document IPQ8074 compatible for QFPROM, its compatible with the generic QFPROM fallback. Signed-off-by: Robert Marko Acked-by: Krzysztof Kozlowski Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Doc= umentation/devicetree/bindings/nvmem/qcom,qfprom.yaml index 9ddf3cef9e84..2173fe82317d 100644 --- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml +++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml @@ -19,6 +19,7 @@ properties: - qcom,apq8064-qfprom - qcom,apq8084-qfprom - qcom,ipq8064-qfprom + - qcom,ipq8074-qfprom - qcom,msm8916-qfprom - qcom,msm8974-qfprom - qcom,msm8976-qfprom --=20 2.25.1 From nobody Sat Sep 13 01:48:48 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD6DDC61DA4 for ; Mon, 6 Feb 2023 13:45:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230472AbjBFNpv (ORCPT ); Mon, 6 Feb 2023 08:45:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49068 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230379AbjBFNpK (ORCPT ); Mon, 6 Feb 2023 08:45:10 -0500 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8762E1F491 for ; Mon, 6 Feb 2023 05:44:40 -0800 (PST) Received: by mail-wm1-x32c.google.com with SMTP id z13so1233712wmp.2 for ; Mon, 06 Feb 2023 05:44:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=30/j6XveIjdBVJ7JIV4Cgab8QMESVd8u6z1D2E6L96o=; b=iSf8P89kQBcMSFUniY9s56Q5MEYNe3QygPu4DrRMYdvH08MfRZUBaw4pE3BJHQtyey 81bGMMdMKuyaGH0TleQUiTUhEVLMVKPq1Wg6pSmPFSXLUbvKBmkVjWlj7JH4TDiy9szO L/ej5dyHtiGaKBfFUK6OcWkXAMBa4qT4BrRJMh1l4mb0T/pB68pUyY5yhvV4kexDUeiT bUaaUQpz1k+7t67csRxoUDW4bceHHvRik38Qck4Yt52/3RqCi8EbOKKb3ZPSa0wQ1f1N b+thr4vZ7cYY1FMSkhKKV1gd6OBg0ej5x0u6i0QAtfEofn7zGtTljji4DsiMeMyx0xlg 8OWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=30/j6XveIjdBVJ7JIV4Cgab8QMESVd8u6z1D2E6L96o=; b=a0w5vtahi0t2picf9XyChB9xCRMXaOEwmGn4nayhiDPCEu8U8JwtSN/spvjkgA1kxu rovXqFh9blp1ia6wLlCGbvdti74blqchjpAZEYZTTxXxXLaw4n8A76ZjEa8VGY4a2MOf mBnC4HAXql1lmKHCapMGobnKyOwwNR0yWqHNoKEZ774ptnpZg0rpk9yOOP1rFBeYcWch KnRtqW6OkDIfewk826E48rUrE9GsK7ixzcq83S98v9SuJN+xVwZIG7EtgwKWywXABom5 OqSRrh3zubozs7SKhOv7G2HaCi++ly0DHAriGa0dv9MfZxvcGIwj4GQ4iGuCWqfe0/Iv t1HA== X-Gm-Message-State: AO0yUKVNKKnC0bv2EN988OhIJfzXBfYbmrE3KMZzAqYwBPmWPRBKYXQP Npv+vxj3oWgvtqy4ACBbneEr5A== X-Google-Smtp-Source: AK7set+WqIlCuc8N6nBf17Z0hNwjnOGB8DKs7LpYoLKbNA+WhsKZVnVBxQBHut82b2x4bX/Zn0VrVQ== X-Received: by 2002:a05:600c:4b2f:b0:3dc:53a2:2690 with SMTP id i47-20020a05600c4b2f00b003dc53a22690mr18906870wmp.7.1675691075687; Mon, 06 Feb 2023 05:44:35 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o15-20020adfa10f000000b002bddaea7a0bsm9008037wro.57.2023.02.06.05.44.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 05:44:34 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Arnd Bergmann , Srinivas Kandagatla Subject: [PATCH v2 22/22] nvmem: stm32: fix OPTEE dependency Date: Mon, 6 Feb 2023 13:43:56 +0000 Message-Id: <20230206134356.839737-23-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> References: <20230206134356.839737-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann The stm32 nvmem driver fails to link as built-in when OPTEE is a loadable module: aarch64-linux-ld: drivers/nvmem/stm32-bsec-optee-ta.o: in function `stm32_b= sec: stm32-bsec-optee-ta.c:(.text+0xc8): undefined reference to `tee_client_open= _session' aarch64-linux-ld: drivers/nvmem/stm32-bsec-optee-ta.o: in function `stm32_b= sec: stm32-bsec-optee-ta.c:(.text+0x1fc): undefined reference to `tee_client_ope= n_context' Change the CONFIG_NVMEM_STM32_ROMEM definition so it can only be built-in if OPTEE is either built-in or disabled, and make NVMEM_STM32_BSEC_OPTEE_TA a hidden symbol instead. Signed-off-by: Arnd Bergmann Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/Kconfig | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index 4d262f69a073..6dec38805041 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -291,8 +291,7 @@ config NVMEM_SPRD_EFUSE will be called nvmem-sprd-efuse. =20 config NVMEM_STM32_BSEC_OPTEE_TA - bool "STM32MP BSEC OP-TEE TA support for nvmem-stm32-romem driver" - depends on OPTEE + def_bool NVMEM_STM32_ROMEM && OPTEE help Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE trusted application STM32MP BSEC. @@ -303,7 +302,7 @@ config NVMEM_STM32_BSEC_OPTEE_TA config NVMEM_STM32_ROMEM tristate "STMicroelectronics STM32 factory-programmed memory support" depends on ARCH_STM32 || COMPILE_TEST - imply NVMEM_STM32_BSEC_OPTEE_TA + depends on OPTEE || !OPTEE help Say y here to enable read-only access for STMicroelectronics STM32 factory-programmed memory area. --=20 2.25.1