From nobody Sat Sep 13 01:49:36 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 511CEC05027 for ; Mon, 6 Feb 2023 10:28:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230407AbjBFK2W (ORCPT ); Mon, 6 Feb 2023 05:28:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230391AbjBFK2R (ORCPT ); Mon, 6 Feb 2023 05:28:17 -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 229A312F2F for ; Mon, 6 Feb 2023 02:28:16 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id bg13-20020a05600c3c8d00b003d9712b29d2so10398373wmb.2 for ; Mon, 06 Feb 2023 02:28:16 -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=VlcMT6L5u2sbpTqTSvr84Tp/Dxt8Vmtj1UFJ/L7vUi+I2aVS6gz53Er7ulAHoc/0Le JHro8lIslrBL9WHZxOum9VrQ4HPE0pYB8VwJywJfZycm7Czo0OazXxbvzimHfczvaLam ddhQYDA8dxggWIurr8schGAUd0VckMoJ2HS0U5W+pAM8Cu6pfnZmCbFnQ84BqmPkr6lK ja1TOnU7DFeWirqQtQGcQ85Y6GhioUgpaMRuQttOKf7fuQBdhHViEEjx9JFl06j3TFh/ zn5FscyDjvaCsoZuCFOUDG+ossC3HRCGUUCn6fyx3IoQ6B/3YYFIgNMg8yuESLfKH52P 9+0A== 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=543Vnf+gW1D0zXI3A5ylTGwr0xccCyQKsBLtsArFtXkM778BL/W2pv08Jr4pEKtBN+ 1P9NDiAZAqdKTaDPYMBYLhNV0azGizBsP7dgxYsDEXTbETUyEV3XjPNNLuQe8MVgwo65 K93sfsg5D0xxs8UX8Mss59l5yISnF3cnZiK6bcU91+OMi6CpoHyS8Croh790JOy0DV/X VRhht/6IRe0E2GAkc4LtFOXQCgIUYxc2buUjRrub0mR6CoB+xTxBieYlM24T+nCPCUQY lWJByJu6ST2rydSQ9evsZt+/kFBRr3nRNn5shKTwHjxd5sH5P0FTHW9VQppBUtls7WQQ l5MQ== X-Gm-Message-State: AO0yUKXtDmFTiNgHENIe/7GppKqkMwaeU8KIXhy5IiJoZ2s818wdXuAQ OD1d+JbHrd5MR63pwriZZP2yHx+PGhzma64E X-Google-Smtp-Source: AK7set/E3mR2r8DcMeQh5JZu/tw+bPma7hMf9kDfIXdqJ1o2WjEVKtGjStpC8VTKIsaypu+eK7eU1Q== X-Received: by 2002:a7b:c8ce:0:b0:3d9:ebf9:7004 with SMTP id f14-20020a7bc8ce000000b003d9ebf97004mr18003254wml.29.1675679294731; Mon, 06 Feb 2023 02:28:14 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:14 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Samuel Holland , Srinivas Kandagatla Subject: [RESEND PATCH 01/37] nvmem: sunxi_sid: Drop the workaround on A64 Date: Mon, 6 Feb 2023 10:27:23 +0000 Message-Id: <20230206102759.669838-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 15718C61DA4 for ; Mon, 6 Feb 2023 10:28:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230414AbjBFK2Z (ORCPT ); Mon, 6 Feb 2023 05:28:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230392AbjBFK2S (ORCPT ); Mon, 6 Feb 2023 05:28:18 -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 A13BC166DC for ; Mon, 6 Feb 2023 02:28:17 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id f47-20020a05600c492f00b003dc584a7b7eso10380252wmp.3 for ; Mon, 06 Feb 2023 02:28: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=wTC3NAL1hZxJOCcXWMuQzdITVQ+oLa3AAEmCazUtZWo=; b=coJ1KrAQZuALbf5TZA2QK0yc8M8+YC6IOP9jy67LmzfUSrIhaA59DL/yV3dv1zPCS5 nV/qiuW5g1lbj2dxWQj7hNcNw386PhM2nHtdoR0uWVWVRCx/wp4Nm6i2KFhkZV1m5vHc rUgCtFCyHe+/scV4EcfzULGqv5Z7P4pAE9AiVNikyNNycoBXdeFwNj6aU3DwlbZKMwVw ob5W52qqNkzBPko/JrgLCWiBipARRazj+/3Locu5grBdnFpHrcJMEPrSaTNKE8aEcsJP Pns4R0yt+SWxmqm3Tdh/ub7FRHuiPQNnujsiN0X4OhsZdVa+ybaMSzfkIen9/wv5HGyA iNzA== 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=Yig23y4tKf7MsPtb6aNxd2441vzFoErIl0/QSj++csmSn5RSdOGRdB+PsUpycX1SFJ R2xlnxGXpgCT1ISFObrvhAbPDk5UTr/qSQmMm7m6mejCVEUUvDZ9oUcV6BlWFVKpgp+a gpf5UM5CyUYf69+mLRwVxGgA7mR0u6pxa1p9x6Mpq8r6zpEPAXjaAKGumbNFh/YHtv9l CF7vJeajd++OJQ/awkftQ8LtkCSHY/E8nOobI/GRFIk7SoJF5u1kOSWloOVEtXSLSGpy rUEfjqh9kr31QqtUbN5i3pdGuyWfXFQBbhZG3M3XBmCm5IvwF3umDQo7sBQ9DWDLXvaR 6SxA== X-Gm-Message-State: AO0yUKWhPqakbvnG6jZq9xUsGUBv0MwI5EeNeSpLnLCLV+tMx+8KnjQ8 iCHZlLvffVPpMAKNKdX0aSZcDb6YxizmFP+9 X-Google-Smtp-Source: AK7set+9Tgk6o3qHR0hqcyy/xm8nsCsz1JkFC8+EGf6EBnSObjAcE9sl6Z3fvL71T4NlPBPP5AsHhA== X-Received: by 2002:a05:600c:35c7:b0:3e0:1a9:b1e0 with SMTP id r7-20020a05600c35c700b003e001a9b1e0mr3108242wmq.25.1675679296104; Mon, 06 Feb 2023 02:28:16 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:15 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, AngeloGioacchino Del Regno , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [RESEND PATCH 02/37] dt-bindings: nvmem: Fix qcom,qfprom compatibles enum ordering Date: Mon, 6 Feb 2023 10:27:24 +0000 Message-Id: <20230206102759.669838-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 D03E2C05027 for ; Mon, 6 Feb 2023 10:28:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230421AbjBFK21 (ORCPT ); Mon, 6 Feb 2023 05:28:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230398AbjBFK2T (ORCPT ); Mon, 6 Feb 2023 05:28:19 -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 C94B7193E1 for ; Mon, 6 Feb 2023 02:28:18 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id f47-20020a05600c492f00b003dc584a7b7eso10380311wmp.3 for ; Mon, 06 Feb 2023 02:28: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=Ezl79ZrFtdgcZgpVVd2789IBH+ROi3SQvtmwb7LRshQ=; b=UNSfkNUHP69hesTqR03SnzmbojA+Dmgg4kFifjECdA+/zclot7jct5bEoB0o2rAyzz A/Wn4n1qMbD1cU5TaYpAJJp1ypoLYf6Re4N3NdRQAK5FmXRJ8fsjPVI8B+rIHuFwoTzp mmCIUi9+jIhNWqklzc078GzqNte0Ujmvb7tJMJAlhvQ74absFMsolncO6IbnuBpLsLwl qcYmsM6gZtUwjo0RnpXd1DiX5EjbwSQl6SmKJ5oTqXCd5HjtJJWmGiOL09gOTazYgdy3 /zsRi+OFXT4EOv6RGdiowz3vo9RSCaO6Rg36EUK5wXMLFj68itIM16PSdHiIiQ7CNf1J MFEg== 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=ZoYYTE8kF/7A/LEzC06h73NdTf02yedx2y/TdByULNAsE/MWCAC7P+9cbiy66243n+ rqIeJOQbwQy7mRzz6RynfWFkn3Ydqht3lk/Pif0vQ/VtF3p1c4xhLL2VNvTAYSK01g/K lAGRZp5QmkEIyzaKYdrqJuGTQFTYUSVTymdaOgBi7SpmD1KJcZyZ+LQLHxRW6AyZbRh7 3gjLdIFLzeOuyzF2nRFfiaCCLfWt8cnqN7+fozigk258UmCGvxvrPBQ6q7mZF0dribIC M+kdpsjkmlq7Ag9oGZea7Y4kAw+M+YpfCPIYWyleAZ++ozD19Gor1iEIZvbkSV1MOYTJ pqJQ== X-Gm-Message-State: AO0yUKX/th9UlegSdvi0EqeBVc+sWVexcJQavFzcTcFMCYTYMH9skFYS LO8dOD0HiDJz1Svc5Xclmsf+Aw== X-Google-Smtp-Source: AK7set9JpPzjJsoz9IO77uoRNncjB79BlEZMvBc9rjjA0hiIKvyxI3lCbDAcYmVa6X82AUFJC9dw4w== X-Received: by 2002:a05:600c:3ba5:b0:3d3:4007:9c88 with SMTP id n37-20020a05600c3ba500b003d340079c88mr298709wms.18.1675679297369; Mon, 06 Feb 2023 02:28:17 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:16 -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: [RESEND PATCH 03/37] dt-bindings: nvmem: Add compatible for MSM8976 Date: Mon, 6 Feb 2023 10:27:25 +0000 Message-Id: <20230206102759.669838-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 C7608C05027 for ; Mon, 6 Feb 2023 10:28:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230432AbjBFK2b (ORCPT ); Mon, 6 Feb 2023 05:28:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53200 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230393AbjBFK2V (ORCPT ); Mon, 6 Feb 2023 05:28:21 -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 04A871556A for ; Mon, 6 Feb 2023 02:28:20 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id z13so814870wmp.2 for ; Mon, 06 Feb 2023 02:28: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=VFwznKCeayr2WD3soqgUqkepaQfJ5RmftUu8mIvFKwU=; b=FbqJDAJZ1kby56nnCTayJZWR1BNT4f4ynEC4N/FoiW+49sYjqmGbSVmZGtVvvaNOBL E2/Tdu8Tvqc5sCNVVnse9vS/VPI4KCmqDGasrzlwlus9DpyI84V9dlXgLpLDWIh7nt7x mfTzlg9ewYJrAL4xJy2i1pyHkeHDHYOKxNoEtA61iC/uRMAGpQGKDAzNDCa6comUVP7l 0nMD6uXJHWney5HLc+OXzo4gFuzfUvUBF7CHWYlXmZwEIqTOQqc+dGzJlldASr2xFURG Ev86I5345CoSyITcxnetvSlsYlBu2HQJXiKq5wPBDOdK+iW+IEeNN6VOnNzC/irgLDTn 4GRA== 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=OquH+ZaOXSrlNs5Ns8BE5WWgNMaMvQWebOhVo2G/z/QhZvB36YZ3tPT88C0dRghgr8 qwuH8OIRAgGDw9O5/7ToTYrCvvx4FbYXMlXRd903d+g5k3ZgQizkQky8uDEVgcv4grE1 KtWHtnMRxJMNJnE6p3cRnXp0+MGJuqWzQGvp7sVv5GBPckqtYcx1F2C5QX1/Ij0NrVpK gnz1Nxn/xIW5IXxdRwageGvzSvh2kwoSd3xIqkbECh+apEVCBcnD5HMG/6CLTWJz0xp5 QsHmqM8bo6frxpvmswNGRKbm3z7zALvT9qeta3XcQUCqMTwFnBisP+rqFkDjOvj0VWb0 limw== X-Gm-Message-State: AO0yUKWCCYMKS78DzkcxFB1TdFlMbn2tP9iEX9leyaPN9K3QK3HoZzGP vnA3XQ90gqiRTCKy07gLiMV1I5/kMj7OFuiR X-Google-Smtp-Source: AK7set+xSzpRJ6YEqbbW1xynvrbj5F+W9zLRaZ5lV8oTQBeA2msHd0K0h24IQR14AxY2eiwSxm+wrQ== X-Received: by 2002:a05:600c:16c4:b0:3dc:eaef:c1bb with SMTP id l4-20020a05600c16c400b003dceaefc1bbmr18516189wmn.35.1675679298561; Mon, 06 Feb 2023 02:28:18 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:17 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Richard Acayan , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [RESEND PATCH 04/37] dt-bindings: nvmem: qfprom: add sdm670 compatible Date: Mon, 6 Feb 2023 10:27:26 +0000 Message-Id: <20230206102759.669838-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 6C554C05027 for ; Mon, 6 Feb 2023 10:28:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230449AbjBFK2e (ORCPT ); Mon, 6 Feb 2023 05:28:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230402AbjBFK2W (ORCPT ); Mon, 6 Feb 2023 05:28:22 -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 1B037193E8 for ; Mon, 6 Feb 2023 02:28:21 -0800 (PST) Received: by mail-wm1-x335.google.com with SMTP id n28-20020a05600c3b9c00b003ddca7a2bcbso8357814wms.3 for ; Mon, 06 Feb 2023 02:28:21 -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=q7b8YklXP68I6TrEL2BynmvKOen6PVDc5E2pUk0eOw2KzrdQxEte0WayCrGTRSEBpH lNd48JFye1DOdpH3PcfpsX3mf4XXeL1hR+byILYP+UL8sSBOj/nypX6gAoNjByeLkBSF uBQmEt7RpFvbIFBMSM3VKxcZhIh6M9j4jgp9bD/1u6okypohKT/U1MuSUKiKUij7W8Vl 3CO5w4z/pSTxEfuP42lVepOGFtftzoFlERt3s+3CGD82sSq0b1YpXOYnWwCiloOzbpU5 xkXuVuutHMx+Ud+jANgw8SYyOGlGKIwBbx7w2lOi8lfrb+HFXzs/N5bvZe8THIRWDxns 4HKQ== 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=BfBSFoZYALFKi1Rf3viXENxoeZBv8eQnDE/tQswzIa4W1JS97DFoFWPDEvRR0CHCwO 5wFdnVZQ/ngo0qzJqWXV8yqdgKA7N4BS2qL4DbuzDDReMiDysvpDBMLsrB1zmwLeoP4L qRVaR8e/Xup84z01xb0jA7JSMudC8TfcVg6eeRCmuraWWNsOFWvhOEfNXeIiP5qnY2uC nHjMRV+84llqoqajw+VfrlCH5RR1U+F3dUGO8WJEp25jb/55Myv8e6fmkNSb4E+MudYc vUYl5qJlSabRX546Xcn0YQrYQr4Y873IibZ8jSpNtvV3GIkWlpW1+YAI1sBrTvbzgaBE fqHA== X-Gm-Message-State: AO0yUKVq6c6idasAah71l8aVTiUUIhRVcw9f0VpSqurGEZEHVTT6Kn+L ZmccO2YFyuiISj0PWutt1bolAg== X-Google-Smtp-Source: AK7set+jtSbBTiTK0xgtT0Hi5Z9S8Y8FLCxeMWMEZU3I3Jp0lQFes2eOhGEN6SIXt34pUeO6Y+0WVw== X-Received: by 2002:a05:600c:1ca2:b0:3dc:440f:8e9d with SMTP id k34-20020a05600c1ca200b003dc440f8e9dmr18797961wms.0.1675679299737; Mon, 06 Feb 2023 02:28:19 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:19 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [RESEND PATCH 05/37] dt-bindings: nvmem: Add compatible for SM8150 Date: Mon, 6 Feb 2023 10:27:27 +0000 Message-Id: <20230206102759.669838-6-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 52130C61DA4 for ; Mon, 6 Feb 2023 10:28:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230480AbjBFK2l (ORCPT ); Mon, 6 Feb 2023 05:28:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230406AbjBFK2W (ORCPT ); Mon, 6 Feb 2023 05:28:22 -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 6A603193F7 for ; Mon, 6 Feb 2023 02:28:21 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id z13so814952wmp.2 for ; Mon, 06 Feb 2023 02:28:21 -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=HNf48O+edFL+gd+ac+iZW3IHmiMPWW3NDTqvAg7i34SAZqgSZwRyHRqwma2XWEilq1 2Q0PyACyhMI/qtgCABSYB8VxQ+hi7z4gM7+SlqZC7TiiV5rWGqCU5HisubW0xaD5umg3 WG/6zXNxVtjRa3y3IOWlYIsPLYXJvKW2pyPRCjffh8+ad5+tj40KVwLaDNlp1yncsDvk 1skE2zbUpHhNjYdqzzB6o9USBd6rHYYMbU/0Qnv4fBxw/dnn0ztRf/GJGqztAaEnGUxw eM6DC6KbnjHZxUCN4rnnNJEeQ46kkhOZ4yoso32x6YVJb8XeIeIVpekeNhZ2nSaB6rX2 g4GQ== 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=o5shlnUC3D1ofw5UlIyKMPCY5Mk1Wdq4vwCSxN7zprAYfZO3DuMjTUwBcJ0/J2JZXV 4cBfE15MrZ9XoxnT0z0XTtdIyaj4HlIUuDZQ6DYCkytSlVuJ5/6U5cDZ6Y3e4C75up6U itz8cSOHhmWACL/mJ17KuVksNsSrNriXVRnGixWWfhwebAjbTGahzZRhCX8Q4clNPoqq iNHeWFa4xMWcdmIifeQKwWYedXn7ipUYUTZVQoltDW45fqYdumnxCRkHGtARWlWQ+Pz0 s4MnlKmT5Htuim0dHDXJA4QvOGWT3t7QimymQOEd3pjHAve3uFPkX7pqh4dik1CjMM5y wSjQ== X-Gm-Message-State: AO0yUKX/+UvUeCaKwNeHPiiorsgalQ+cwG/urQ3BI3R+4FzGU56EkFx6 PVcutoaI4bfwxxyde7tuROE6fiiZLqUQrAL8 X-Google-Smtp-Source: AK7set9N9UlgjBlUtK94Npw5MlrwmU2iwLDiAGGUIS4SGNz5eYQ+0ngbtv76cNziDtZkzEC8BOA6qA== X-Received: by 2002:a05:600c:c0d:b0:3dd:a4ad:ae45 with SMTP id fm13-20020a05600c0c0d00b003dda4adae45mr18523531wmb.12.1675679300986; Mon, 06 Feb 2023 02:28:20 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:20 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Konrad Dybcio , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [RESEND PATCH 06/37] dt-bindings: nvmem: Add compatible for SM8250 Date: Mon, 6 Feb 2023 10:27:28 +0000 Message-Id: <20230206102759.669838-7-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 5D391C61DA4 for ; Mon, 6 Feb 2023 10:28:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230458AbjBFK2h (ORCPT ); Mon, 6 Feb 2023 05:28:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230409AbjBFK2X (ORCPT ); Mon, 6 Feb 2023 05:28:23 -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 82B311E285 for ; Mon, 6 Feb 2023 02:28:22 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id f47-20020a05600c492f00b003dc584a7b7eso10380486wmp.3 for ; Mon, 06 Feb 2023 02:28: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=kmitWArQk6CIBydogs7WRFxwX5Xsu7yBBRQ1KBB+uN0=; b=Lop3uCo6vgck04Qh0CqM4OqKuptWGUYqFRM88SUFDwlOH+cFRwSH6JysgQPOPe5lgp TGmVUWKDupamweBmW+4moUeCDdUVZP2adIoNR/9yVFKT3zUUuzzDUDA7k/nf+hJ3dTR0 F8S5PgPXARRqezFkJ3q8GBWiKiqPohkmzMpyEHbMW34oHRJw8DrIp75YClxSs6Fo+p9c 9d/XL6lS6pvK1fksDw1Q3Rvhu3kI/K3XHgsc30OhJyk1JmAgfS1G5rT1oIjhRnr56cFC SeZPPFl6cd1clHDSiILHFCo/Wvc4kIbk8ODzSeC1sPC3A2sQfkoccmmb6tI9ECBCz/dK hiWw== 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=N5KY3jrsl1L0i15UDzjndDOCPmaQ2gqHIvbHXlv3wibNIEsLn6ksyW/tb+XwowrDUj ybxt7l0gXs/Ooxn75IDrG6aL26GSh+V5IHPKjdTKARytV39u5bmjv6vMVytlOMq4m9tx p6z5DI5+hrXI3AO5G3IaokgzA/7J0bnSAn3m2A/rCkF9pQPSjjlmXeptCAsInf2HN3ZP JwpOyhDCRBlzsKoxlEtH+YCVsXEq3cz0MyIvQi7yS1fArKnlXTPXy6Q4NaydaEBHKSj6 s050o0wWAsWLHOlQUhaIQaUx7t0DU8Bv+GKddN/DtsOs+y7hP7rXRO/HfONnw/ol5ltn +ilQ== X-Gm-Message-State: AO0yUKV8XbNhnsaVCTp45mvpWI9x92nxbvi7raeDA1uPeJtN5IZHywqP 9DsoXZFlp3YI5xykggW+T/MJQA7XH/pFYS5T X-Google-Smtp-Source: AK7set9YbmJdd54lG37QXhApdZSkNPcp7GqvzI+PT2R6cXx7X2H0nQLQRdA/IcBVsIqmgRqH5ypf/Q== X-Received: by 2002:a05:600c:1e1f:b0:3dc:40a0:3853 with SMTP id ay31-20020a05600c1e1f00b003dc40a03853mr10632304wmb.11.1675679302155; Mon, 06 Feb 2023 02:28:22 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:21 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, "Russell King (Oracle)" , Srinivas Kandagatla Subject: [RESEND PATCH 07/37] nvmem: core: remove spurious white space Date: Mon, 6 Feb 2023 10:27:29 +0000 Message-Id: <20230206102759.669838-8-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 05181C61DA4 for ; Mon, 6 Feb 2023 10:28:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230468AbjBFK2n (ORCPT ); Mon, 6 Feb 2023 05:28:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230415AbjBFK20 (ORCPT ); Mon, 6 Feb 2023 05:28:26 -0500 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8AC21EBC8 for ; Mon, 6 Feb 2023 02:28:24 -0800 (PST) Received: by mail-wm1-x329.google.com with SMTP id j29-20020a05600c1c1d00b003dc52fed235so8371184wms.1 for ; Mon, 06 Feb 2023 02:28: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=Y+cl5Ym56wJ7OQnEfR1Yodsc3crTZ07l528z+P6rSd8=; b=rYAmi04ikihq2pYTYtal+Kbg/qcy9Xlw1eH5vh8/eoAQqryD3KK82Rqdcvb5XbfqEF TUJ8i5DPNRoKCym4B9NeR8i1vkLlYC4Bl506EyJDhyGJBNE7SjChymjYlN5Xc+treSh1 nncFp4RbeihZ4Idxf2RzQ/NwRM0CWRAwYwKWasbF08SuW0Ya4/WuQ6r2fBjURHDZo1nC M3wCa1Xk8SJjjWA7CN2DFBmZmofwaXZ9o7VJ19rRdpxEdro3Bz2idQajuDHntgtCIMIp Ivz0DJFInnUDz5vQHoIueDWo/kJA5dVhtZC0ABYKEXzdBDTl82StvyHG19hn4eH9tU3W 2BQA== 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=TvxYASKSBfdrSd5GM4pIlagx0U1UoHZ6R78qPDCuNLG4iCu14bS8yoIFnsmO99XOjc +PACt0LRuWBFSZCskYnrTSl7TpypWlZPlDUjwnNhH+80PyXaoKprtmU76qkMqaEsBQZF pGq+PLS84QcEOsSn1QO+s7ChJeI41jvr60yxkcpcjXFaw7DpdmRyWx0Y3RBGTHzVO2cp zMNuRbC8CALibldhLkkO8trC7iRQ3Cxlvaj7XBAiPU1/V15roRGzPIulmERnJnLMVum3 jrwSqbtKEwucck8zKW87avzJG+VbRFtXL+zVXZaL59yCWrMdBd4EaGXl34svUs0zp2lc T72Q== X-Gm-Message-State: AO0yUKU0oAtj8n2Z/sKqh1lKI+fSU/r08jFpWNJfwtoXk8Retu1TBYlb N3Lh6EUWr7eB7ds1fCZt3qNQyw== X-Google-Smtp-Source: AK7set8bLyJf74k+8GqZ03t23nXD0FvX3cHMWeKf0axU0qbupjbLJmX6hCJXm1xQ3pecDouqeUHcCQ== X-Received: by 2002:a05:600c:3110:b0:3df:ee64:4814 with SMTP id g16-20020a05600c311000b003dfee644814mr9845095wmo.20.1675679303345; Mon, 06 Feb 2023 02:28:23 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:22 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Andrew Lunn , Jakub Kicinski , Srinivas Kandagatla Subject: [RESEND PATCH 08/37] net: add helper eth_addr_add() Date: Mon, 6 Feb 2023 10:27:30 +0000 Message-Id: <20230206102759.669838-9-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 97C35C61DA4 for ; Mon, 6 Feb 2023 10:28:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230504AbjBFK2q (ORCPT ); Mon, 6 Feb 2023 05:28:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230430AbjBFK2a (ORCPT ); Mon, 6 Feb 2023 05:28:30 -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 ED41619693 for ; Mon, 6 Feb 2023 02:28:25 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id l21-20020a05600c1d1500b003dfe462b7e4so4458694wms.0 for ; Mon, 06 Feb 2023 02:28: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=bZk++rAGilP0se2vyyYc9G9oc9KF7qnie14AIpwjJ4k=; b=rca3RaQWSAWTwMrwC2qwAd1ACrtzv5VYts1LFzO6PW0TfzH1ExJydgnSjVsH1f8kc6 Pzgd9cpUisQE3NaO43FmPYKayhnkGOAoIdtiA1r0B5d3z9LF49zs81yvBOfVMkQQlE5w ob7E2l9EZG7eUqJIMB2nu3uK46Y7kCfkIMkV+sLolDsFrkZ7mW927zfRFSs3oZ8HmInP 3dwpJyH/yPNRVNaEnkL6y4+hP2s4ZcpM9j7iTCIBf12l4WzVOkJESYexMtWmrZVKCQWx iaAvINTpvQ0PsRji2qL1RSqJttIque7ByOyuMrsj1eJXS5Aq9dgIqOXEo0aXVT1P4sJJ CqPg== 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=HdloXrPOLQOrw/JYlX8FhBRj4YWR0Fxfl4EgK7uROQ23KagmyXQ4xWnExanzD//Usb 0DCJrguj1py9+QnN1Dn29vqD099n7aQS0HqXHfu39tXKpSZ5FIDZCv0l+pEAoxJVTlIP AYmJiOxnTIntCRvjUxA2wqE0EKJxdULQw73xZEVQHd4qMvclnA7xuFg3zTPAyX99aKAN KRRWnOQGTRajBJYzDd7Vg4rsBsBFwMPjYFYsOquVOFtzY3bIr01tT7nUjSIJPVqvDr7B riTj+6IY68bZDmXAWq6dv42cHE4v9ml3nyMLX4WwvT8dPVNdecUNQn+KthhDoCYs9QnA I7ZQ== X-Gm-Message-State: AO0yUKUy2FmWeGWSU2ptqY3bjYGhW/5kRcjyBDao+6hkNIHf9n5wpzcT nIaZVW/A2AQbCoKE/hmDcR0/2A== X-Google-Smtp-Source: AK7set/+0nRXyQIkGG+egaD6kOLzc7tJZdUrpo+U6pQedIztLn7Ur5vx6OLszjzgRdu6G8d0Dvzzlg== X-Received: by 2002:a7b:c388:0:b0:3db:2e6e:7826 with SMTP id s8-20020a7bc388000000b003db2e6e7826mr304431wmj.5.1675679304587; Mon, 06 Feb 2023 02:28:24 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:24 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Rob Herring , Srinivas Kandagatla Subject: [RESEND PATCH 09/37] of: base: add of_parse_phandle_with_optional_args() Date: Mon, 6 Feb 2023 10:27:31 +0000 Message-Id: <20230206102759.669838-10-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 E070DC05027 for ; Mon, 6 Feb 2023 10:28:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230511AbjBFK2s (ORCPT ); Mon, 6 Feb 2023 05:28:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230431AbjBFK2a (ORCPT ); Mon, 6 Feb 2023 05:28:30 -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 3A0661969C for ; Mon, 6 Feb 2023 02:28:26 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id m16-20020a05600c3b1000b003dc4050c94aso8349907wms.4 for ; Mon, 06 Feb 2023 02:28:26 -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=dUNPIWp5WTSOCDKia5k+jXCL26J1A9hep40mE5FWQns=; b=AXDA1USmva4sumEPKRwMr1USITH+OPrUm4S+vjWfJx9a08hCTxDJ1lbS8W/tjNnSE4 O564hE9Z2HP4DyRTU5LDPQArg6awoOWYo6KaIrpi/YIIuSIHjKB+xo2v93icpOoCdeSO aufPRwy7LZCXn2JQxYHuSlnZlRTi/4MMq9N0pB2IfCO/iRzcbPX2oNsK0R+cs7Z3A5Jw i/vIqeJbAUrRs+dvhS6PgOqXbhyqCNEVpjG9JwoSn/h/U32U29xKrgET28efxrtuXSvy i8WJVPSp467gk/FBVkCJ9yRpCJf53lCfifPybedQquagc5JfkxUQDVIOOoUNKELrB+aN xPgg== 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=dUNPIWp5WTSOCDKia5k+jXCL26J1A9hep40mE5FWQns=; b=D5UKilTI6hwf/AOcesd2/b6dsm4pw7eKzPftYJzumZ/7uLONgvWf0FL4vmC3Oz32ik lcMzoRsi5wM9jxbrJnHII/un8PrihTY146Lbe1v9YA+ptnPAp+obd2OqJc+6fRY/PP2z 4DEDwUXV3/44nGsNmSSNJL6voLeHnUc8IjqwhLoVoCVOZ2vC5pxqLkuAdMzQvC3edMma xowBUFQ6O5U0cdxWQL82NJtDyXj/Nb1IJo589Tewqs+NjqvPj21Z8YB87oUFnKmX93Xl Vm2yQFXRgOqjK61GjcEgBrpUOFXmfZhCav7fZ3e7istDniWIqridRfkXj2X5oyoXEvNV lEBA== X-Gm-Message-State: AO0yUKXN0F4WCYnkbDQsvdiv5BKIOwxKo2WBqe8nKN0mlp0O1qKG9QjJ 9YAj5adwHZotLSNaNBeSOL9Zyw== X-Google-Smtp-Source: AK7set+d+PC+FwXM1v22iDfA3Bwp6x8ofye9kNAZjMjBbW74A0UIRvCbnyO11+6U8svz5CJPhA4cyQ== X-Received: by 2002:a05:600c:3caa:b0:3da:270b:ba6b with SMTP id bg42-20020a05600c3caa00b003da270bba6bmr20017963wmb.41.1675679305824; Mon, 06 Feb 2023 02:28:25 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:25 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Miquel Raynal , Rob Herring , Srinivas Kandagatla Subject: [RESEND PATCH 10/37] of: property: make #.*-cells optional for simple props Date: Mon, 6 Feb 2023 10:27:32 +0000 Message-Id: <20230206102759.669838-11-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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..3043ca7735db 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1256,8 +1256,8 @@ static struct device_node *parse_suffix_prop_cells(st= ruct device_node *np, if (strcmp_suffix(prop_name, suffix)) return NULL; =20 - if (of_parse_phandle_with_args(np, prop_name, cells_name, index, - &sup_args)) + if (__of_parse_phandle_with_args(np, prop_name, cells_name, 0, index, + &sup_args)) return NULL; =20 return sup_args.np; --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 63B26C636D6 for ; Mon, 6 Feb 2023 10:28:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230513AbjBFK2u (ORCPT ); Mon, 6 Feb 2023 05:28:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230436AbjBFK2b (ORCPT ); Mon, 6 Feb 2023 05:28:31 -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 7C9A2193E6 for ; Mon, 6 Feb 2023 02:28:28 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id l37-20020a05600c1d2500b003dfe46a9801so6874165wms.0 for ; Mon, 06 Feb 2023 02:28: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=Yih36DUTKHT+LMXkgGyjPXAz+nin4ZdW7iSqMcxFtIs=; b=sSNa+1Xrm2NKTdPc8h7CLWC8VVYA2acPqHHZL93VnfRkPYW9H5LSGcpLaELJ9Wyucx HCLDEoqWfRuHHvRDQeAVVj9+EfDQYQf+SfgQfSIuybTiyZHTQnzoYBeX9ysjDAbTY50x KWyHelkYtl3/RQgOrJXEPct6LhJIkhWRdp+29M5E+I6NyUHSVGzv6HzlO/CPXry2y97Y KRu3jLX43nAN3ImLeuH1TZa36XAcmGwcP4j3LKF91LMwblxxDoj9TwC1ZFE4nXaECYf/ Jol5iBuk6xFkIcEMYHftXn0DFA6QDlsjx9LoLh/h7V/CXPjuQhxVJf7D/7mMGMq8G2Ly 619A== 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=Yih36DUTKHT+LMXkgGyjPXAz+nin4ZdW7iSqMcxFtIs=; b=D55hYb6n4mTIL23j5fV+PCnVgcs4XA7Aj4C7tFintGpiK3T09YtKNqkW0RQ1fCF+cF 1b+G+U4WqUhkymzylrIdqbZaTI0W0gV6L/MkytMoABOtxRTs/zqPp93Jm4hCx0FVHSO2 zJWYcE67PqMgKXcrRFmrSVIK8P6ZlobxQS4KiSR+uXqOHOXTN9T5o7n8u3q4Ic+9n7l/ wsdV6B9i/TrffY1/rtQIWoqTKcWYHx/2ywdICRZxiwdAf1AiRxiBQ/8MUdA7PgjAFeQv Ho2YvJhLHh4ZfVRKCeGedSLleYuaZkuaKwJDmIFu2NbMFdLeFJBkZcBqOMOcggpURxMs qgRA== X-Gm-Message-State: AO0yUKUp/x0dhdyo7Pp9TMUR4s6CRAKGQR0/E85JXxGHFK9VAAY4c7cX wS/q6L6u34l9qR3mmMI8bp80Gw== X-Google-Smtp-Source: AK7set9CSI8BjuMGdOWTl0pzAp+FYoeGP8ZSdlGp4TXHCz6xz01msdc7zaZh2Zu5vP8qgwTB8rBwLw== X-Received: by 2002:a05:600c:16c4:b0:3db:2098:17c0 with SMTP id l4-20020a05600c16c400b003db209817c0mr305026wmn.29.1675679307085; Mon, 06 Feb 2023 02:28:27 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:26 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Miquel Raynal , Rob Herring , Srinivas Kandagatla Subject: [RESEND PATCH 11/37] of: property: add #nvmem-cell-cells property Date: Mon, 6 Feb 2023 10:27:33 +0000 Message-Id: <20230206102759.669838-12-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 3043ca7735db..8d9ba20a8f90 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:49:36 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 C49BCC61DA4 for ; Mon, 6 Feb 2023 10:28:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230520AbjBFK2x (ORCPT ); Mon, 6 Feb 2023 05:28:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230445AbjBFK2d (ORCPT ); Mon, 6 Feb 2023 05:28:33 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D4F3196AE for ; Mon, 6 Feb 2023 02:28:29 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id hn2-20020a05600ca38200b003dc5cb96d46so10376170wmb.4 for ; Mon, 06 Feb 2023 02:28:29 -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=dOnPmfyYu1HYKBcyQgBB2ZCy1MdR1u2zmVl68Se00KFlS4rS8sJ0VgQmvYXxJGfF4x /NyyPn2ywoKgwrnbSQRi3ryBozKD4mIlh2kqO31N6K06WYYdTnOhJoU9m1lV/TSITJIn CD7FtjnUl8wdF1OvogSL0bxRtYBZsMoeBGzaQtXkZ3DfEefPc+KL6yEyw8XdS27HMMCW ATmV4OxmGucNC/ij1Wc9YZLNyCjBUCxx0KC/+CYYAZd5dRCGAlGfulhNLBw+9+WCpMii DKFvGdWV3X2w7KPcDdegHcrzfci8Vh3xF2Fw/M6Vemq+ImzZqWfsAFcCfSk6kTy70FoG 2MQQ== 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=xKGvJt0h5q7Hi/J8pAarkP4iaJ/wp5U+ZkY+Ia6Nu8WNf7v5n2461IJpIBrEcbt0If /WGrj162gDAa9u5woPQi8jpnbZivYsnnge7dTng0yepCol1qFfqEGoVadgEAKYwrsv2R RF+qEJgdNfaQE3g6cpECBLcHlKsnk/zCYCNc2rgxWrDIJAfY5BRCQ4P5cJ42ajfO8RRs 4qG9lAM0A3ZIzhayuA+BjLXtUzd/kEQK5l60CLngjZJ+IV8nL4SUK2icpwUdAMlUfxJl yH+3wbjWaXidharewaBDpAzN/lq1fcrz+WJuo2K/Na97+FPEadyqpAoISxvG/wMiBEu+ Znww== X-Gm-Message-State: AO0yUKV4av21Vykbml16p+tGWEwuzU8CdMsHRC67tuNmNq4bzuJ1s7Ch EyvMXt0OiYn2IrBK9W1zG+VlOA== X-Google-Smtp-Source: AK7set8wQwyzJo7cACuwZCM2gtXUEj5GHELBNe4HpXFlQ0zaKi4QYHTgEMJHDkBhU9KfQC22cH1EPQ== X-Received: by 2002:a7b:cbd8:0:b0:3df:e69a:2175 with SMTP id n24-20020a7bcbd8000000b003dfe69a2175mr7571010wmi.35.1675679308479; Mon, 06 Feb 2023 02:28:28 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:27 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 12/37] nvmem: core: add an index parameter to the cell Date: Mon, 6 Feb 2023 10:27:34 +0000 Message-Id: <20230206102759.669838-13-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 19F1AC636D6 for ; Mon, 6 Feb 2023 10:28:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230526AbjBFK24 (ORCPT ); Mon, 6 Feb 2023 05:28:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230433AbjBFK2d (ORCPT ); Mon, 6 Feb 2023 05:28:33 -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 52E3D1F5F7 for ; Mon, 6 Feb 2023 02:28:31 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id q8so8282449wmo.5 for ; Mon, 06 Feb 2023 02:28:31 -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=H+8wDGn6MwsJtorhe1b+KfobkWQ3JGlvl29JCF90CHFiNinpa+46Rj5HEIHW7HtO// vNX7iZermzGFKa4es1GinCckVqmrLOAySnJENWd0jkFnGAW3BPTlUqhatkDwekXtRVAQ c5DTb3AEy9h5/5xYm3kZBHbs5ZD+7d3Z8Xtts6BtWPAhKNLGaK0onVXlbENQE1dreML9 uN13ne2aVlE4RngNaBk1PpTAGWDi89jzO7Tc0ybLE2tKHu/OiQFfwd2L2oMfaXaka0el S8+4p6GonpQj8gV+V+ri4+0zW+CNg2udzQkChDD1iaFqjZIuXJ8E243m9inKTLNPLjcq r5ng== 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=ove2klrhUIRjTvGzxOdBIaLE/nnDrj09VZR748H9eDOPs7GDeJ0uf9sGYrWZlPWfQX pMqnMALamL5JlcDM42umoir6GIXkLR1Kq8R/skR6JQiOADN8OvyS13p/4ewnKNvDlWtv 507F3uEg/oSwFOLlJY/7PMNAhJwzL3SpivdWnqJtNkq4Vh1HMlBCn4jdry+uBhrCqltR EPooVZnK6Np8CEF7h0V4bqqmuSTr/wjyTedp4+l4lLx2SM0O7rDmmtOmUkkuJrdeWNet ThhLzkK8cemHi+/QN9KW3nS9ecv45TTCq9HuB5ROUSUkTrpEHY7euowgo396DBAeFNUv q85Q== X-Gm-Message-State: AO0yUKWs1p9+qsul41is27bFITEtnCs4i+oJVGDg3ZcYrHYZ07TmYdMd AZgFz6GEH9cUj+9z37QeOXMDHA== X-Google-Smtp-Source: AK7set+umTGOJRDhELbFIDMf0pl8JAvB02wJpVkIdr1emtiaE4hiCdHMQi532k0MeAHd4z/GZEtixQ== X-Received: by 2002:a05:600c:35ca:b0:3df:f7cc:4da2 with SMTP id r10-20020a05600c35ca00b003dff7cc4da2mr6317627wmq.16.1675679309879; Mon, 06 Feb 2023 02:28:29 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:29 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 13/37] nvmem: core: move struct nvmem_cell_info to nvmem-provider.h Date: Mon, 6 Feb 2023 10:27:35 +0000 Message-Id: <20230206102759.669838-14-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 C5483C61DA4 for ; Mon, 6 Feb 2023 10:29:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231142AbjBFK3B (ORCPT ); Mon, 6 Feb 2023 05:29:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230447AbjBFK2e (ORCPT ); Mon, 6 Feb 2023 05:28:34 -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 A19AD1F90F for ; Mon, 6 Feb 2023 02:28:32 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id u10so5232218wmj.3 for ; Mon, 06 Feb 2023 02:28: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=IgWqiYoy7iTVqZHJ21rDyJ80SvbTnPhWOGsjkHQz9g4=; b=lOgUCVCaqxODdj7tEr6IKs0wSFLSUJHKj/ZaTYqNh6vopq7DlAw54+J3DDqkOzsiVm 7eGQRGHSTi92g6vZa9EuFoxMJiH9Q44cnyEQ9ZBRG14MUd3WnS8xAgdgRJnjy/3jV3jf 7R8aIt2IxJb1gN9uBelcLGVJ5XxObArKF7IZ/BWprbE4CWfqpucAlfPPeWpb4cApBxOF JoBEze0h9g0KhMPeYPR0jBV6f960jaEPLCImi0905U9Y2uF6e+YLzSDYeuliD05LpkCb ckedOyxOEvR88dPoEi80JbyFsw84Jg/t5waeR1YZDXhEun9Q1T/5Eg+/dXU7gz1FiV1J gVIA== 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=30kYIhT1t3PkRqY0isM0NAAefBmH5e05EJjhOOXzSouM4MseHxFvlWWosCw50gUlJ3 wVlyQb6H2kJaK/KD39Cho9WaxJ924F055MVMONDI+aXPoJVZ4rxEqSyJKkWMoFIHxe0Q WCLXJsB6sGYMHD1UbAsdukAVjiZWshNYQOozpeAE/l46uXPCXzCbwLvma7/8PP3Q7AjJ gFrwuZMwk7/p+r9PImWhf1qkhiCHrlTayE13yC4rTC5p4q2YhlgW0bJUCKr3b7QGZbzx lMOKdFDybJ6rt8hPTPARBCq3U0I9wJAR1BIqq/6ayTCEImxV0Kn+g6Pkh1TiBwtxqDnr GjJQ== X-Gm-Message-State: AO0yUKVcC6MSGNHeB8Gse9wPgG5s5pqMv+MkFv4hluNvKHj+Pv7cWEl4 preZzA8ExxXph48DObmr3jAsaQ== X-Google-Smtp-Source: AK7set/a8CAAE/8yx5qiwWDYyjEXEdS3iypgT62qS9oDUUzu8kmty84wC3MigpS9tTCYHSjbYW+SlQ== X-Received: by 2002:a05:600c:245:b0:3db:887:8c8c with SMTP id 5-20020a05600c024500b003db08878c8cmr17652380wmj.27.1675679311137; Mon, 06 Feb 2023 02:28:31 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:30 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 14/37] nvmem: core: drop the removal of the cells in nvmem_add_cells() Date: Mon, 6 Feb 2023 10:27:36 +0000 Message-Id: <20230206102759.669838-15-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 C1FD3C636D6 for ; Mon, 6 Feb 2023 10:29:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229605AbjBFK3D (ORCPT ); Mon, 6 Feb 2023 05:29:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230457AbjBFK2h (ORCPT ); Mon, 6 Feb 2023 05:28:37 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C20041EFC8 for ; Mon, 6 Feb 2023 02:28:33 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id n13so8281487wmr.4 for ; Mon, 06 Feb 2023 02:28: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=RiCtgga95+oBIC2lKHYt0aFS1kvbxISlsHgDAHK16wM=; b=XlA+AKCidfq2z3vth6GCD05fWjyeJOxPaAcP/hpOaKlol9GAsKYK+Rlt1oPB53CMgj jaonf8GJBWVyN2c3iWBBvz3pyAbtXFcZJyVQ2BU/K8Jb18AraaJO9En/fTkRjJUIXvYo XJ5sgs5aIsQ4M60T7EocbLI0T438by3b9XBHmlKXG8TENzwhjOsLmQwHr3Z7CC9gFeiS T0MDsjGF0GZnZqEe1JEBVA5kvtUXpjL3L52yGB9f3h1SYdw8r7EFBpCMzkhzLE/4vIJx aWj1RmRoVVhqFDorZUny7K748Gete6QAK7vPboHurCEeJcg9txDoYyEkReu//YPc6kVF E3yw== 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=Fzo2DwJL1G3tff30fLVaKPonb+hq7kRkjqJIC6ufzn1aDeFvtsuU+qyMSbyWLOAzDf N/on13/po6u8huxPw4pC1j/AzdFQXYe6GKS31uOfYS0TQwdOPPRP8WaoypwAe6tMVM7U ALucKAyAL2QBfs3W1EideAxDc0lvhMpyzK595Ov9+eJ/K9WjnZTZ8YBstCH02cvANSyX E6jl4O3tkvn0a9EFSTfPtVWyMIZ1XlVnFiuMzxHAWErIvnTJoBIzIvRyb4+SljjCtnAI 0WzV9cqv0Xztl1n7FCMHkEgEQiHFvGtAB2zk7INl+TOIwrBwABgR6AvRmQULnmM2QWxp 76Tg== X-Gm-Message-State: AO0yUKWpk9PUaZTGVx0RY+wgNs2NJ7a3syAmWCyIdhkMs9c4DQK90TGT bgeg7CFZLXmt3B3W3qyxX7VbBA== X-Google-Smtp-Source: AK7set/RIOftW6+XnvmGVNEKFt1mA6TD1CpnFypvQyFfnqQL5snkmmlD/+srAvOaiW/AtDtUInb/qg== X-Received: by 2002:a1c:7c0e:0:b0:3dc:4548:abe6 with SMTP id x14-20020a1c7c0e000000b003dc4548abe6mr18036017wmc.12.1675679312345; Mon, 06 Feb 2023 02:28:32 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:31 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 15/37] nvmem: core: add nvmem_add_one_cell() Date: Mon, 6 Feb 2023 10:27:37 +0000 Message-Id: <20230206102759.669838-16-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 3DEF4C05027 for ; Mon, 6 Feb 2023 10:29:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231160AbjBFK3F (ORCPT ); Mon, 6 Feb 2023 05:29:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230462AbjBFK2i (ORCPT ); Mon, 6 Feb 2023 05:28:38 -0500 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1CAAD1EBC8 for ; Mon, 6 Feb 2023 02:28:35 -0800 (PST) Received: by mail-wm1-x332.google.com with SMTP id o36so8300750wms.1 for ; Mon, 06 Feb 2023 02:28:35 -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=sDpY0J/nG6QSE6RneUOkJa6qmtNn/t9zh2ccWxS7SgFOyDBWgYwGiE/5WTvqcdl+PC uIBgRQK5DzTAEOZ/ZBEPP9YXaQPwI8UnbkP5h0r2vkavGtsotmqbpLCYpOR92riP259f E7+1/RLgybW72AHdYbSnBw5+d6znnPoXWvwW+/6lgwVv4xPdbene882EYldXWv6wK3u/ TKwitfwWhoW6aNJddByx1cXWvxnpifbnlhqmVpU+77pXDCQdr2qn9BJXWlzbCkDYks9W B7g0yS17h/Hc1VN1KyDwVpSv8vKtj/XGfwhTXvpjdPXU3z2wYklAoLgu1JC5TsazqPpH 8Twg== 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=x9Mj6FkQujJjVPpGdlr3J7pYlpNr42Sy8QzS5O7BvLlpqzCkuVqgw4xhzRjwuC36Re LwwpeST1vpbu+UbB569100h5tG7S1bQ5vTpOM2mac9AcVFeDxK51eeIooO/K/6Pb21+c axtckOmw3wXycBCbALgel9n57WaeDCCAUYKLHsJnbv8nHi8+2q5FCELBENnmDsszgnKa c+c8/q7OK3TMYkpthicbh0+cFAD4XhK6Pzt/3/FaRqWHAop78VyK6q9rqRptmXs/t5P+ 8pNZrdWAgB5UoTvs0LHuTHCgw5Y2+6HrcEH1AWxBGKIcgYGM4fomZN7zfryrUXPXDkPQ cVsg== X-Gm-Message-State: AO0yUKWFmGWReBb5G/2LaaBW15B5LG4HPBS+S0nifpdjcl3VO3SqSZTI DUwn+WsgbiAJE6GLMZVCERREKxrNXlioAznt X-Google-Smtp-Source: AK7set+j3mzD54y3lcLXa4qNs5So7Zu9m87jIaahWbR0DPl9EMWmLf4KMDm5REgzGFvPA41uUHZKYQ== X-Received: by 2002:a05:600c:4e54:b0:3df:f7ba:14e1 with SMTP id e20-20020a05600c4e5400b003dff7ba14e1mr7425635wmq.8.1675679313654; Mon, 06 Feb 2023 02:28:33 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:33 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 16/37] nvmem: core: use nvmem_add_one_cell() in nvmem_add_cells_from_of() Date: Mon, 6 Feb 2023 10:27:38 +0000 Message-Id: <20230206102759.669838-17-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:36 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 8A718C61DA4 for ; Mon, 6 Feb 2023 10:29:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230274AbjBFK3I (ORCPT ); Mon, 6 Feb 2023 05:29:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230471AbjBFK2j (ORCPT ); Mon, 6 Feb 2023 05:28:39 -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 774FD21976 for ; Mon, 6 Feb 2023 02:28:35 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id l21-20020a05600c1d1500b003dfe462b7e4so4458949wms.0 for ; Mon, 06 Feb 2023 02:28:35 -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=LQ3xqq9ri4sdCK+2+MwS0GLKNg4Uj24vweXIgq6mgJI=; b=zirQDpLdB1EMMGWb17B7y1WskPFfo//0WI1A9AIEOUG+T8A6L+equak2girj7xZPFW O0/tvcRtdcE4HvGImU6+EETdedqQ+3y6169X7SxTc4oEzzm5hXZlI8nlHWHrRIex/hwm vwO1tff05xZDN5meVTw9rUZHKKS49hW6leaW7gVMm0aF+5mTBF/dJEpSXX0DpuNidZB2 DoLLHJ2ZEKKFB+jOLKPWw5jzjapdx+mwfPHrlknLWBT1M/aXWeITg01rNGU4098kHgX7 sEJ80LwjVxj9aAvFaMMnRSN/BuC//8EPQ1fwcwAhhwJzL4s8+obIYg5/FISB9H/FVlAt CL5A== 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=LQ3xqq9ri4sdCK+2+MwS0GLKNg4Uj24vweXIgq6mgJI=; b=txIJsOLz6i7ugIOYWTfWbaSQHXniwHYk+8kh1rNKMJypJoIw7/hxU9fD2buuMIWOeN 8/eNZhxq0TTIm9w1QWCl829R1tjnlOjH08Vu4/9m9Z3nRnHr3IxhTgg0mAYmWIxdtzM5 4pzIVCF6J+Jwg4TeE+UC4uGhZbsFGW99UavRqRtrSKPuF2K8U4L0VTwqCG43dKoD6E74 u+Oh+LyCL9jbhXhIcjwTttqEpJW7AymsuppYUoNlVbL2vBmSSCtfpOLzLc1nAZzTwv8n YJKUBpY6BpUR+6VRy/YA+efTYJP/SW0fpC0/s22sLXWy71nCGz/0u2i+0uFMmNkd7kNu useA== X-Gm-Message-State: AO0yUKVR3Hd4vnF3dWBSsen4mAdE95EVcbH0Sqo9GT5GlwZ6sd8QXlF1 sTr8uakfffWRBQRb2hpYbOFiyQ== X-Google-Smtp-Source: AK7set9HOfXJ8lq1+w/SCJ0gc5ufUibC8ixvYX+mc6vkd1E4mF7l+25PDCkIoZHY1yCNbi4RuF/1qg== X-Received: by 2002:a7b:c3c6:0:b0:3da:22a6:7b6b with SMTP id t6-20020a7bc3c6000000b003da22a67b6bmr18919268wmj.13.1675679314939; Mon, 06 Feb 2023 02:28:34 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:34 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Miquel Raynal , Srinivas Kandagatla Subject: [RESEND PATCH 17/37] nvmem: core: introduce NVMEM layouts Date: Mon, 6 Feb 2023 10:27:39 +0000 Message-Id: <20230206102759.669838-18-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 NVMEM layouts are used to generate NVMEM cells during runtime. Think of an EEPROM with a well-defined conent. For now, the content can be described by a device tree or a board file. But this only works if the offsets and lengths are static and don't change. One could also argue that putting the layout of the EEPROM in the device tree is the wrong place. Instead, the device tree should just have a specific compatible string. Right now there are two use cases: (1) The NVMEM cell needs special processing. E.g. if it only specifies a base MAC address offset and you need to add an offset, or it needs to parse a MAC from ASCII format or some proprietary format. (Post processing of cells is added in a later commit). (2) u-boot environment parsing. The cells don't have a particular offset but it needs parsing the content to determine the offsets and length. Co-developed-by: Miquel Raynal Signed-off-by: Miquel Raynal Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- Documentation/driver-api/nvmem.rst | 15 ++++ drivers/nvmem/Kconfig | 4 + drivers/nvmem/Makefile | 1 + drivers/nvmem/core.c | 118 +++++++++++++++++++++++++++++ drivers/nvmem/layouts/Kconfig | 5 ++ drivers/nvmem/layouts/Makefile | 4 + include/linux/nvmem-consumer.h | 7 ++ include/linux/nvmem-provider.h | 51 +++++++++++++ 8 files changed, 205 insertions(+) create mode 100644 drivers/nvmem/layouts/Kconfig create mode 100644 drivers/nvmem/layouts/Makefile diff --git a/Documentation/driver-api/nvmem.rst b/Documentation/driver-api/= nvmem.rst index e3366322d46c..de221e91c8e3 100644 --- a/Documentation/driver-api/nvmem.rst +++ b/Documentation/driver-api/nvmem.rst @@ -185,3 +185,18 @@ ex:: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 See Documentation/devicetree/bindings/nvmem/nvmem.txt + +8. NVMEM layouts +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +NVMEM layouts are yet another mechanism to create cells. With the device +tree binding it is possible to specify simple cells by using an offset +and a length. Sometimes, the cells doesn't have a static offset, but +the content is still well defined, e.g. tag-length-values. In this case, +the NVMEM device content has to be first parsed and the cells need to +be added accordingly. Layouts let you read the content of the NVMEM device +and let you add cells dynamically. + +Another use case for layouts is the post processing of cells. With layouts, +it is possible to associate a custom post processing hook to a cell. It +even possible to add this hook to cells not created by the layout itself. diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index 755f551426b5..0e10b5b094b9 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -21,6 +21,10 @@ config NVMEM_SYSFS This interface is mostly used by userspace applications to read/write directly into nvmem. =20 +# Layouts + +source "drivers/nvmem/layouts/Kconfig" + # Devices =20 config NVMEM_APPLE_EFUSES diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile index fa80fe17e567..4cf87ef6c24d 100644 --- a/drivers/nvmem/Makefile +++ b/drivers/nvmem/Makefile @@ -5,6 +5,7 @@ =20 obj-$(CONFIG_NVMEM) +=3D nvmem_core.o nvmem_core-y :=3D core.o +obj-y +=3D layouts/ =20 # Devices obj-$(CONFIG_NVMEM_APPLE_EFUSES) +=3D nvmem-apple-efuses.o diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 174ef3574e07..d2c427c5ebc6 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -40,6 +40,7 @@ struct nvmem_device { nvmem_reg_write_t reg_write; nvmem_cell_post_process_t cell_post_process; struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; void *priv; }; =20 @@ -74,6 +75,9 @@ static LIST_HEAD(nvmem_lookup_list); =20 static BLOCKING_NOTIFIER_HEAD(nvmem_notifier); =20 +static DEFINE_SPINLOCK(nvmem_layout_lock); +static LIST_HEAD(nvmem_layouts); + static int __nvmem_reg_read(struct nvmem_device *nvmem, unsigned int offse= t, void *val, size_t bytes) { @@ -728,6 +732,99 @@ static int nvmem_add_cells_from_of(struct nvmem_device= *nvmem) return 0; } =20 +int __nvmem_layout_register(struct nvmem_layout *layout, struct module *ow= ner) +{ + layout->owner =3D owner; + + spin_lock(&nvmem_layout_lock); + list_add(&layout->node, &nvmem_layouts); + spin_unlock(&nvmem_layout_lock); + + return 0; +} +EXPORT_SYMBOL_GPL(__nvmem_layout_register); + +void nvmem_layout_unregister(struct nvmem_layout *layout) +{ + spin_lock(&nvmem_layout_lock); + list_del(&layout->node); + spin_unlock(&nvmem_layout_lock); +} +EXPORT_SYMBOL_GPL(nvmem_layout_unregister); + +static struct nvmem_layout *nvmem_layout_get(struct nvmem_device *nvmem) +{ + struct device_node *layout_np, *np =3D nvmem->dev.of_node; + struct nvmem_layout *l, *layout =3D NULL; + + layout_np =3D of_get_child_by_name(np, "nvmem-layout"); + if (!layout_np) + return NULL; + + spin_lock(&nvmem_layout_lock); + + list_for_each_entry(l, &nvmem_layouts, node) { + if (of_match_node(l->of_match_table, layout_np)) { + if (try_module_get(l->owner)) + layout =3D l; + + break; + } + } + + spin_unlock(&nvmem_layout_lock); + of_node_put(layout_np); + + return layout; +} + +static void nvmem_layout_put(struct nvmem_layout *layout) +{ + if (layout) + module_put(layout->owner); +} + +static int nvmem_add_cells_from_layout(struct nvmem_device *nvmem) +{ + struct nvmem_layout *layout =3D nvmem->layout; + int ret; + + if (layout && layout->add_cells) { + ret =3D layout->add_cells(&nvmem->dev, nvmem, layout); + if (ret) + return ret; + } + + return 0; +} + +#if IS_ENABLED(CONFIG_OF) +/** + * of_nvmem_layout_get_container() - Get OF node to layout container. + * + * @nvmem: nvmem device. + * + * Return: a node pointer with refcount incremented or NULL if no + * container exists. Use of_node_put() on it when done. + */ +struct device_node *of_nvmem_layout_get_container(struct nvmem_device *nvm= em) +{ + return of_get_child_by_name(nvmem->dev.of_node, "nvmem-layout"); +} +EXPORT_SYMBOL_GPL(of_nvmem_layout_get_container); +#endif + +const void *nvmem_layout_get_match_data(struct nvmem_device *nvmem, + struct nvmem_layout *layout) +{ + const struct of_device_id *match; + + match =3D of_match_node(layout->of_match_table, nvmem->dev.of_node); + + return match ? match->data : NULL; +} +EXPORT_SYMBOL_GPL(nvmem_layout_get_match_data); + /** * nvmem_register() - Register a nvmem device for given nvmem_config. * Also creates a binary entry in /sys/bus/nvmem/devices/dev-name/nvmem @@ -834,6 +931,12 @@ struct nvmem_device *nvmem_register(const struct nvmem= _config *config) goto err_put_device; } =20 + /* + * If the driver supplied a layout by config->layout, the module + * pointer will be NULL and nvmem_layout_put() will be a noop. + */ + nvmem->layout =3D config->layout ?: nvmem_layout_get(nvmem); + if (config->cells) { rval =3D nvmem_add_cells(nvmem, config->cells, config->ncells); if (rval) @@ -848,6 +951,10 @@ struct nvmem_device *nvmem_register(const struct nvmem= _config *config) if (rval) goto err_remove_cells; =20 + rval =3D nvmem_add_cells_from_layout(nvmem); + if (rval) + goto err_remove_cells; + dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name); =20 rval =3D device_add(&nvmem->dev); @@ -862,6 +969,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_= config *config) nvmem_device_remove_all_cells(nvmem); if (config->compat) nvmem_sysfs_remove_compat(nvmem, config); + nvmem_layout_put(nvmem->layout); err_put_device: put_device(&nvmem->dev); =20 @@ -881,6 +989,7 @@ static void nvmem_device_release(struct kref *kref) device_remove_bin_file(nvmem->base_dev, &nvmem->eeprom); =20 nvmem_device_remove_all_cells(nvmem); + nvmem_layout_put(nvmem->layout); device_unregister(&nvmem->dev); } =20 @@ -1246,6 +1355,15 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_n= ode *np, const char *id) return ERR_PTR(-EINVAL); } =20 + /* nvmem layouts produce cells within the nvmem-layout container */ + if (of_node_name_eq(nvmem_np, "nvmem-layout")) { + nvmem_np =3D of_get_next_parent(nvmem_np); + if (!nvmem_np) { + of_node_put(cell_np); + return ERR_PTR(-EINVAL); + } + } + nvmem =3D __nvmem_device_get(nvmem_np, device_match_of_node); of_node_put(nvmem_np); if (IS_ERR(nvmem)) { diff --git a/drivers/nvmem/layouts/Kconfig b/drivers/nvmem/layouts/Kconfig new file mode 100644 index 000000000000..9ad3911d1605 --- /dev/null +++ b/drivers/nvmem/layouts/Kconfig @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0 + +menu "Layout Types" + +endmenu diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile new file mode 100644 index 000000000000..6fdb3c60a4fa --- /dev/null +++ b/drivers/nvmem/layouts/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for nvmem layouts. +# diff --git a/include/linux/nvmem-consumer.h b/include/linux/nvmem-consumer.h index 1f62f7ba71ca..fa030d93b768 100644 --- a/include/linux/nvmem-consumer.h +++ b/include/linux/nvmem-consumer.h @@ -239,6 +239,7 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_node= *np, const char *id); struct nvmem_device *of_nvmem_device_get(struct device_node *np, const char *name); +struct device_node *of_nvmem_layout_get_container(struct nvmem_device *nvm= em); #else static inline struct nvmem_cell *of_nvmem_cell_get(struct device_node *np, const char *id) @@ -251,6 +252,12 @@ static inline struct nvmem_device *of_nvmem_device_get= (struct device_node *np, { return ERR_PTR(-EOPNOTSUPP); } + +static inline struct device_node * +of_nvmem_layout_get_container(struct nvmem_device *nvmem) +{ + return ERR_PTR(-EOPNOTSUPP); +} #endif /* CONFIG_NVMEM && CONFIG_OF */ =20 #endif /* ifndef _LINUX_NVMEM_CONSUMER_H */ diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 0262b86194eb..535c5f9f3309 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -88,6 +88,7 @@ struct nvmem_cell_info { * @stride: Minimum read/write access stride. * @priv: User context passed to read/write callbacks. * @ignore_wp: Write Protect pin is managed by the provider. + * @layout: Fixed layout associated with this nvmem device. * * Note: A default "nvmem" name will be assigned to the device if * no name is specified in its configuration. In such case "" is @@ -109,6 +110,7 @@ struct nvmem_config { bool read_only; bool root_only; bool ignore_wp; + struct nvmem_layout *layout; struct device_node *of_node; bool no_of_node; nvmem_reg_read_t reg_read; @@ -142,6 +144,33 @@ struct nvmem_cell_table { struct list_head node; }; =20 +/** + * struct nvmem_layout - NVMEM layout definitions + * + * @name: Layout name. + * @of_match_table: Open firmware match table. + * @add_cells: Will be called if a nvmem device is found which + * has this layout. The function will add layout + * specific cells with nvmem_add_one_cell(). + * @owner: Pointer to struct module. + * @node: List node. + * + * A nvmem device can hold a well defined structure which can just be + * evaluated during runtime. For example a TLV list, or a list of "name=3D= val" + * pairs. A nvmem layout can parse the nvmem device and add appropriate + * cells. + */ +struct nvmem_layout { + const char *name; + const struct of_device_id *of_match_table; + int (*add_cells)(struct device *dev, struct nvmem_device *nvmem, + struct nvmem_layout *layout); + + /* private */ + struct module *owner; + struct list_head node; +}; + #if IS_ENABLED(CONFIG_NVMEM) =20 struct nvmem_device *nvmem_register(const struct nvmem_config *cfg); @@ -156,6 +185,14 @@ void nvmem_del_cell_table(struct nvmem_cell_table *tab= le); int nvmem_add_one_cell(struct nvmem_device *nvmem, const struct nvmem_cell_info *info); =20 +int __nvmem_layout_register(struct nvmem_layout *layout, struct module *ow= ner); +#define nvmem_layout_register(layout) \ + __nvmem_layout_register(layout, THIS_MODULE) +void nvmem_layout_unregister(struct nvmem_layout *layout); + +const void *nvmem_layout_get_match_data(struct nvmem_device *nvmem, + struct nvmem_layout *layout); + #else =20 static inline struct nvmem_device *nvmem_register(const struct nvmem_confi= g *c) @@ -179,5 +216,19 @@ static inline int nvmem_add_one_cell(struct nvmem_devi= ce *nvmem, return -EOPNOTSUPP; } =20 +static inline int nvmem_layout_register(struct nvmem_layout *layout) +{ + return -EOPNOTSUPP; +} + +static inline void nvmem_layout_unregister(struct nvmem_layout *layout) {} + +static inline const void * +nvmem_layout_get_match_data(struct nvmem_device *nvmem, + struct nvmem_layout *layout) +{ + return NULL; +} + #endif /* CONFIG_NVMEM */ #endif /* ifndef _LINUX_NVMEM_PROVIDER_H */ --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 4AC9FC05027 for ; Mon, 6 Feb 2023 10:29:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229695AbjBFK3Q (ORCPT ); Mon, 6 Feb 2023 05:29:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230454AbjBFK2m (ORCPT ); Mon, 6 Feb 2023 05:28:42 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77F631EBEC for ; Mon, 6 Feb 2023 02:28:37 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id k8-20020a05600c1c8800b003dc57ea0dfeso10413337wms.0 for ; Mon, 06 Feb 2023 02:28:37 -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=FiSe+GBuFOro9IU25G1dPaAB4qi2H5ERUtgYWOzK1rc=; b=trqOQmZboMzCVT6US8AA0xejQw3vI04MF20TX6/Kun5Wpt+WrwvHc/tKYY5mkmf2TR prhxOdHZmeKeGWcGz4SLbzXTM1EYK2U8GRm7fIqbNjebZ8OO+l25hNfhBYissXwMRkfh qEIiXzvX75dIZV35Ne+6XMZN0tPE5IlPyjzl6z9knrzhQpQxxn1uyRGX5xC1jrxzo0z6 lEA49lISeqpZ26DyqAm0hVE2vhQPYgMp5Ugv3Jki7s9Atq190I7ybef5EcdYae2e36PE vb4f+wlYGaRyPbwsdb2rkDjoy6/dkmayGkmZU0u7oylFmjWaOC8d/jt29IooFtVOoTy8 ta1w== 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=FiSe+GBuFOro9IU25G1dPaAB4qi2H5ERUtgYWOzK1rc=; b=sosjMxOfkTeiDrk4cDc4uC0CMBw9racL3fvT8Rojs6k0QDU7sH2tNn37PN7RiEXQJy rPuZSDbteWo2u0/g6+OyvfmdjKT9hprPiz0yWaVn0+XKoBHWe+QdFQGwYfQFsLZmRu/g TM+qVDEU3dauCJZlSG2PeNMzmnN7DT1flGWrCGCxqOt+EQLwAglecbQgtTGHQ0niVBmD Lzuy2EfJAThT8Bjb17MsA1Uad2nx+Mjg0jWTOjrD7DDmqzjcTWpCyVFMlALPrtEqrin7 sIGXMeoqHXXeLUc8zuNyUHjR1OKry09Fi6c+TEPZHWrXVlTFBagnho/xnFzrYOAyB4mN rmXg== X-Gm-Message-State: AO0yUKV2OOXxSDZJL+R7PAHcEZmylrge5JfSBQ6sq/YkY/Il4N6dDVRH hoo+md6hs9smK07RAGUJ68xeumcDXshgvNvq X-Google-Smtp-Source: AK7set+Snda63TAYsi68rur+gRuGXqvl/APszlqiglr3NbHqBVt8bApdPxkL+bg7HCFyrYGY4jaJlQ== X-Received: by 2002:a05:600c:314a:b0:3df:eeaa:816d with SMTP id h10-20020a05600c314a00b003dfeeaa816dmr6273008wmo.28.1675679316081; Mon, 06 Feb 2023 02:28:36 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:35 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 18/37] nvmem: core: add per-cell post processing Date: Mon, 6 Feb 2023 10:27:40 +0000 Message-Id: <20230206102759.669838-19-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 Instead of relying on the name the consumer is using for the cell, like it is done for the nvmem .cell_post_process configuration parameter, provide a per-cell post processing hook. This can then be populated by the NVMEM provider (or the NVMEM layout) when adding the cell. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 17 +++++++++++++++++ include/linux/nvmem-provider.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index d2c427c5ebc6..80051726b064 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -53,6 +53,7 @@ struct nvmem_cell_entry { int bytes; int bit_offset; int nbits; + nvmem_cell_post_process_t read_post_process; struct device_node *np; struct nvmem_device *nvmem; struct list_head node; @@ -469,6 +470,7 @@ static int nvmem_cell_info_to_nvmem_cell_entry_nodup(st= ruct nvmem_device *nvmem, cell->offset =3D info->offset; cell->bytes =3D info->bytes; cell->name =3D info->name; + cell->read_post_process =3D info->read_post_process; =20 cell->bit_offset =3D info->bit_offset; cell->nbits =3D info->nbits; @@ -1545,6 +1547,13 @@ static int __nvmem_cell_read(struct nvmem_device *nv= mem, if (cell->bit_offset || cell->nbits) nvmem_shift_read_buffer_in_place(cell, buf); =20 + if (cell->read_post_process) { + rc =3D cell->read_post_process(nvmem->priv, id, index, + cell->offset, buf, cell->bytes); + if (rc) + return rc; + } + if (nvmem->cell_post_process) { rc =3D nvmem->cell_post_process(nvmem->priv, id, index, cell->offset, buf, cell->bytes); @@ -1653,6 +1662,14 @@ static int __nvmem_cell_entry_write(struct nvmem_cel= l_entry *cell, void *buf, si (cell->bit_offset =3D=3D 0 && len !=3D cell->bytes)) return -EINVAL; =20 + /* + * Any cells which have a read_post_process hook are read-only because + * we cannot reverse the operation and it might affect other cells, + * too. + */ + if (cell->read_post_process) + return -EINVAL; + if (cell->bit_offset || cell->nbits) { buf =3D nvmem_cell_prepare_write_buffer(cell, buf, len); if (IS_ERR(buf)) diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 535c5f9f3309..3bfc23553a9e 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -54,6 +54,8 @@ struct nvmem_keepout { * @bit_offset: Bit offset if cell is smaller than a byte. * @nbits: Number of bits. * @np: Optional device_node pointer. + * @read_post_process: Callback for optional post processing of cell data + * on reads. */ struct nvmem_cell_info { const char *name; @@ -62,6 +64,7 @@ struct nvmem_cell_info { unsigned int bit_offset; unsigned int nbits; struct device_node *np; + nvmem_cell_post_process_t read_post_process; }; =20 /** --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 2196BC05027 for ; Mon, 6 Feb 2023 10:29:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231191AbjBFK3Y (ORCPT ); Mon, 6 Feb 2023 05:29:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229992AbjBFK2m (ORCPT ); Mon, 6 Feb 2023 05:28:42 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43F2D22038 for ; Mon, 6 Feb 2023 02:28:37 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id n13so8281652wmr.4 for ; Mon, 06 Feb 2023 02:28:37 -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=A1rofkASwOxqgmxowzyZ3fLwYQAi8p7kZIwCpQKFbL8=; b=ZDsI0S6LSv35qlLWy0gxYEEUwY/hD8wVbzkM8O36zG72K9N+E2qILqBhgyL3w/QbJz IpDMJyB3zo3j4l+dzJlZAJH83tjWMCtgCE41nFW4y4HVTlwXz079rI4DRCrXXpGpWjAq ucT3Rv1FKpvvpej/IMLCUe8yW3XGZ58UqYWrzDTUxFaqB5uNWg840d9qTdKMa73YkZhS Q1PRnZza7SfJOVFZhUzGEbWefJdtJbN8Vk64rLLI5MmwzkoksbPdAKoS4RACkL7kEtwt RfQG4sFk3jfMh1g2KXUe0MVNpTH8G3udFRpScepd/CbiTg6jq6vhGZ+49upNe18BMn2y NaNg== 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=A1rofkASwOxqgmxowzyZ3fLwYQAi8p7kZIwCpQKFbL8=; b=x9HZ9uIoI8khJxvzpFzGWOBNWQb1S8iXwr2xpaZFOUt7+4+kq0KpD56C4G+8JkQIjD 6Q2wcgI6aDrr4YMkU+LHVljeBDYpvQTpQDmAKOS5qPiHYJJM6vK9O+Eswg2MjqradsjF gpD1wB/cx7RtGcOTBbGjXT4u0+lLd48fqXrLuB7CcgRLHOiYYVcbfWzSI1uJaa0MaC2L 0dIGQYdFaiSXwrm25sEB5Cmuv9pMqG6m+ajYwgyjSlxm9HWE8nwoLJ/uE9x33wSnLAQ7 KkYWF1GYe8T+ESc/+5a6qPmbsVFAOnGu14A4fObtE5EHFrsYdnaN20dIb0FPsHbdnWtS Sk/g== X-Gm-Message-State: AO0yUKUzPlTBVHyVMHacs0t+zt1BVh/KC6CJXToRPzju60sm65oUgp6B YH/t/vGI2CgYVXh7cvONU2j88w== X-Google-Smtp-Source: AK7set8Vf2s3nMMbOf48JFVjmUNh94vRr+7sEXvJcrhbNzMfsgWX94JE7nmJYtVw59iUwZxrwNNYdg== X-Received: by 2002:a05:600c:358a:b0:3db:5f1:53a5 with SMTP id p10-20020a05600c358a00b003db05f153a5mr20756860wmq.20.1675679317487; Mon, 06 Feb 2023 02:28:37 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:36 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 19/37] nvmem: core: allow to modify a cell before adding it Date: Mon, 6 Feb 2023 10:27:41 +0000 Message-Id: <20230206102759.669838-20-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 Provide a way to modify a cell before it will get added. This is useful to attach a custom post processing hook via a layout. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 4 ++++ include/linux/nvmem-provider.h | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 80051726b064..216a8eb01d00 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -694,6 +694,7 @@ static int nvmem_validate_keepouts(struct nvmem_device = *nvmem) =20 static int nvmem_add_cells_from_of(struct nvmem_device *nvmem) { + struct nvmem_layout *layout =3D nvmem->layout; struct device *dev =3D &nvmem->dev; struct device_node *child; const __be32 *addr; @@ -723,6 +724,9 @@ static int nvmem_add_cells_from_of(struct nvmem_device = *nvmem) =20 info.np =3D of_node_get(child); =20 + if (layout && layout->fixup_cell_info) + layout->fixup_cell_info(nvmem, layout, &info); + ret =3D nvmem_add_one_cell(nvmem, &info); kfree(info.name); if (ret) { diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 3bfc23553a9e..be81cc88eabc 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -155,6 +155,8 @@ struct nvmem_cell_table { * @add_cells: Will be called if a nvmem device is found which * has this layout. The function will add layout * specific cells with nvmem_add_one_cell(). + * @fixup_cell_info: Will be called before a cell is added. Can be + * used to modify the nvmem_cell_info. * @owner: Pointer to struct module. * @node: List node. * @@ -168,6 +170,9 @@ struct nvmem_layout { const struct of_device_id *of_match_table; int (*add_cells)(struct device *dev, struct nvmem_device *nvmem, struct nvmem_layout *layout); + void (*fixup_cell_info)(struct nvmem_device *nvmem, + struct nvmem_layout *layout, + struct nvmem_cell_info *cell); =20 /* private */ struct module *owner; --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 48A70C61DA4 for ; Mon, 6 Feb 2023 10:29:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229964AbjBFK3f (ORCPT ); Mon, 6 Feb 2023 05:29:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230462AbjBFK3G (ORCPT ); Mon, 6 Feb 2023 05:29:06 -0500 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F7FD1E9DF for ; Mon, 6 Feb 2023 02:28:40 -0800 (PST) Received: by mail-wm1-x32d.google.com with SMTP id f47-20020a05600c492f00b003dc584a7b7eso10380998wmp.3 for ; Mon, 06 Feb 2023 02:28: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=2qJxrwfcLTXBaQBmmE6as0L4veHi/uh8tjNkkwxbsmQ=; b=aR0xlvy16wCdmaX9IDKoHB3K6u8mRttydDPEvNifYdPYbp1aW4vBYC13gz3okywIaJ NlerD07kTv7d5qaBlgfbkK9aNbsZnQ9zv4Pt3Y750V/55olJmDTjJP2OdQ4A2V5P0G3k BH97Gxpf4Wa+QOqOXTFIowhVIS5SagErhljt0LaCSh8/040DnyIRYDuKxBkqx8AbAcit tbN5EDuWNK54OlhTSuez2VKY1tsbr2o+UHMPRNJSxE3lxJ2/9WwvpvMTsCQBMuGBbQpr No65Ff258wWrHMHP7Docix22A5x+g7J6hVndF/rxkzUETITliSyVB7+qf6F1RozD5idV eZQA== 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=2qJxrwfcLTXBaQBmmE6as0L4veHi/uh8tjNkkwxbsmQ=; b=YVO9UTdffCb9R9z4n5JtU8t4q+dnH4joDYeafCblakasoCpZ4CCJcqSU6pm58hipqk 48SptRaAOZqeZFM9zuK9lpn3Dk0l8x6GykuqtiBxNCIGOYEaiGRqMJct6JZ67uk9PaiB kLzi3j1wCdth3H5+ZkBKm7ZAy1Mx7vqDaLAacUwuR3NrUbC7Qvozd883jayudesWyCvm 1NWghElAXsNgZ5B+aWIJzHMs5HIpfj08yxwBuidX0x390GB/5vFxIVjGX2FUX34RlxCO 7mQas5eWC+ppRLo2BYnwheORqJpLzE38nlXJ3FCy+mIu5tctxdOqH7Zr/wW8h3ZclpO+ RlLg== X-Gm-Message-State: AO0yUKUYbbjo9YV/JO8E/eUooTgB0y44wwxiN7CsWHqAG0UVtWhiintd wMI904uNpBMf25xmfI+OCtOGd7Q9b3fJIdmH X-Google-Smtp-Source: AK7set+QE6jjpdmllesbr+iJgpJFTFYZzDxuaNILkuZXMzJURk5i0qqYdtYEYDHaK73X0oGG4v8ATg== X-Received: by 2002:a05:600c:3caa:b0:3da:270b:ba6b with SMTP id bg42-20020a05600c3caa00b003da270bba6bmr20018547wmb.41.1675679319038; Mon, 06 Feb 2023 02:28:39 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:38 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 20/37] nvmem: imx-ocotp: replace global post processing with layouts Date: Mon, 6 Feb 2023 10:27:42 +0000 Message-Id: <20230206102759.669838-21-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 In preparation of retiring the global post processing hook change this driver to use layouts. The layout will be supplied during registration and will be used to add the post processing hook to all added cells. Signed-off-by: Michael Walle Tested-by: Michael Walle # on kontron-pitx-imx8m Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/imx-ocotp.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c index e9b52ecb3f72..ac0edb6398f1 100644 --- a/drivers/nvmem/imx-ocotp.c +++ b/drivers/nvmem/imx-ocotp.c @@ -225,18 +225,13 @@ static int imx_ocotp_read(void *context, unsigned int= offset, 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; + u8 *buf =3D data; + int i; =20 /* Deal with some post processing of nvmem cell data */ - if (id && !strcmp(id, "mac-address")) { - if (priv->params->reverse_mac_address) { - u8 *buf =3D data; - int i; - - for (i =3D 0; i < bytes/2; i++) - swap(buf[i], buf[bytes - i - 1]); - } - } + if (id && !strcmp(id, "mac-address")) + for (i =3D 0; i < bytes / 2; i++) + swap(buf[i], buf[bytes - i - 1]); =20 return 0; } @@ -488,7 +483,6 @@ static struct nvmem_config imx_ocotp_nvmem_config =3D { .stride =3D 1, .reg_read =3D imx_ocotp_read, .reg_write =3D imx_ocotp_write, - .cell_post_process =3D imx_ocotp_cell_pp, }; =20 static const struct ocotp_params imx6q_params =3D { @@ -595,6 +589,17 @@ static const struct of_device_id imx_ocotp_dt_ids[] = =3D { }; MODULE_DEVICE_TABLE(of, imx_ocotp_dt_ids); =20 +static void imx_ocotp_fixup_cell_info(struct nvmem_device *nvmem, + struct nvmem_layout *layout, + struct nvmem_cell_info *cell) +{ + cell->read_post_process =3D imx_ocotp_cell_pp; +} + +struct nvmem_layout imx_ocotp_layout =3D { + .fixup_cell_info =3D imx_ocotp_fixup_cell_info, +}; + static int imx_ocotp_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -619,6 +624,9 @@ static int imx_ocotp_probe(struct platform_device *pdev) imx_ocotp_nvmem_config.size =3D 4 * priv->params->nregs; imx_ocotp_nvmem_config.dev =3D dev; imx_ocotp_nvmem_config.priv =3D priv; + if (priv->params->reverse_mac_address) + imx_ocotp_nvmem_config.layout =3D &imx_ocotp_layout; + priv->config =3D &imx_ocotp_nvmem_config; =20 clk_prepare_enable(priv->clk); --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 45FEDC61DA4 for ; Mon, 6 Feb 2023 10:29:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231210AbjBFK3l (ORCPT ); Mon, 6 Feb 2023 05:29:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231182AbjBFK3X (ORCPT ); Mon, 6 Feb 2023 05:29:23 -0500 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4537D21A14 for ; Mon, 6 Feb 2023 02:28:42 -0800 (PST) Received: by mail-wm1-x336.google.com with SMTP id l37-20020a05600c1d2500b003dfe46a9801so6874627wms.0 for ; Mon, 06 Feb 2023 02:28:42 -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=DR9w7wcr4DxJXxKbzQwRT2qyu3/q2O3thBJlj1O/L4c=; b=u79opte5IWGA7gNit3Yr2fY+hAux2hPa7qMGAEhQIT9usb2DpPvV7tCvr/QPfllRAc VYMLI1cPqFyKkA5mfrA+s0AGji8UkGYdeCDxuHJFA61p8wOh611RGJ6F0ZOtU8+zVpVi VOXYlJTLLdnGoMERVY0iJmyGkydyn1+/dKe3XgInaZuhW+MrVcZmu64t9lZ5MZWFgCOC EAulcRMWXayGDLrfcWSrZPSU3gMQ/1q5cC/CmxGeLWlL4DLQ17k4T+NQ6fpn1TC6KLkQ NQxdnoDmctqj8AwGezvl8egjtAWW2xLEFffILzK12Prlr+EslfgSPCVBvAFAVOynaqJ0 nX2w== 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=DR9w7wcr4DxJXxKbzQwRT2qyu3/q2O3thBJlj1O/L4c=; b=XQg+ukwSUrBnxNEFHJRmJuRSDjQZeAWZ+kXcZ5wreDtKJB6L5oP53bPtZSNeUz4ZTl 5W2E/RpTe8XX8Fd6E0q7YVO6tv5bBHnkG4eHkxf6RW4kHYEPIJSTQs98hAgaKAkPE0f6 l1As/wgvCGp6mfjNnLEYW3JwOf+sNalEFsiOFN7NlhGraKSOAwFvF6KiYnYOkFrZEvEe mjRxetivgMHQ7tOk7VPDuijBoH75ezHNDd8xZWE8+I5HafwY4IjRpYkw3BIQrVikh6XH FyA0IaSAIOKFpc18Lmk3Gx3a/y6nqa8jBCnMsEM2F7W9fjgevrBqvOH5az/cW81Y4iyG 76tg== X-Gm-Message-State: AO0yUKXqPSVUokansAa6fUjllngy5VPscunipAAz48NdgaT5zyXQblZw OIfY/aL6k+T8roU48PoU5A/uIy7f2mufchZo X-Google-Smtp-Source: AK7set+UdntrbbekbCxkuEhueB/mIdg02VNDk7SChoV3/LCU6GeKOogsTvCMtAz33cFJdoUEp7PKDQ== X-Received: by 2002:a7b:cd17:0:b0:3dc:5342:4132 with SMTP id f23-20020a7bcd17000000b003dc53424132mr18548794wmj.4.1675679320310; Mon, 06 Feb 2023 02:28:40 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:39 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 21/37] nvmem: cell: drop global cell_post_process Date: Mon, 6 Feb 2023 10:27:43 +0000 Message-Id: <20230206102759.669838-22-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 There are no users anymore for the global cell_post_process callback anymore. New users should use proper nvmem layouts. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 9 --------- include/linux/nvmem-provider.h | 2 -- 2 files changed, 11 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 216a8eb01d00..ae59d9cb901c 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -38,7 +38,6 @@ struct nvmem_device { unsigned int nkeepout; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; - nvmem_cell_post_process_t cell_post_process; struct gpio_desc *wp_gpio; struct nvmem_layout *layout; void *priv; @@ -893,7 +892,6 @@ struct nvmem_device *nvmem_register(const struct nvmem_= config *config) nvmem->type =3D config->type; nvmem->reg_read =3D config->reg_read; nvmem->reg_write =3D config->reg_write; - nvmem->cell_post_process =3D config->cell_post_process; nvmem->keepout =3D config->keepout; nvmem->nkeepout =3D config->nkeepout; if (config->of_node) @@ -1558,13 +1556,6 @@ static int __nvmem_cell_read(struct nvmem_device *nv= mem, return rc; } =20 - if (nvmem->cell_post_process) { - rc =3D nvmem->cell_post_process(nvmem->priv, id, index, - cell->offset, buf, cell->bytes); - if (rc) - return rc; - } - if (len) *len =3D cell->bytes; =20 diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index be81cc88eabc..d3d7af86a283 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -85,7 +85,6 @@ struct nvmem_cell_info { * @no_of_node: Device should not use the parent's of_node even if it's !N= ULL. * @reg_read: Callback to read data. * @reg_write: Callback to write data. - * @cell_post_process: Callback for vendor specific post processing of cel= l data * @size: Device size. * @word_size: Minimum read/write access granularity. * @stride: Minimum read/write access stride. @@ -118,7 +117,6 @@ struct nvmem_config { bool no_of_node; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; - nvmem_cell_post_process_t cell_post_process; int size; int word_size; int stride; --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 1A255C61DA4 for ; Mon, 6 Feb 2023 10:29:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231223AbjBFK3o (ORCPT ); Mon, 6 Feb 2023 05:29:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231199AbjBFK3Y (ORCPT ); Mon, 6 Feb 2023 05:29:24 -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 9ED67222FD for ; Mon, 6 Feb 2023 02:28:43 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id f23-20020a05600c491700b003dff4480a17so2165497wmp.1 for ; Mon, 06 Feb 2023 02:28:43 -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=OlgQhz1wWZHgj4L9ZFSLZgiqIbO7/bsHrgNAPDxm69g=; b=uEOtCxamU2FEeYztMe6sLSIfwGm16K9OJnqFJY3ILzBo3xoTlgSPuaDm6a/a4YegsF a527CSzq54KGgEP3SaIwchbMOIcuEh/+6qXCNDg7/Xvg2RMaHI5rYqOtOj6Vt2h4zDOl z2+wReloMKAGeFv2VuI8Tr2XVfThDxzQGAVPmqtp2axu8J+48DsOHsRqJjt5rRfDnVp1 CFXIz1SUAzmTAwUIc5vYtSjcjIoBUsnjTY3OqWw3Oxs5ovssTDtdjz2bfyVxGKjd66VB U2BUEBW36qjWx9aK9+4K569LDq/tQvx82Q2ikb9rrac5hA2cjopo57ThHPygmB92wFt1 Znew== 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=OlgQhz1wWZHgj4L9ZFSLZgiqIbO7/bsHrgNAPDxm69g=; b=il9LdpIZT+Lq6+mOIvSnsw48UK1Jbhg5FT0E8eKw5EV46IjUlV+Padolln/5TMpeck 32Q/gGbYqLguZKP/dEUntylW2/xjWG11uvvbTc+ngNMDahINda2uxbjqlzxsg3aUEKCa J5lYJFssWsl3xA6qvopU3E1P4UXOtbVAidqwEk8/Wn5m3O7Wf2cXOL1SsATSTppWA/A6 alramSQq8ncYZxMoJhlVAQpsLaxfP1e+dP43MOVtkeZd1/azgZ+Sk4cDA0+3HKOzxENG rh2MI9a+PM1oCFtI9y3akI1DeZW7mQgHzduqIiyQb2+4oy6KZGR8VaYAgijrYHVE8ahr Rq9w== X-Gm-Message-State: AO0yUKUwmjPsgT9dYF5uOb7Uh16nnv92ImrujbQl3G2MdIi6OAIXJK76 R7IzfkdiVc4i89VpNOLKLT2lbg== X-Google-Smtp-Source: AK7set+jNvQiQc0puaD/LiLJjFfzeezvD62gGBk5wwoChQTLa0cne0s8eA08wN5TXSJA6At1kiwJnQ== X-Received: by 2002:a05:600c:b88:b0:3df:9858:c033 with SMTP id fl8-20020a05600c0b8800b003df9858c033mr10674011wmb.8.1675679321432; Mon, 06 Feb 2023 02:28:41 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:40 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 22/37] nvmem: core: provide own priv pointer in post process callback Date: Mon, 6 Feb 2023 10:27:44 +0000 Message-Id: <20230206102759.669838-23-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 It doesn't make any more sense to have a opaque pointer set up by the nvmem device. Usually, the layout isn't associated with a particular nvmem device. Instead, let the caller who set the post process callback provide the priv pointer. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 4 +++- include/linux/nvmem-provider.h | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index ae59d9cb901c..81ad6a4c4f86 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -53,6 +53,7 @@ struct nvmem_cell_entry { int bit_offset; int nbits; nvmem_cell_post_process_t read_post_process; + void *priv; struct device_node *np; struct nvmem_device *nvmem; struct list_head node; @@ -470,6 +471,7 @@ static int nvmem_cell_info_to_nvmem_cell_entry_nodup(st= ruct nvmem_device *nvmem, cell->bytes =3D info->bytes; cell->name =3D info->name; cell->read_post_process =3D info->read_post_process; + cell->priv =3D info->priv; =20 cell->bit_offset =3D info->bit_offset; cell->nbits =3D info->nbits; @@ -1550,7 +1552,7 @@ static int __nvmem_cell_read(struct nvmem_device *nvm= em, nvmem_shift_read_buffer_in_place(cell, buf); =20 if (cell->read_post_process) { - rc =3D cell->read_post_process(nvmem->priv, id, index, + rc =3D cell->read_post_process(cell->priv, id, index, cell->offset, buf, cell->bytes); if (rc) return rc; diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index d3d7af86a283..0cf9f9490514 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -20,7 +20,8 @@ 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, int i= ndex, - unsigned int offset, void *buf, size_t bytes); + unsigned int offset, void *buf, + size_t bytes); =20 enum nvmem_type { NVMEM_TYPE_UNKNOWN =3D 0, @@ -56,6 +57,7 @@ struct nvmem_keepout { * @np: Optional device_node pointer. * @read_post_process: Callback for optional post processing of cell data * on reads. + * @priv: Opaque data passed to the read_post_process hook. */ struct nvmem_cell_info { const char *name; @@ -65,6 +67,7 @@ struct nvmem_cell_info { unsigned int nbits; struct device_node *np; nvmem_cell_post_process_t read_post_process; + void *priv; }; =20 /** --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 47B11C636D6 for ; Mon, 6 Feb 2023 10:30:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229946AbjBFK36 (ORCPT ); Mon, 6 Feb 2023 05:29:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230408AbjBFK3Y (ORCPT ); Mon, 6 Feb 2023 05:29:24 -0500 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E8E021A36 for ; Mon, 6 Feb 2023 02:28:43 -0800 (PST) Received: by mail-wm1-x332.google.com with SMTP id o36so8301023wms.1 for ; Mon, 06 Feb 2023 02:28:42 -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=nqPT9IiPlOeT+18a7EVyxb18GhOwuqWu5IcugbyndEU=; b=VPzogrq9+w7q2CusTGpCio2ntl2twjUvKsQGqbhgMApQ8pIRb902eGRRIXXHwUbgGI 1vRwXZH5kils82X8+HfnFjXCiALqpENCMsY/ceWqkkV+640u3GhC4fmtWk+SbhIfKD6N ReKAvMLAHI5T7JqWTrU9QEgM9FA6AiJ3YnWh0UHmBpV/ZfsRX80bCk3966Of3Omuy+LV 9PB1mYdiqHa21fh6EBfgvIY++DD+2WYG839dCBZH9qa4AhH6I7LPhHdAHIfe6jvPnH9E HBaNMBBAHlEniH/Nw0XJPN7oQUHLqNZj166cYiggDhxVguiSEAZZXxEAJH8BJngcM4PP 7gmw== 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=nqPT9IiPlOeT+18a7EVyxb18GhOwuqWu5IcugbyndEU=; b=gdKsYuQ9XSIWL/cvuVOUkQgjL17wOpagF4otewiJ+M+P4RhAvARUDUHIgzyn6Kwr2M yJ+Iv9O5mvM9SLOTXjw/jqqOWIKUnCSIPPaUx84/WGYn4LuObQyCC7m2YGoG72CKOYED yMgVILszjhoQvCUT3/2SFpHMDbiZ/AUp21AyEwG9TnvshhjzsQ3rmYogBxxsSgWyc/AV SWbVdWG3qhQHgcKYhQfX4KaQc9Yf5icC59cmnIbMpempscFA23BpVj4ri2DwNz+HIv5E SNgPzNe3xHl8NXX6bOcRd6B6MR4LLDYqKsoZxU3vmjoBZmXi6S38EzfrhqW6ilM3r5ER ghkg== X-Gm-Message-State: AO0yUKUwfyrUFaFVeXqkC7mSFZP+M0tm7V681ak6tld3BcEnxs7jyznl vbTOh0dK0iIyKvB9jneuKt5Arg== X-Google-Smtp-Source: AK7set+qnnpD/32ZmOpfeVntU8PPttuK2DhYuxb4vY8t5ty/R/gT3aSnqboAWAg7szGlAPVye+YgXA== X-Received: by 2002:a05:600c:3ba3:b0:3dc:58a2:3900 with SMTP id n35-20020a05600c3ba300b003dc58a23900mr18736987wms.29.1675679322619; Mon, 06 Feb 2023 02:28:42 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:42 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 23/37] nvmem: layouts: add sl28vpd layout Date: Mon, 6 Feb 2023 10:27:45 +0000 Message-Id: <20230206102759.669838-24-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 This layout applies to the VPD of the Kontron sl28 boards. The VPD only contains a base MAC address. Therefore, we have to add an individual offset to it. This is done by taking the second argument of the nvmem phandle into account. Also this let us checking the VPD version and the checksum. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/layouts/Kconfig | 9 ++ drivers/nvmem/layouts/Makefile | 2 + drivers/nvmem/layouts/sl28vpd.c | 153 ++++++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 drivers/nvmem/layouts/sl28vpd.c diff --git a/drivers/nvmem/layouts/Kconfig b/drivers/nvmem/layouts/Kconfig index 9ad3911d1605..75082f6b471d 100644 --- a/drivers/nvmem/layouts/Kconfig +++ b/drivers/nvmem/layouts/Kconfig @@ -2,4 +2,13 @@ =20 menu "Layout Types" =20 +config NVMEM_LAYOUT_SL28_VPD + bool "Kontron sl28 VPD layout support" + select CRC8 + help + Say Y here if you want to support the VPD layout of the Kontron + SMARC-sAL28 boards. + + If unsure, say N. + endmenu diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile index 6fdb3c60a4fa..fc617b9e87d0 100644 --- a/drivers/nvmem/layouts/Makefile +++ b/drivers/nvmem/layouts/Makefile @@ -2,3 +2,5 @@ # # Makefile for nvmem layouts. # + +obj-$(CONFIG_NVMEM_LAYOUT_SL28_VPD) +=3D sl28vpd.o diff --git a/drivers/nvmem/layouts/sl28vpd.c b/drivers/nvmem/layouts/sl28vp= d.c new file mode 100644 index 000000000000..a36800f201a3 --- /dev/null +++ b/drivers/nvmem/layouts/sl28vpd.c @@ -0,0 +1,153 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include +#include + +#define SL28VPD_MAGIC 'V' + +struct sl28vpd_header { + u8 magic; + u8 version; +} __packed; + +struct sl28vpd_v1 { + struct sl28vpd_header header; + char serial_number[15]; + u8 base_mac_address[ETH_ALEN]; + u8 crc8; +} __packed; + +static int sl28vpd_mac_address_pp(void *priv, const char *id, int index, + unsigned int offset, void *buf, + size_t bytes) +{ + if (bytes !=3D ETH_ALEN) + return -EINVAL; + + if (index < 0) + return -EINVAL; + + if (!is_valid_ether_addr(buf)) + return -EINVAL; + + eth_addr_add(buf, index); + + return 0; +} + +static const struct nvmem_cell_info sl28vpd_v1_entries[] =3D { + { + .name =3D "serial-number", + .offset =3D offsetof(struct sl28vpd_v1, serial_number), + .bytes =3D sizeof_field(struct sl28vpd_v1, serial_number), + }, + { + .name =3D "base-mac-address", + .offset =3D offsetof(struct sl28vpd_v1, base_mac_address), + .bytes =3D sizeof_field(struct sl28vpd_v1, base_mac_address), + .read_post_process =3D sl28vpd_mac_address_pp, + }, +}; + +static int sl28vpd_v1_check_crc(struct device *dev, struct nvmem_device *n= vmem) +{ + struct sl28vpd_v1 data_v1; + u8 table[CRC8_TABLE_SIZE]; + int ret; + u8 crc; + + crc8_populate_msb(table, 0x07); + + ret =3D nvmem_device_read(nvmem, 0, sizeof(data_v1), &data_v1); + if (ret < 0) + return ret; + else if (ret !=3D sizeof(data_v1)) + return -EIO; + + crc =3D crc8(table, (void *)&data_v1, sizeof(data_v1) - 1, 0); + + if (crc !=3D data_v1.crc8) { + dev_err(dev, + "Checksum is invalid (got %02x, expected %02x).\n", + crc, data_v1.crc8); + return -EINVAL; + } + + return 0; +} + +static int sl28vpd_add_cells(struct device *dev, struct nvmem_device *nvme= m, + struct nvmem_layout *layout) +{ + const struct nvmem_cell_info *pinfo; + struct nvmem_cell_info info =3D {0}; + struct device_node *layout_np; + struct sl28vpd_header hdr; + int ret, i; + + /* check header */ + ret =3D nvmem_device_read(nvmem, 0, sizeof(hdr), &hdr); + if (ret < 0) + return ret; + else if (ret !=3D sizeof(hdr)) + return -EIO; + + if (hdr.magic !=3D SL28VPD_MAGIC) { + dev_err(dev, "Invalid magic value (%02x)\n", hdr.magic); + return -EINVAL; + } + + if (hdr.version !=3D 1) { + dev_err(dev, "Version %d is unsupported.\n", hdr.version); + return -EINVAL; + } + + ret =3D sl28vpd_v1_check_crc(dev, nvmem); + if (ret) + return ret; + + layout_np =3D of_nvmem_layout_get_container(nvmem); + if (!layout_np) + return -ENOENT; + + for (i =3D 0; i < ARRAY_SIZE(sl28vpd_v1_entries); i++) { + pinfo =3D &sl28vpd_v1_entries[i]; + + info.name =3D pinfo->name; + info.offset =3D pinfo->offset; + info.bytes =3D pinfo->bytes; + info.read_post_process =3D pinfo->read_post_process; + info.np =3D of_get_child_by_name(layout_np, pinfo->name); + + ret =3D nvmem_add_one_cell(nvmem, &info); + if (ret) { + of_node_put(layout_np); + return ret; + } + } + + of_node_put(layout_np); + + return 0; +} + +static const struct of_device_id sl28vpd_of_match_table[] =3D { + { .compatible =3D "kontron,sl28-vpd" }, + {}, +}; + +struct nvmem_layout sl28vpd_layout =3D { + .name =3D "sl28-vpd", + .of_match_table =3D sl28vpd_of_match_table, + .add_cells =3D sl28vpd_add_cells, +}; + +static int __init sl28vpd_init(void) +{ + return nvmem_layout_register(&sl28vpd_layout); +} +subsys_initcall(sl28vpd_init); --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 733F0C63797 for ; Mon, 6 Feb 2023 10:30:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229650AbjBFKaB (ORCPT ); Mon, 6 Feb 2023 05:30:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231156AbjBFK3d (ORCPT ); Mon, 6 Feb 2023 05:29:33 -0500 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB3FC227AE for ; Mon, 6 Feb 2023 02:28:46 -0800 (PST) Received: by mail-wm1-x329.google.com with SMTP id n28-20020a05600c3b9c00b003ddca7a2bcbso8358698wms.3 for ; Mon, 06 Feb 2023 02:28:46 -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=AE3M2/yhwK/yfMkId8ujWbLu0/ZXL1uAWfn/x+3jb4M=; b=k3AAZzYJrq3qu40FpHTzpgncdoVohC5Muj09kxEP9qrBF2OzrRT85Iv3lgMSR4sVQR Gi6zilW0eg5XVGjadckbWJjrEXOn9iG3c/KGbxHdEW3w2eV/iCu6LkrZOWn/Yrq1se94 NOXU7BGLOVBYBQ6sEHlO+fCpV9YUg4y7DV1X5ZIB1iCB+lCVIajFchwvhVX23fnO8b0X q757phh0fNjV0m4RECwZqqPlWgXSMU1vM4wVmDhK8px1YWe2x2+cAPTmeXorlidyU3yE 5eZBibLBVLgCdA8d9NNusaP0WEtp+3C6/ABRkunBpxw4MLXpUfvY12HYsf5RNZpokIz4 tlXA== 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=AE3M2/yhwK/yfMkId8ujWbLu0/ZXL1uAWfn/x+3jb4M=; b=Aw19w0SyLVAa1aGNJy/jUewgyJqUKzrfd59be0jiFTn+TqyjgtV4fRLj+gAGqwQaQI 010p6nc1xzUkB5V2ICRjqXxjgiFEB0LcKrlYOh5gT/0wBNGtlXpL+LRdR5S9ZxRlIs9k B3optkVbqEIRVP9LsO+P7zIWdj7WLRW6Q2CxUp+5q06KN+uA3RUuxjGdld1JGdE+Eq65 0VrpYiCVfSrNuXiyYfwP7exexzY+CoPIrSWpszTRy/DbizbCsuMFa9XY37dHqh5BiA98 /fE/EvHNB5+oAzsl75kG1ps6x2WsE13IcXBoG0FUKV/BCzGNdF2mTQ1MudVq+LCeohEa fFpA== X-Gm-Message-State: AO0yUKWfE4FXK30ZcBOIXxhmjMMrNBFKHfPY0gFXe6rpGoIT4oNcseWG qMhZc04g8hbbpqSFwC0gLbmotaY9wmf6cCG/ X-Google-Smtp-Source: AK7set9LIHb8h5pQLf2PzTA19U/1MYtxoMtks2BR2ZclGt3eubrR81sfBlXe4qgro3SVpUGDyaHHmw== X-Received: by 2002:a05:600c:3795:b0:3dc:5a13:c7d1 with SMTP id o21-20020a05600c379500b003dc5a13c7d1mr302308wmr.16.1675679324076; Mon, 06 Feb 2023 02:28:44 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:43 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 24/37] MAINTAINERS: add myself as sl28vpd nvmem layout driver Date: Mon, 6 Feb 2023 10:27:46 +0000 Message-Id: <20230206102759.669838-25-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 myself as a maintainer for the new sl28vpd nvmem layout driver. Signed-off-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 69d1e8ad52c5..a02a59628f5c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19222,6 +19222,12 @@ F: drivers/irqchip/irq-sl28cpld.c F: drivers/pwm/pwm-sl28cpld.c F: drivers/watchdog/sl28cpld_wdt.c =20 +SL28 VPD NVMEM LAYOUT DRIVER +M: Michael Walle +S: Maintained +F: Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml +F: drivers/nvmem/layouts/sl28vpd.c + SLAB ALLOCATOR M: Christoph Lameter M: Pekka Enberg --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 9A0ACC64EC3 for ; Mon, 6 Feb 2023 10:30:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231326AbjBFKaG (ORCPT ); Mon, 6 Feb 2023 05:30:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231169AbjBFK3e (ORCPT ); Mon, 6 Feb 2023 05:29:34 -0500 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C553C2195B for ; Mon, 6 Feb 2023 02:28:46 -0800 (PST) Received: by mail-wm1-x32d.google.com with SMTP id hn2-20020a05600ca38200b003dc5cb96d46so10376686wmb.4 for ; Mon, 06 Feb 2023 02:28:46 -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=XLce2VH8YKNQOYV+SBH0uUMTgH6/xIjPAdQIwW5Z5qY=; b=vaBBiI8+JaGuBgQL8SH5rmzu9csk+tbLw7UkMylSEiJiaVT25YF62jePR/yWDwTc63 b3Yms1/wTmaF1g7IuskSZqaqivLfKTM1ul7nKj1iyuazcmhBvfIyX2z8i75i8tSBFyey AmmVLEVSfslGsHZ965+3uL5vEyshNGZKjhPLkUvGpr8XLkvIrZk8HUISSMcYK5id2hW8 ogHPfyi8gquGtVZW+zoX7oK+FlsDzGjgpcKsPFDtIL7mxjlp39SLxUbfrXu7NK30wqOD HQv+vuPFLMjY7DFyH9Tu+f/Lqvrix07MvE2NGdlLmndfrlVCZT+kTuIwCdxVYPa30AH3 fpxA== 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=XLce2VH8YKNQOYV+SBH0uUMTgH6/xIjPAdQIwW5Z5qY=; b=2b/QXtYx+QgltZwuKTJkT+TrMErXnIoEBrwqic8EJvcEB7PN0B1Q1iJT/0dpFpPhqo nVf0MYpMKfE1Gc1J/cqj3J+IkAXlvc4s5biakZIOSEMpdfoDxZXrgJHba0+VP+eow/xZ dufev+RY7b21KUx7B5qf+jHzxONUkNkiZAiZsuLpHNiuV7wHmRw1yCJ53kEf0evtto2S JTCU005vRcuDeDKpv+ZI8Wn8u89hJzt+3e1EQ8EOxnndV+HKQh/eJ8hXb1u+su40bIJi kLfQIFtuhA0SyqVnwjkxYmvadkJpDeg0J8wJvpGa8fRgSEtBZ8XkV+LlvUiaW73FyG90 h3kQ== X-Gm-Message-State: AO0yUKVHiYoRfVCBNGZEvgeEUPAlHtdWsPv+zuymXfEEHc6Q91NpNLJ+ 2hSNuz/Bkica3Gmeg9hL1IUUOPu8/lhH+Biz X-Google-Smtp-Source: AK7set+0V2ZM877vUdEUfSkFCdoXo8cjBe/ng41ggjC/ZvrBJoG183fKhMYGsDoSOkIUJkjCwPIuZQ== X-Received: by 2002:a7b:c38f:0:b0:3dc:d5b:5f6a with SMTP id s15-20020a7bc38f000000b003dc0d5b5f6amr18531580wmj.30.1675679325223; Mon, 06 Feb 2023 02:28:45 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:44 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Miquel Raynal , Srinivas Kandagatla Subject: [RESEND PATCH 25/37] nvmem: layouts: Add ONIE tlv layout driver Date: Mon, 6 Feb 2023 10:27:47 +0000 Message-Id: <20230206102759.669838-26-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Miquel Raynal This layout applies on top of any non volatile storage device containing an ONIE table factory flashed. This table follows the tlv (type-length-value) organization described in the link below. We cannot afford using regular parsers because the content of these tables is manufacturer specific and must be dynamically discovered. Link: https://opencomputeproject.github.io/onie/design-spec/hw_requirements= .html Signed-off-by: Miquel Raynal Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/layouts/Kconfig | 9 ++ drivers/nvmem/layouts/Makefile | 1 + drivers/nvmem/layouts/onie-tlv.c | 244 +++++++++++++++++++++++++++++++ 3 files changed, 254 insertions(+) create mode 100644 drivers/nvmem/layouts/onie-tlv.c diff --git a/drivers/nvmem/layouts/Kconfig b/drivers/nvmem/layouts/Kconfig index 75082f6b471d..9ad50474cb77 100644 --- a/drivers/nvmem/layouts/Kconfig +++ b/drivers/nvmem/layouts/Kconfig @@ -11,4 +11,13 @@ config NVMEM_LAYOUT_SL28_VPD =20 If unsure, say N. =20 +config NVMEM_LAYOUT_ONIE_TLV + bool "ONIE tlv support" + select CRC32 + help + Say Y here if you want to support the Open Compute Project ONIE + Type-Length-Value standard table. + + If unsure, say N. + endmenu diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile index fc617b9e87d0..2974bd7d33ed 100644 --- a/drivers/nvmem/layouts/Makefile +++ b/drivers/nvmem/layouts/Makefile @@ -4,3 +4,4 @@ # =20 obj-$(CONFIG_NVMEM_LAYOUT_SL28_VPD) +=3D sl28vpd.o +obj-$(CONFIG_NVMEM_LAYOUT_ONIE_TLV) +=3D onie-tlv.o diff --git a/drivers/nvmem/layouts/onie-tlv.c b/drivers/nvmem/layouts/onie-= tlv.c new file mode 100644 index 000000000000..074c7c700845 --- /dev/null +++ b/drivers/nvmem/layouts/onie-tlv.c @@ -0,0 +1,244 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * ONIE tlv NVMEM cells provider + * + * Copyright (C) 2022 Open Compute Group ONIE + * Author: Miquel Raynal + * Based on the nvmem driver written by: Vadym Kochan + * Inspired by the first layout written by: Rafa=C5=82 Mi=C5=82ecki + */ + +#include +#include +#include +#include +#include + +#define ONIE_TLV_MAX_LEN 2048 +#define ONIE_TLV_CRC_FIELD_SZ 6 +#define ONIE_TLV_CRC_SZ 4 +#define ONIE_TLV_HDR_ID "TlvInfo" + +struct onie_tlv_hdr { + u8 id[8]; + u8 version; + __be16 data_len; +} __packed; + +struct onie_tlv { + u8 type; + u8 len; +} __packed; + +static const char *onie_tlv_cell_name(u8 type) +{ + switch (type) { + case 0x21: + return "product-name"; + case 0x22: + return "part-number"; + case 0x23: + return "serial-number"; + case 0x24: + return "mac-address"; + case 0x25: + return "manufacture-date"; + case 0x26: + return "device-version"; + case 0x27: + return "label-revision"; + case 0x28: + return "platforn-name"; + case 0x29: + return "onie-version"; + case 0x2A: + return "num-macs"; + case 0x2B: + return "manufacturer"; + case 0x2C: + return "country-code"; + case 0x2D: + return "vendor"; + case 0x2E: + return "diag-version"; + case 0x2F: + return "service-tag"; + case 0xFD: + return "vendor-extension"; + case 0xFE: + return "crc32"; + default: + break; + } + + return NULL; +} + +static int onie_tlv_mac_read_cb(void *priv, const char *id, int index, + unsigned int offset, void *buf, + size_t bytes) +{ + eth_addr_add(buf, index); + + return 0; +} + +static nvmem_cell_post_process_t onie_tlv_read_cb(u8 type, u8 *buf) +{ + switch (type) { + case 0x24: + return &onie_tlv_mac_read_cb; + default: + break; + } + + return NULL; +} + +static int onie_tlv_add_cells(struct device *dev, struct nvmem_device *nvm= em, + size_t data_len, u8 *data) +{ + struct nvmem_cell_info cell =3D {}; + struct device_node *layout; + struct onie_tlv tlv; + unsigned int hdr_len =3D sizeof(struct onie_tlv_hdr); + unsigned int offset =3D 0; + int ret; + + layout =3D of_nvmem_layout_get_container(nvmem); + if (!layout) + return -ENOENT; + + while (offset < data_len) { + memcpy(&tlv, data + offset, sizeof(tlv)); + if (offset + tlv.len >=3D data_len) { + dev_err(dev, "Out of bounds field (0x%x bytes at 0x%x)\n", + tlv.len, hdr_len + offset); + break; + } + + cell.name =3D onie_tlv_cell_name(tlv.type); + if (!cell.name) + continue; + + cell.offset =3D hdr_len + offset + sizeof(tlv.type) + sizeof(tlv.len); + cell.bytes =3D tlv.len; + cell.np =3D of_get_child_by_name(layout, cell.name); + cell.read_post_process =3D onie_tlv_read_cb(tlv.type, data + offset + si= zeof(tlv)); + + ret =3D nvmem_add_one_cell(nvmem, &cell); + if (ret) { + of_node_put(layout); + return ret; + } + + offset +=3D sizeof(tlv) + tlv.len; + } + + of_node_put(layout); + + return 0; +} + +static bool onie_tlv_hdr_is_valid(struct device *dev, struct onie_tlv_hdr = *hdr) +{ + if (memcmp(hdr->id, ONIE_TLV_HDR_ID, sizeof(hdr->id))) { + dev_err(dev, "Invalid header\n"); + return false; + } + + if (hdr->version !=3D 0x1) { + dev_err(dev, "Invalid version number\n"); + return false; + } + + return true; +} + +static bool onie_tlv_crc_is_valid(struct device *dev, size_t table_len, u8= *table) +{ + struct onie_tlv crc_hdr; + u32 read_crc, calc_crc; + __be32 crc_be; + + memcpy(&crc_hdr, table + table_len - ONIE_TLV_CRC_FIELD_SZ, sizeof(crc_hd= r)); + if (crc_hdr.type !=3D 0xfe || crc_hdr.len !=3D ONIE_TLV_CRC_SZ) { + dev_err(dev, "Invalid CRC field\n"); + return false; + } + + /* The table contains a JAMCRC, which is XOR'ed compared to the original + * CRC32 implementation as known in the Ethernet world. + */ + memcpy(&crc_be, table + table_len - ONIE_TLV_CRC_SZ, ONIE_TLV_CRC_SZ); + read_crc =3D be32_to_cpu(crc_be); + calc_crc =3D crc32(~0, table, table_len - ONIE_TLV_CRC_SZ) ^ 0xFFFFFFFF; + if (read_crc !=3D calc_crc) { + dev_err(dev, "Invalid CRC read: 0x%08x, expected: 0x%08x\n", + read_crc, calc_crc); + return false; + } + + return true; +} + +static int onie_tlv_parse_table(struct device *dev, struct nvmem_device *n= vmem, + struct nvmem_layout *layout) +{ + struct onie_tlv_hdr hdr; + size_t table_len, data_len, hdr_len; + u8 *table, *data; + int ret; + + ret =3D nvmem_device_read(nvmem, 0, sizeof(hdr), &hdr); + if (ret < 0) + return ret; + + if (!onie_tlv_hdr_is_valid(dev, &hdr)) { + dev_err(dev, "Invalid ONIE TLV header\n"); + return -EINVAL; + } + + hdr_len =3D sizeof(hdr.id) + sizeof(hdr.version) + sizeof(hdr.data_len); + data_len =3D be16_to_cpu(hdr.data_len); + table_len =3D hdr_len + data_len; + if (table_len > ONIE_TLV_MAX_LEN) { + dev_err(dev, "Invalid ONIE TLV data length\n"); + return -EINVAL; + } + + table =3D devm_kmalloc(dev, table_len, GFP_KERNEL); + if (!table) + return -ENOMEM; + + ret =3D nvmem_device_read(nvmem, 0, table_len, table); + if (ret !=3D table_len) + return ret; + + if (!onie_tlv_crc_is_valid(dev, table_len, table)) + return -EINVAL; + + data =3D table + hdr_len; + ret =3D onie_tlv_add_cells(dev, nvmem, data_len, data); + if (ret) + return ret; + + return 0; +} + +static const struct of_device_id onie_tlv_of_match_table[] =3D { + { .compatible =3D "onie,tlv-layout", }, + {}, +}; + +static struct nvmem_layout onie_tlv_layout =3D { + .name =3D "ONIE tlv layout", + .of_match_table =3D onie_tlv_of_match_table, + .add_cells =3D onie_tlv_parse_table, +}; + +static int __init onie_tlv_init(void) +{ + return nvmem_layout_register(&onie_tlv_layout); +} +subsys_initcall(onie_tlv_init); --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 83F42C05027 for ; Mon, 6 Feb 2023 10:30:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231140AbjBFKaE (ORCPT ); Mon, 6 Feb 2023 05:30:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53818 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231161AbjBFK3d (ORCPT ); Mon, 6 Feb 2023 05:29:33 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAA0E2279C for ; Mon, 6 Feb 2023 02:28:46 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id k8-20020a05600c1c8800b003dc57ea0dfeso10413679wms.0 for ; Mon, 06 Feb 2023 02:28:46 -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=WaIgu0YxFRaKPZtwF2qRE9W0+zjPXCAIOvzNRgewnbQ=; b=pBUbTt+KfrQL2U+XmkDuU/2DUqiMZ5kveF2uT7WMBYnwHgoMJkE8dFpHDWx49qwXsY QbCDG7WhwtMfkSWdKV8gwcAUOLlmwiCoNgrWNXJiAgqLXFyLNY+GzQdG2rNrGkCS6tk8 n0Doo7+hQhSST2nKRvZluQaIS8n14JOvip/QBy8AV1cxyB+FwGE8NU6JclSPpZdnoxFL sibXzf6z3CnGWs10Nw+WUIdfy3up04w/JxFRcIdQmGAqPyXFFqHC9nMnZbMz5CmnXrgS vYSx0R/JSXrNl2OjtX7ZpbjebJm02Zq5Bs89h6g8GJ8CzDJ6Oi1CXnXrvbyBIH7eGcwH 9NQQ== 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=WaIgu0YxFRaKPZtwF2qRE9W0+zjPXCAIOvzNRgewnbQ=; b=vE3l1fDKKir9Y9vgeOxClJEm0Kdkt5I4ow/xfM6ZGtkfZdB8SUM7/r8SRb1wcQzXiF 2Pv74njU7SxJhBHV8rEvNNEEb+13mIFm30nqPc9ltLtWYAbzqmdQqzxLOb5evF7kHujx nwU1HwzW4NiPEe5nl3IJEW4E+MD4MlKILT8116j+0idC+lzHUfuwaW11auu6LIb7TkJH t4iH5t+1JJZbyGNhr1nFhGrmIkmuQW3ZLo8Lqq0kv3BCPEm+I/aBNqeQxiZvhcI0ftQT BRFHG6hl1OXP07H17kDbqHQAiZmCjbNytkSSYYyDY26Mzoqo0HN4vu29iiONh6NaUQbU RA7A== X-Gm-Message-State: AO0yUKXlhJcjd0y4ql6qVYlf5T9DSwu1HzoP7ckD8thrHYD4hJj9yfUK dnrsCpYmzWQcMx6cqYXGcX7ggDfC5r02lnRy X-Google-Smtp-Source: AK7set841ssJ2wWAPycfsUFiTMC0OlAf+Sqq24HLvfg1pw7roiegELXyt9u4p+K9LDlZVDzdh6Ws9g== X-Received: by 2002:a05:600c:4f93:b0:3dc:5823:d6c0 with SMTP id n19-20020a05600c4f9300b003dc5823d6c0mr18860272wmq.6.1675679326231; Mon, 06 Feb 2023 02:28:46 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:45 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Miquel Raynal , Srinivas Kandagatla Subject: [RESEND PATCH 26/37] MAINTAINERS: Add myself as ONIE tlv NVMEM layout maintainer Date: Mon, 6 Feb 2023 10:27:48 +0000 Message-Id: <20230206102759.669838-27-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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: Miquel Raynal Following the introduction of the bindings for this NVMEM parser and the layout driver, add myself as maintainer. Signed-off-by: Miquel Raynal Signed-off-by: Srinivas Kandagatla --- MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index a02a59628f5c..5988fe6a4d5c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15607,6 +15607,12 @@ L: linux-hwmon@vger.kernel.org S: Maintained F: drivers/hwmon/oxp-sensors.c =20 +ONIE TLV NVMEM LAYOUT DRIVER +M: Miquel Raynal +S: Maintained +F: Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml +F: drivers/nvmem/layouts/onie-tlv.c + ONION OMEGA2+ BOARD M: Harvey Hunt L: linux-mips@vger.kernel.org --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 D342FC05027 for ; Mon, 6 Feb 2023 10:30:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230465AbjBFKad (ORCPT ); Mon, 6 Feb 2023 05:30:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230464AbjBFK3k (ORCPT ); Mon, 6 Feb 2023 05:29:40 -0500 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5942C21A2E for ; Mon, 6 Feb 2023 02:28:50 -0800 (PST) Received: by mail-wm1-x334.google.com with SMTP id l37-20020a05600c1d2500b003dfe46a9801so6874900wms.0 for ; Mon, 06 Feb 2023 02:28:50 -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=u+yPE9G7Uhxczh+UksvFIhkwl0eS8Qu86GXZF1wgA0Q=; b=cwWenJ2zwILkHpUzfj5tmZCisYTZ47GOvi5ur3CgjrxuYgl+WnHKJjuxhsvigQ/szp Cfpa+hfeaUU8Bb+ppxtzG3oMg7MlxxwG38v5uoUHqtAukW9nI0T5FQz5iwyL0mM3OMLU JhsP7r9+0xNM8Kibrx780gAeAn8i2aXOwaBMZNK6pMUjEy1XFFA0rc0Ea5cs6OcWwBmR 24qUd0mwFnfktOTCfb34oEDUN19F0CEeE0Q83HC5liZ5wmjBJX74VuvEAGiaZZPllUFk IOClUNx4GvULkAEnOmy9VTUq0RAj8vKxt2yc4Zcp9XMIipO38jQfa+cHO1aVmjdvDNRX TUpQ== 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=u+yPE9G7Uhxczh+UksvFIhkwl0eS8Qu86GXZF1wgA0Q=; b=fwv8lwivZmLBQ3Ikfyo7TLZS8L5JZgG4ar9CttpkR7MpnIgLq2KEnLN6pey8TIRq1p nPkvPg4w+7VxwpRHu6cV4XLKSP+EqDB0JVMaPrSPlm2TLekpT8nV4IMjB87hLGsXQ/30 FaYSqv9sb/2ncbBpH0frx72FLi8065Rg1OVrXn3M47ph0JNVrNTs7fWYuKVxlQ2iReIG OhwxfteUvbCc567a5o01+G6r0J783g7/QRsBfXVbvaM1LnmT+1Sg8kQVO3V9JTGOTdBd 8IMyowOF1F/d6SYXQi0Zjk57Rfaz7ZZEAbIsFi5JYlLA3bnTw5INVlD+q8Z7pdierxz1 EMzQ== X-Gm-Message-State: AO0yUKWlyUhrUypIwBHiqciW2kzG2lIlNU8kVz/xsyoaXct1SFk+8p+A oNRczSzAzBRlF617W13JHzAQng== X-Google-Smtp-Source: AK7set9qQzKLLmB3futGbLABeVtgAFZd+pN3bbJw1z6S8LZFOMGPhTcg7XpZXydUVZ8ZI6MuazKBow== X-Received: by 2002:a05:600c:2e06:b0:3dd:1a8b:7374 with SMTP id o6-20020a05600c2e0600b003dd1a8b7374mr18065713wmf.5.1675679327621; Mon, 06 Feb 2023 02:28:47 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:46 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Alexander Stein , Srinivas Kandagatla Subject: [RESEND PATCH 27/37] nvmem: core: return -ENOENT if nvmem cell is not found Date: Mon, 6 Feb 2023 10:27:49 +0000 Message-Id: <20230206102759.669838-28-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 Prior to commit e894d5ad177c ("nvmem: core: add an index parameter to the cell") of_nvmem_cell_get() would return -ENOENT if the cell wasn't found. Particularly, if of_property_match_string() returned -EINVAL, that return code was passed as the index to of_parse_phandle(), which then detected it as invalid and returned NULL. That led to an return code of -ENOENT. With the new code, the negative index will lead to an -EINVAL of of_parse_phandle_with_optional_args() which pass straight to the caller and break those who expect an -ENOENT. Fix it by always returning -ENOENT. Fixes: e894d5ad177c ("nvmem: core: add an index parameter to the cell") Reported-by: Alexander Stein Signed-off-by: Michael Walle Tested-by: Alexander Stein 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 81ad6a4c4f86..30057b0094a2 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -1346,7 +1346,7 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_no= de *np, const char *id) "#nvmem-cell-cells", index, &cell_spec); if (ret) - return ERR_PTR(ret); + return ERR_PTR(-ENOENT); =20 if (cell_spec.args_count > 1) return ERR_PTR(-EINVAL); --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 30182C05027 for ; Mon, 6 Feb 2023 10:30:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230348AbjBFKaa (ORCPT ); Mon, 6 Feb 2023 05:30:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231209AbjBFK3k (ORCPT ); Mon, 6 Feb 2023 05:29:40 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B57D222DCC for ; Mon, 6 Feb 2023 02:28:50 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id bg26so8311714wmb.0 for ; Mon, 06 Feb 2023 02:28:50 -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=0+69JoOpEaMXCrh8z1bYxjhPx/3CJW01FzjKrt1Ta/U=; b=lKd8a6zJfcZD6MCQXiRB3KOCNxIZmbAKRcdqIWJIsz74F2W8067bQI+eLevBGS7FKl cFjJjJpOlq70ikrpUx6JiZlC8vpFrWUJqy1iF4zt1vcZfUDqmqPM8zS6kSiorkKvtU9l tVo4hs7TIMygVPUCaK03N7jSsveysoGdxMgKphdOdKcSgi1T6+RTU80aXJHUNTqKIccK qpvG6lXgwzYKNB3s8cC8+fm/GbIq37xPEV583TpbvCnwWcNPCaOdrquekTjZvVeUUx5q iDCCuE0+0q54+bX9p6rhiDc75ZI7SJrDJV8jBALjee/A6EZWXU6oSihRljiECYvuE2HR 15IQ== 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=0+69JoOpEaMXCrh8z1bYxjhPx/3CJW01FzjKrt1Ta/U=; b=kOrkygaCyomwGvhInM9fbgKkB7+wGupWC4NtsENluoZTkL1fo964tDAn9nm11HzCEu uk3/CEDh7sTItYq3azJ4gh2fCfkpyA4L6acTh/3IJD8KcbmTyC47HrAcu10+ZIsxp9HX UQde+0Rzf2wLgu0YdK0H5hntd+byaC7qaKYL/31Lmc7EzNHDaJ+ofx5lKWlmqL5/U7HK ieUzYXFYmm0eOD/DDujz5O2ZIHvVcX+T6+EinT1geFg77lUZsh3AqFYMReO0S18bIfop r5cfrM6J44oYJ59AIlpa3RbSaCtbSnOD2Y4ANK88GsPZZ7irKxIlUVEAIol81juhWlUO TyUw== X-Gm-Message-State: AO0yUKXdYqh7Nf2sWH4Fc8cXNqvbN0sW6YDKA1RcluV9XnZMm0oLi0+4 /nwvj0BQAvAh25v6d24i08YeriJ83IH2aaZW X-Google-Smtp-Source: AK7set+Wd6f2qUN14TQ9eTwMYfVDMVGK7kDUI1P56ObVFxDcnsrIC9XqBLtAAegDoaGK5SaUmoX52Q== X-Received: by 2002:a05:600c:34d5:b0:3dc:506e:6559 with SMTP id d21-20020a05600c34d500b003dc506e6559mr18539182wmq.37.1675679328825; Mon, 06 Feb 2023 02:28:48 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:48 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Colin Ian King , Srinivas Kandagatla Subject: [RESEND PATCH 28/37] nvmem: layouts: Fix spelling mistake "platforn" -> "platform" Date: Mon, 6 Feb 2023 10:27:50 +0000 Message-Id: <20230206102759.669838-29-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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: Colin Ian King There is a spelling mistake in the literal string. Fix it. Signed-off-by: Colin Ian King Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/layouts/onie-tlv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/layouts/onie-tlv.c b/drivers/nvmem/layouts/onie-= tlv.c index 074c7c700845..767f39fff717 100644 --- a/drivers/nvmem/layouts/onie-tlv.c +++ b/drivers/nvmem/layouts/onie-tlv.c @@ -48,7 +48,7 @@ static const char *onie_tlv_cell_name(u8 type) case 0x27: return "label-revision"; case 0x28: - return "platforn-name"; + return "platform-name"; case 0x29: return "onie-version"; case 0x2A: --=20 2.25.1 From nobody Sat Sep 13 01:49:36 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 8FEA3C61DA4 for ; Mon, 6 Feb 2023 10:30:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230420AbjBFKak (ORCPT ); Mon, 6 Feb 2023 05:30:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230499AbjBFK3l (ORCPT ); Mon, 6 Feb 2023 05:29:41 -0500 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3311222A3B for ; Mon, 6 Feb 2023 02:28:53 -0800 (PST) Received: by mail-wm1-x332.google.com with SMTP id z13so815838wmp.2 for ; Mon, 06 Feb 2023 02:28:53 -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=NqGZUK/PAWNz/mZK4i7tXcj6pHw7p2uGsp/RVkZwTiQ=; b=Y+ZESidaCkDm+EsJSUKlEK7N0XS6cmIv7zTzftwBnVlXBUZujVCpn5OgIJPxcXDQIE S4BSxw0Y3mJ8BQ3Zy9Vv2kSlVIH4wiEH7Its4sXZ0eERA1XiFF25s328957irGoL3cuo Z9OnOFVIrzru6Bt0vWlmM2y3u91lkQ/wmlxyizIkncnNDjNGC5Qk8hCzMx45qdVs5908 uNj4p2EpHZ+AhEw9zEOntMSc2GAgTUbbVEpyWWCZHqpMN74LN5U4I+gx2C1pf/Gua8pj yK5qvp08Nc9gr4uvYyyJJqefWqicSEDtg9P8vAsHny+7SADj0XsLTWbC8KXvo9y4WtYt khuA== 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=NqGZUK/PAWNz/mZK4i7tXcj6pHw7p2uGsp/RVkZwTiQ=; b=N8xlqTpMotuhMZ55cjSAz3NTMfp0OyW1cr6HdXFwRCySCTmOjdWuMAZJ28u4YW+ewb t+QHlIEepXFD8ZtrlOj7BTJSWZrGxI1y1JxPuDD0A9bN9HfxChAo1RkaCRaCgWc63OcS HCTkj8WRW0E0O0dxTDd3+5evklOCIlmfnNuC3FO8zJhrrSo/+qeceAOwWzag6GNYtJFE s8iXOL/yxJxrYu+jOk6+xwFAwz38j3+mZ587oe8Owv/brFUXw8lXMcdzS+A3OwB/CwMp miR48QCZHjMwkKfuSK5dMYXIyHzPAw2diM91MyJ74It11nb5kC/iwHNzQTOWKO0duttq D2tA== X-Gm-Message-State: AO0yUKVTE4XxRfl/wfR9OaB0e7rl5u9vcIh9GRSfrJkCE+1IfY70j9NY zqCUt2dYi/td3CtcTquKUSkiMA== X-Google-Smtp-Source: AK7set+qU/+uuPg/F7zsJLj4urFbwHwrV8mBi/Ig2ohlkJL08igQWzXBrls2C4w+KQWUjvJy8HseLg== X-Received: by 2002:a05:600c:b88:b0:3dd:1ac2:989 with SMTP id fl8-20020a05600c0b8800b003dd1ac20989mr10264459wmb.39.1675679330029; Mon, 06 Feb 2023 02:28:50 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:49 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Colin Ian King , Srinivas Kandagatla Subject: [RESEND PATCH 29/37] dt-bindings: nvmem: Fix spelling mistake "platforn" -> "platform" Date: Mon, 6 Feb 2023 10:27:51 +0000 Message-Id: <20230206102759.669838-30-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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: Colin Ian King There is a spelling mistake in platforn-name. Fix it. Signed-off-by: Colin Ian King Signed-off-by: Srinivas Kandagatla --- .../devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layou= t.yaml b/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.ya= ml index 5a0e7671aa3f..714a6538cc7c 100644 --- a/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml +++ b/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml @@ -61,7 +61,7 @@ properties: type: object additionalProperties: false =20 - platforn-name: + platform-name: type: object additionalProperties: false =20 --=20 2.25.1 From nobody Sat Sep 13 01:49:37 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 75E6AC61DA4 for ; Mon, 6 Feb 2023 10:30:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231163AbjBFKap (ORCPT ); Mon, 6 Feb 2023 05:30:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229992AbjBFK3l (ORCPT ); Mon, 6 Feb 2023 05:29:41 -0500 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66A4122016 for ; Mon, 6 Feb 2023 02:28:53 -0800 (PST) Received: by mail-wm1-x336.google.com with SMTP id u10so5232823wmj.3 for ; Mon, 06 Feb 2023 02:28:53 -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=APFypbhgMA4X/1jworaycPA1J9HozIEL/Uy35y7MliU=; b=pLCIOuT1QT4+iiINXxoVi3FzdpaLVJysS+WX/P1zwOCURfU0/wchM5D7e1sCojQqkn HQSyYhXxwQcQmZDNmoK1ydZcLClcX0i/M6MZoByRa0K9+wsAJVFaE4Ntp78+B2eMny9n EBHdqOLGckyQJI+O7DbSuX7s+te4HUZSOHx3tretgd1AFMldUXiNecdtjUUnGDMKwbDc sUMDtsOhGi7r1Uq/jxWwo7z3nupvLnQsU8/S8e9P7YlWqQc8j5qYytGfbdXeDCIqA/Jq 6gote0kkB9d5wfAbwztRG67ijYzpVXhmB6Hoi7tJh9jdN9REAICZ+VexkXTWq1PtZXmP riSA== 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=APFypbhgMA4X/1jworaycPA1J9HozIEL/Uy35y7MliU=; b=35cjMOsPk0pvVxkcjU9SJdRszsFdX+VJqGB/nrMIcpFgY/vFsVtiFPAUJ5UfChr6WV A2uxnjGklrkR2jXg3eHO0yT4HIirEBBvoJb4LUjw1JSK9y3IdHQRHXbS4cjnh/+wiQ4D iMIoMhgZatrMR665Grkvve1t3MepW+FSIMSIAnNUYoc5ckBC+gdVREZODQbL+MOhIzyN nK6VVuHbcmiRUIGH7qGTonXGZa2R7PmAvn6cL0LaitLUSZZy38tLbp0Xq6KkdrMwKRL1 0eMhx2YEyw451YjWrP2Cde4ew2D1U9xNHmCtFT+JY0X8fVIM4588BYB3SAX2ZP9mK80C Ru4w== X-Gm-Message-State: AO0yUKVWJMRtcy/kqE+GwQjCSu/QoXHCJGg4u3UcfM8zNgrPiagpC52Y cGDy6pCDZ08UOQxSVau1U8y+0g== X-Google-Smtp-Source: AK7set+vzDixuVdM95XUPW+DClZuuEwBNE/MXpm0J1eum9J0SjwNkoJ0/BP29JqX6CAAooWrLlE6vg== X-Received: by 2002:a05:600c:1e87:b0:3dc:353c:8b44 with SMTP id be7-20020a05600c1e8700b003dc353c8b44mr18814295wmb.5.1675679331648; Mon, 06 Feb 2023 02:28:51 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:51 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Michael Walle , Srinivas Kandagatla Subject: [RESEND PATCH 30/37] nvmem: core: fix nvmem_layout_get_match_data() Date: Mon, 6 Feb 2023 10:27:52 +0000 Message-Id: <20230206102759.669838-31-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rafa=C5=82 Mi=C5=82ecki This function was trying to match wrong OF node (parent device's) against an of_match_table. It was always returning NULL. Make it match layout's OF node against layout's of_match_table. Note: __maybe_unused is needed to avoid: warning: variable 'layout_np' set but not used [-Wunused-but-set-variable] (of_match_node() is no-op without CONFIG_OF). Fixes: 61a093b4a0e0 ("nvmem: core: introduce NVMEM layouts") Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Reviewed-by: Michael Walle Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 30057b0094a2..38a5728bc65c 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -824,9 +824,11 @@ EXPORT_SYMBOL_GPL(of_nvmem_layout_get_container); const void *nvmem_layout_get_match_data(struct nvmem_device *nvmem, struct nvmem_layout *layout) { + struct device_node __maybe_unused *layout_np; const struct of_device_id *match; =20 - match =3D of_match_node(layout->of_match_table, nvmem->dev.of_node); + layout_np =3D of_nvmem_layout_get_container(nvmem); + match =3D of_match_node(layout->of_match_table, layout_np); =20 return match ? match->data : NULL; } --=20 2.25.1 From nobody Sat Sep 13 01:49:37 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 E7430C05027 for ; Mon, 6 Feb 2023 10:30:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231152AbjBFKan (ORCPT ); Mon, 6 Feb 2023 05:30:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231237AbjBFK3p (ORCPT ); Mon, 6 Feb 2023 05:29:45 -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 A074120698 for ; Mon, 6 Feb 2023 02:28:55 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id n13so8282113wmr.4 for ; Mon, 06 Feb 2023 02:28:55 -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=KZKxLh5pqfebI1l8237SnYxleU3aw73QCzVPQqwvpVA=; b=bPA2qOw84oCAFOOUQTSqGzbdw86zyPPWZoNKo2KSHoj2Mh1XMk6Ro2JPbtiwV3lBYT tooIUwYGUv90N17NnqVbUPTm6t6cd58s5oFR254tMR2FZL/F4mJqG9jW1BWnd61o2/hI mOtQhMJu/wmESSDTJ9Tjp7F5oEWfgDMTfv8abjppK0s8fg1XKIhHPX/CnD7TZGNSnCxc DZiNIdYKlCksnY0JxVJNVp4ugyrIou7FEkbrMt8PYODf5ayR5cUp4bEpNkzSgQ7g9WkM Xb/FcrrJBwgZkXit0UU2SzC815vf2SecA7if06RRPhKOWL72lrnWquco4BAoQUiMRuV0 /j1A== 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=KZKxLh5pqfebI1l8237SnYxleU3aw73QCzVPQqwvpVA=; b=yNEqUl/hBFhh0mR0VzeCAMXNy11NUgFlmTHkjTvYotemvkZ4V/rXGcHAfnnnfCJg0S jaA8LlJ27V29+pXAoXjNDBpap3mo+KVJ61VlcdpgUQ2I9PoiBzLxnl52I+zhkCWqTKT5 Y2amw+VUje+T7P9AthMoxod23FRUdXxf19DiDRlmDQWrHOOPVOQNhd3+eyBozhE28x/G Cu+cUrqJclUY5vJzGczPajTCnVNqyI0rQn9cZApS0rFFWYAHGJvFLZ4+o3TW2KIEHYFj fC5W8I/69s5Zp19vQR3y/Hev7kXMGrwbLZ19PcZA28QWOLiMbMLb+1vRVaxij1VIBeXq UkTg== X-Gm-Message-State: AO0yUKWMGUzE5+GPIy2ZwL/QNnzCoeV+41Z38d1GhpCygc/KMJUzW4wG 9ngelVhmxsKS7nF4W0293grwqxOZTTVamySt X-Google-Smtp-Source: AK7set/IPz+VPmi/IVLCxCv7L9TBmfzCJRvZOrNm6mRJembhiwlOlbj2daOFQWixT7gjzpWKD/bUWQ== X-Received: by 2002:a05:600c:2110:b0:3dc:5093:3457 with SMTP id u16-20020a05600c211000b003dc50933457mr18610110wml.10.1675679332756; Mon, 06 Feb 2023 02:28:52 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:52 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Patrick Delaunay , Etienne Carriere , Srinivas Kandagatla Subject: [RESEND PATCH 31/37] nvmem: stm32: add OP-TEE support for STM32MP13x Date: Mon, 6 Feb 2023 10:27:53 +0000 Message-Id: <20230206102759.669838-32-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 0e10b5b094b9..ed8ef7460be2 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -294,9 +294,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 4cf87ef6c24d..f82431ec8aef 100644 --- a/drivers/nvmem/Makefile +++ b/drivers/nvmem/Makefile @@ -62,6 +62,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:49:37 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 3EE87C61DA4 for ; Mon, 6 Feb 2023 10:30:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230482AbjBFKag (ORCPT ); Mon, 6 Feb 2023 05:30:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231222AbjBFK3o (ORCPT ); Mon, 6 Feb 2023 05:29:44 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 405A219697 for ; Mon, 6 Feb 2023 02:28:56 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id u10so5232924wmj.3 for ; Mon, 06 Feb 2023 02:28:56 -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=fFENw3keV/o+jIwwd3UnUip+TBBpP/Uvya7LKSwgGbZ/aMCNUrnpXpNUa3IBBDiWfv laTJt5bZq6c8dM9p+mDa61bGdZXvNfOJFExjhF8VtOjFlx9w6wV4GabbmAIxFn2fPy/V PucfwQbiBp9m+K/BSXP0ReqDANrP+aZXenxa6ipKNaxwY5ZzNSv7cLu2rkRpoY4aWEqs RdNRJtD6qc8AyFM76h1LapIn2XZZsfCFNrgK/m3l5XVXfaaHZ4IY/DpJ3/+CHzRsoGh7 zUR2dFwBQHEeKPajJeKreCuAkZb3+nqUC4JhEZlOoJ5W2WsuoQ44OCoftklG5e47yKlI 617g== 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=VoH6vbRGbF1RIEov7rLkg5iOaehsUff8ypK55K2sFHh6n8OKzjy5mhMw5Uo3vlN1CC BLuWHKX9cuAWRohsOU56NZmKdn+yjp/XyWgJmC1JWiEMeBMsXDKhm2xrpsbqrVaXSzID UyAi8bB9RON5dQrvSDuMXtLKVbjYpoaOGYjgu2P1u8AR5epmM/st1UFrlHdZHK9hDu1a a2RZlricHR9l+thRrbFsnAlKX8SpsGgnYF11b1NRcCxc88XuewsjhTAVBiA5ERwU/VBx nKZ5Pr1LtVkFpXL48tiuw2zHLZMy481jKtv389oIV6sS8lQGZXK5MaiZ+qNK0Gnv0yHa Yksg== X-Gm-Message-State: AO0yUKWcifnv5cUYlSsMjej80i6U8NXHZEx6YtM+3i6DB4iZRiy0VAKp qkfCDTshwkZP8PR8rhuWjRReKA== X-Google-Smtp-Source: AK7set+EJ3AfLMOBdGvkD/j+TxqrcpJUsiJmnejUkBZkWm0tOARF5wEx72zrC6jXq8UU4LkwpFQ7VA== X-Received: by 2002:a05:600c:348a:b0:3d1:caf1:3f56 with SMTP id a10-20020a05600c348a00b003d1caf13f56mr10574113wmq.9.1675679333828; Mon, 06 Feb 2023 02:28:53 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:53 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Patrick Delaunay , Etienne Carriere , Srinivas Kandagatla Subject: [RESEND PATCH 32/37] nvmem: stm32: detect bsec pta presence for STM32MP15x Date: Mon, 6 Feb 2023 10:27:54 +0000 Message-Id: <20230206102759.669838-33-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:37 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 4471FC61DA4 for ; Mon, 6 Feb 2023 10:30:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229642AbjBFKaw (ORCPT ); Mon, 6 Feb 2023 05:30:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231241AbjBFK3p (ORCPT ); Mon, 6 Feb 2023 05:29:45 -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 CFF79227BE for ; Mon, 6 Feb 2023 02:28:57 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id n13so8282214wmr.4 for ; Mon, 06 Feb 2023 02:28:57 -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=HnUjiCp6NRaOTc+1by9scrNsDK2FQexgkD03EklB/VtqP5Ttvw4az/7RBSeW5CPMvX 1KrisJ7GAlfzAR+fQeyev1N7ftc8gX0QlTTeWeIFdqcHuL/GtlxxFovZKdffT7vptTfD f4UGHzL472DI/kyCxfpUxCq8wQmqfNQzfBbg4DnMRPaHl5ny/WBkr3Y3TYQiTldZikF6 hCZx5pduLhbLmpSdQO7FK17YVC/yl/4VIHbAuKdMUroBBS0bZQJ2n9IkZHWHmxkNDdqk 2L2mc9Akw0EZl852qoH1yhOVG2JKvqee43c73FJV443AeqkmGoAA/sPDscqD4yC/arjg ZZQw== 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=5EJpegTuG/q90c4QkoLRBLoEAl5AUdu4hJ7J8INwdJUC+F8EUvKtmfqO2xoQvN5mp7 sYovihAPqtrxJqlnmCdPYwrAeHPXZ4Gnarg7UJEZ4VAj4oqZtlANbnNwiR10rEyoyOeo wmb/ELJHBnuEQx6eOdaoDvd1FjfFV6ScoXpQFwesJdEtZB9hc6ZvsSA3ollsauWVpWPx pMSBGokROHm67G0Fbx5p7pID8czgWeOL2tPbdKH5QezcdKSu/gPuG4a4ERMkf+nkI60m jpKGICMGhjWDlYmrkfSogV6CeVwsiKtq9mMu7KTF72xWqUTayIzRIk8nRwVwL3erowNF XWgA== X-Gm-Message-State: AO0yUKVpJedDQmX0yZ43RzYeCydUUcLvCd94di0LGkZ0Q1L/u608uVbQ 5saeAVPfA+mPhoSIKQxi0LCzxH/Ks37Sgc2l X-Google-Smtp-Source: AK7set+ZW2SYoWw7GNnrksTSc2pGks9kxMJ+1IQLwQKhA35iWn7TgzYD5DE5/P6ZVvGzFthKTKd3IQ== X-Received: by 2002:a05:600c:3591:b0:3dc:5362:134a with SMTP id p17-20020a05600c359100b003dc5362134amr18563123wmq.9.1675679335218; Mon, 06 Feb 2023 02:28:55 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:54 -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: [RESEND PATCH 33/37] nvmem: rave-sp-eeprm: fix kernel-doc bad line warning Date: Mon, 6 Feb 2023 10:27:55 +0000 Message-Id: <20230206102759.669838-34-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:37 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 501D2C61DA4 for ; Mon, 6 Feb 2023 10:30:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231175AbjBFKat (ORCPT ); Mon, 6 Feb 2023 05:30:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231247AbjBFK3q (ORCPT ); Mon, 6 Feb 2023 05:29:46 -0500 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A37CC227BD for ; Mon, 6 Feb 2023 02:28:58 -0800 (PST) Received: by mail-wm1-x32d.google.com with SMTP id o36so8301468wms.1 for ; Mon, 06 Feb 2023 02:28:58 -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=GsRQP+UczZ0/DRSX+VGLQsS8dvXU3ie3PVfmFaU+thA=; b=lbPST2WdebG00GJVUncDY8gS73pbhZ0ieJI3PqdIXtcYeA5NLkh9/CJRriA6Q1EvE1 birAJLPiBnn0FMvJE3mdgx9YQl67UgvgZ0+Av59P9VUSw4iO0yqMalry7+uO81QtunRe My2v38O0YVv/pM+0tH0P0+HXhM1oHim+ypPU/TjqQX+BisRIf00Q3AUZKQ6/fm3404+B xEW5w9TQAT9pLYvopCPyEsDHSP9ju5piP4NigB6PHELlHp6PZxip6SIOpLRXwXpNH+lf Io18DSyQmkmtX87Gm4cVUl1NyZy/qTkSWhIe6EptLKNyLgVX7DbQT3r7ZjYzIf9DbUrn 66JQ== 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=GsRQP+UczZ0/DRSX+VGLQsS8dvXU3ie3PVfmFaU+thA=; b=5qPrjrqpl8GJf5dqGOJ0bpBwu4/9c71kDCRSjmShKw3g6V1KFiMx56vuGm3rg9bOVG I2Nf1SqZkr7C9ajMq3EWY9n75mVBTNFlTjuVMRutZNvE/vimJFflONOwZNjgIQZ+sK1Y 5UyGsiLz+EqQbn/hIivVC4o3YrQvXrpzYMmzeucMN7sMp/uI51h+zBMH0gAL2qbbkdim sKgk5FlYR2rXIGHdHEpHQik7+/dLDDFCH4axA43zYgkbOJXtr73qAu6+kaGbUIa6omp8 z/+CTOuc7BqjoTOjwFVJlWb0LwbU86Wu6g1QoZAK2ZJGiVa0B6moQUDpvzTx981KObUZ g2aw== X-Gm-Message-State: AO0yUKUgpIJAhVpzkm1HxvzMVH27cqR75zCl8GMHzJ5g+sEhYhqQ/L74 f659dz95Mrlm5iBrYyc4bUyh3g== X-Google-Smtp-Source: AK7set/B6iTbOYCK8flUdFIXHPj0mTjHNfmaimt/do8yz+zx3Lev86g9OZ6Ci97KpRSUIcF5afMPjA== X-Received: by 2002:a05:600c:3545:b0:3df:ea9a:21c7 with SMTP id i5-20020a05600c354500b003dfea9a21c7mr10182051wmq.33.1675679336333; Mon, 06 Feb 2023 02:28:56 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:55 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Michael Walle , Peng Fan , Rob Herring , Robert Marko , Srinivas Kandagatla Subject: [RESEND PATCH 34/37] of: property: fix #nvmem-cell-cells parsing Date: Mon, 6 Feb 2023 10:27:56 +0000 Message-Id: <20230206102759.669838-35-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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 Commit a80b3e6fb414 ("of: property: make #.*-cells optional for simple props") claims to make the cells-name property optional for simple properties, but changed the code for the wrong property, i.e. for DEFINE_SUFFIX_PROP(). Fix that. Fixes: a80b3e6fb414 ("of: property: make #.*-cells optional for simple prop= s") Reported-by: Peng Fan Signed-off-by: Michael Walle Acked-by: Rob Herring Tested-by: Robert Marko Signed-off-by: Srinivas Kandagatla --- drivers/of/property.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 8d9ba20a8f90..95b838185b2f 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; @@ -1256,8 +1256,8 @@ static struct device_node *parse_suffix_prop_cells(st= ruct device_node *np, if (strcmp_suffix(prop_name, suffix)) return NULL; =20 - if (__of_parse_phandle_with_args(np, prop_name, cells_name, 0, index, - &sup_args)) + if (of_parse_phandle_with_args(np, prop_name, cells_name, index, + &sup_args)) return NULL; =20 return sup_args.np; --=20 2.25.1 From nobody Sat Sep 13 01:49:37 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 C5087C05027 for ; Mon, 6 Feb 2023 10:31:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229966AbjBFKa7 (ORCPT ); Mon, 6 Feb 2023 05:30:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231249AbjBFK3q (ORCPT ); Mon, 6 Feb 2023 05:29:46 -0500 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B28922A1D for ; Mon, 6 Feb 2023 02:28:59 -0800 (PST) Received: by mail-wm1-x330.google.com with SMTP id k8-20020a05600c1c8800b003dc57ea0dfeso10414023wms.0 for ; Mon, 06 Feb 2023 02:28:59 -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=GT6D6ny5WboR71/3xog5IzP047p9OCCTCPTfFn+ejJeHf2tCRNPBPYzonrHYk5rBtv X6NMCW4NiV3P1odKqsaK9xcowNaKJ48t0gY0P3lI3zicaet2p0N19+9QunOw9YIhZMWZ RypHBKP3upxv1CedslUBKNWA0Z98slLZ5+mOOjUnKvtULxF5y18n4Af1j4dV/Rgsuhzo EK3HX2LqrcatFTFy9GuDgywet6tmPr4WEIXUJMTmWM4q3lj4lyAE16SP0u1KEe74Ytzb w8WTm3JO7qOcnz9b89MUmJir7BW3FKZDfNd3dk0XTaLIdGXSg+IebaTAF/v6r/o39i7H eMiA== 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=oy2hCdVKpcz/ZLrCQkr3wyUp2Xp4dlS6rbZpSU+jyG8I3gwVplA66++J0gLmk8xypN yWwACZm4KQnSCk0tSuw5cublFlezTox6eOwcBaKpuGZZ4pL4aUMosftoR8NG9HGAb4yD HiaBgcvbNx8eKr8E8OPH8aqz9KEk26Twn0otZl7LcYoAjNFGSEf3WZtl9lLI7Rscm+/1 +HbK3p0bLlb5OYpXgI+y1l6gi/wp6dPwyKbI0ysXLd1p4Y74K7hnAtJT75c0WtnK5Ehy WbneW9hyUEQJ3e4kG4buZWHqNU7M1EDtw63fmbV0WbwSZ0UF56EHWZ8TEPjAoxUwrxm6 cIVw== X-Gm-Message-State: AO0yUKUHFFyXXubuMbRBdQonZQ+MiWQDs0m1NKHwau8lN/2YNh+T4b0i irmUP582S3Z+W7SeIRTwh6h2DbdfF5xoOE5P X-Google-Smtp-Source: AK7set8bSN7hoGcVGavjUKN992ANddB/oxCl8oZ0stAwdEwwzcrpH9iKX/dazlUtDPj/otZYWCYMRw== X-Received: by 2002:a05:600c:1c20:b0:3dc:576c:ab07 with SMTP id j32-20020a05600c1c2000b003dc576cab07mr17855422wms.14.1675679337424; Mon, 06 Feb 2023 02:28:57 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:56 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Johan Hovold , Bjorn Andersson , Srinivas Kandagatla Subject: [RESEND PATCH 35/37] nvmem: qcom-spmi-sdam: register at device init time Date: Mon, 6 Feb 2023 10:27:57 +0000 Message-Id: <20230206102759.669838-36-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:37 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 94629C05027 for ; Mon, 6 Feb 2023 10:30:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229828AbjBFKa4 (ORCPT ); Mon, 6 Feb 2023 05:30:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231253AbjBFK3q (ORCPT ); Mon, 6 Feb 2023 05:29:46 -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 769C6222F9 for ; Mon, 6 Feb 2023 02:29:00 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id bh13-20020a05600c3d0d00b003dff6cd8b7eso3137742wmb.5 for ; Mon, 06 Feb 2023 02:29:00 -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=L4L6AS/M4laX73nMhmFbcGz0oUWXulfn89UoSfPUSR0y/tS+ETQavNihnHj2+OZugq xn/NzTcdwQ/C24dHwWNYqPhxDIUpzIDAO5H6gxhSZBZL/+kd/G5ke7OE9DS56Xgukxmm PqFpl/7eCTvBsUcqftw7toIIffx1MtfI2BHrpbOtha89VpIUXEnuCUZxFhKvc7tyYWqt tQhtG/3PilfYNfJD0Pqr6ixqptWcVgq51fLrgPtlRBP6EfL/rV5sxXz31tBJ9YYRDqLO Kd/dN6MQaHnd/+wSniiwljGZUvnQH5bynronIQFYztziK8iLioBgoVHBNl7CbZj3kgoF sOfA== 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=6k8JuH47ncW4//9fFra++bYT101/lYGq7GBzJd46sOv4YJZLSN3cesN2NCdX2NCvXt 98IrfUiyd4AEmIYIiv0SLuX6XrAUGtGaRuD15ff6whRJTbT1zy3fF1FHRo3CfbZIHbQa 6YuIp2Kwv7Euo40zxNhg/DXcIbsl92LWFCP3xH/SycYsIjP10JdYmCIV/P7j1ZAVw7bW xi4VjFaI1xMx+DBR1PX4kHSKGFIw+pteq7CTv8loWrUJTUsTOu/YpUD/UPprLSTd19pX EXEafNKyB0qAeWdmfaPofWVLnwJjuEaC0a0MJrJci9sf98oMlkssWTQjtoc9Cq19ggxx MrKg== X-Gm-Message-State: AO0yUKWHOOo436WIivR76YdRjFlOwQqZ0bQWXBtULFkvNQDQZ4xwmqRW SxlvKNHZ1KYf2qigzDHL1u/7eDDw92DFiI1B X-Google-Smtp-Source: AK7set9QrHp2C0rv9Oav2sxb8xHO66PetiI74vqx9rzLr1s8rvkPXEfwFRrWd39AJ0pqzT8rTXuqHw== X-Received: by 2002:a7b:ce94:0:b0:3dc:43a0:83bb with SMTP id q20-20020a7bce94000000b003dc43a083bbmr19335112wmj.3.1675679338410; Mon, 06 Feb 2023 02:28:58 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:57 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Robert Marko , Krzysztof Kozlowski , Srinivas Kandagatla Subject: [RESEND PATCH 36/37] dt-bindings: nvmem: qfprom: add IPQ8074 compatible Date: Mon, 6 Feb 2023 10:27:58 +0000 Message-Id: <20230206102759.669838-37-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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:49:37 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 35961C636D6 for ; Mon, 6 Feb 2023 10:31:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231209AbjBFKbC (ORCPT ); Mon, 6 Feb 2023 05:31:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55044 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231258AbjBFK3r (ORCPT ); Mon, 6 Feb 2023 05:29:47 -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 853AE21A20 for ; Mon, 6 Feb 2023 02:29:01 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id bg13-20020a05600c3c8d00b003d9712b29d2so10399791wmb.2 for ; Mon, 06 Feb 2023 02:29:01 -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=U5lWuq1dqBRExLhj0uCTTB3JASg++oX5rRvkth7BBTg=; b=lf/p3x9QeSIuKX7tPTFBMZglAmU/qPv30bA36lvIsw8GK/JF+8Hz7YAtLNfYXAjbjc 2FAypbqBcQyAu7n+CUkcEQc0fF4Cqbm/nZ7N6RUTLHQ1N/gTxZ1HSjAm+GjlScrVBjfU X2KlM1UihEQflU607oNDSSBoNtkF6MiDASeHQIgat1AM8kHXruM1jWfEXJbKaGV4917a XkFhmpyteDWIBYo7Bg/7wEB+30nzsf9xwiDqAViwZbnZghjGjVk22PbkMPqU9IGFFb7N pkEOnMzge9sUKf1bahYsLv8G2H/yoyynkSN1sC0vshVc9HmZYbCJ9hnPd+8VFXaJFRfb 78jw== 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=U5lWuq1dqBRExLhj0uCTTB3JASg++oX5rRvkth7BBTg=; b=u+5m3M6sHEUevM9ougt5liBDawKCqcsXVBMh7X+unWb7kJioeEgDY5DPAmcALBBxuS RjmSpUIoQjcr7CSF7qMafzYUY3WiX0zzLsxt7P7HaQEJF41obI/SLot1gAwvUFjQcFky 0dLmltZenACwukNpxH25vHlMcdJ4SoaUINVnI7AxuDznx53VcHF8Bd5qfzotHWnX/Jpi szQlDdem5UsGK+7yVdp6KwtvOw+w5ABHjwKgW0qWRh1W29uCGTEPcdqKrZ0Z/MYI1Ojb FQsQEbn4EFGB3fMtHG+vOavDS8peF3L36zOBloAesbPYSrleh4CJj9xuOMD4OyKA9NfN Ek1Q== X-Gm-Message-State: AO0yUKXXXDX2YBs71OpqJEde3KJyuV2KKV0PupoQeog0oXP7Zb6+Uxw1 6WQB/7l0Vb/UFxEeKMNPrE80Rw== X-Google-Smtp-Source: AK7set92im+QaXuByfBvanfDhbizp2kMRGIGHETco0pu3d6z4K48q9GfW9s8YYixKy/cIYzryElE6w== X-Received: by 2002:a7b:c846:0:b0:3dc:405b:99bf with SMTP id c6-20020a7bc846000000b003dc405b99bfmr18874716wml.15.1675679339913; Mon, 06 Feb 2023 02:28:59 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id g10-20020a05600c310a00b003de77597f16sm11002446wmo.21.2023.02.06.02.28.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 02:28:59 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Arnd Bergmann , Srinivas Kandagatla Subject: [RESEND PATCH 37/37] nvmem: stm32: fix OPTEE dependency Date: Mon, 6 Feb 2023 10:27:59 +0000 Message-Id: <20230206102759.669838-38-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230206102759.669838-1-srinivas.kandagatla@linaro.org> References: <20230206102759.669838-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. Fixes: 0a37e22da31a ("nvmem: stm32: add OP-TEE support for STM32MP13x") 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 ed8ef7460be2..ae2c5257ed97 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -295,8 +295,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. @@ -307,7 +306,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