From nobody Fri Dec 19 18:30:47 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2E70B1A257D; Tue, 30 Jul 2024 14:47:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350879; cv=none; b=jrxuRI0VbnGhufEunvd1V4HTIh7L/lmmNi+jVPcFMSH7Jodtebh3wr3wTmEZCPsIrXYwjBCIhlcQpv06vfDTi+AXy97Nzb0VW4hBHpiaiVaKeQkO5EFqFE18g8Wj1vY17eU/sSnCbOOMOcunDlEKaVfTsKRyH+YZX0i1Bv9a0OA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350879; c=relaxed/simple; bh=VVfpgG5OslNS/wfuLNNhtQVPjBKlX7P4FEAUhpitjB8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rYbArraYYWUT9HSD79iOMt21D4ZB97dyMHZVGTbBWiRl53ns8oZLKAwiUVC9aBvh8pGIKBHOYsgAgkZg597qrWmZIVnpgScYKxQALHTfmFwa0uoBpTeFnx5Fj5AKmGO2haQBHhkbYOc12Fmy82KPP+OS+YnzCJdH0hTO0r4eD8c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2D826106F; Tue, 30 Jul 2024 07:48:22 -0700 (PDT) Received: from pluto.guestnet.cambridge.arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2663B3F766; Tue, 30 Jul 2024 07:47:53 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm-scmi@vger.kernel.org, devicetree@vger.kernel.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, f.fainelli@gmail.com, vincent.guittot@linaro.org, etienne.carriere@st.com, peng.fan@oss.nxp.com, michal.simek@amd.com, quic_sibis@quicinc.com, quic_nkela@quicinc.com, dan.carpenter@linaro.org, souvik.chakravarty@arm.com, robh@kernel.org, krzk+dt@kernel.org, Cristian Marussi Subject: [PATCH v1 1/6] firmware: arm_scmi: Remove const from transport descriptors Date: Tue, 30 Jul 2024 15:47:02 +0100 Message-ID: <20240730144707.1647025-2-cristian.marussi@arm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240730144707.1647025-1-cristian.marussi@arm.com> References: <20240730144707.1647025-1-cristian.marussi@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The descriptor structure scmi_desc contains a variety of fields related to the transport functionalities and it is defined by the transport drivers themselves; such elements, though, serve varied purposes and have different lifetime. In particular, while there are some of those elements that provide a description of transport features that are supposed to be immutable, on the other side there are present also some other characteristics that are instead supposed to be configurable on a per-platform base since they represent configuration features tied to the specific hardware/firmware system. The immutable fields are already qualified as const on the their own; get rid of the structure-level const qualifier which is not needed, so as to enable possible runtime customization of the mutable configuration features. No functional change. Signed-off-by: Cristian Marussi --- drivers/firmware/arm_scmi/common.h | 2 +- drivers/firmware/arm_scmi/scmi_transport_mailbox.c | 2 +- drivers/firmware/arm_scmi/scmi_transport_optee.c | 2 +- drivers/firmware/arm_scmi/scmi_transport_smc.c | 2 +- drivers/firmware/arm_scmi/scmi_transport_virtio.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi= /common.h index 77721cb4ac34..5261dc9b5f96 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -381,7 +381,7 @@ struct scmi_transport_core_operations { */ struct scmi_transport { struct device *supplier; - const struct scmi_desc *desc; + struct scmi_desc *desc; struct scmi_transport_core_operations **core_ops; }; =20 diff --git a/drivers/firmware/arm_scmi/scmi_transport_mailbox.c b/drivers/f= irmware/arm_scmi/scmi_transport_mailbox.c index 75483b6778ee..dc5ca894d5eb 100644 --- a/drivers/firmware/arm_scmi/scmi_transport_mailbox.c +++ b/drivers/firmware/arm_scmi/scmi_transport_mailbox.c @@ -355,7 +355,7 @@ static const struct scmi_transport_ops scmi_mailbox_ops= =3D { .poll_done =3D mailbox_poll_done, }; =20 -static const struct scmi_desc scmi_mailbox_desc =3D { +static struct scmi_desc scmi_mailbox_desc =3D { .ops =3D &scmi_mailbox_ops, .max_rx_timeout_ms =3D 30, /* We may increase this if required */ .max_msg =3D 20, /* Limited by MBOX_TX_QUEUE_LEN */ diff --git a/drivers/firmware/arm_scmi/scmi_transport_optee.c b/drivers/fir= mware/arm_scmi/scmi_transport_optee.c index 974128d73f2d..08911f40d1ff 100644 --- a/drivers/firmware/arm_scmi/scmi_transport_optee.c +++ b/drivers/firmware/arm_scmi/scmi_transport_optee.c @@ -510,7 +510,7 @@ static int scmi_optee_ctx_match(struct tee_ioctl_versio= n_data *ver, const void * return ver->impl_id =3D=3D TEE_IMPL_ID_OPTEE; } =20 -static const struct scmi_desc scmi_optee_desc =3D { +static struct scmi_desc scmi_optee_desc =3D { .ops =3D &scmi_optee_ops, .max_rx_timeout_ms =3D 30, .max_msg =3D 20, diff --git a/drivers/firmware/arm_scmi/scmi_transport_smc.c b/drivers/firmw= are/arm_scmi/scmi_transport_smc.c index 1c203a68acd4..c6c69a17a9cc 100644 --- a/drivers/firmware/arm_scmi/scmi_transport_smc.c +++ b/drivers/firmware/arm_scmi/scmi_transport_smc.c @@ -273,7 +273,7 @@ static const struct scmi_transport_ops scmi_smc_ops =3D= { .fetch_response =3D smc_fetch_response, }; =20 -static const struct scmi_desc scmi_smc_desc =3D { +static struct scmi_desc scmi_smc_desc =3D { .ops =3D &scmi_smc_ops, .max_rx_timeout_ms =3D 30, .max_msg =3D 20, diff --git a/drivers/firmware/arm_scmi/scmi_transport_virtio.c b/drivers/fi= rmware/arm_scmi/scmi_transport_virtio.c index 55d7245fa7ee..d711ba6e07f6 100644 --- a/drivers/firmware/arm_scmi/scmi_transport_virtio.c +++ b/drivers/firmware/arm_scmi/scmi_transport_virtio.c @@ -790,7 +790,7 @@ static const struct scmi_transport_ops scmi_virtio_ops = =3D { .poll_done =3D virtio_poll_done, }; =20 -static const struct scmi_desc scmi_virtio_desc =3D { +static struct scmi_desc scmi_virtio_desc =3D { .ops =3D &scmi_virtio_ops, /* for non-realtime virtio devices */ .max_rx_timeout_ms =3D VIRTIO_MAX_RX_TIMEOUT_MS, --=20 2.45.2 From nobody Fri Dec 19 18:30:47 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7BABA1A2C3D; Tue, 30 Jul 2024 14:48:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350882; cv=none; b=SAyykfVGERofLTQECI4LmfJAcI/SFnUC8DTvgSIDvRTiS9j62zljo9gHnImlZw1RbIbmScy3jyiUzBAKH7zoTCyFGo+ibaonhZ5sFbR48YtimcxSRgjuPvQUW/wq3menDZZMY2B2S+tpymtrrxEJY1+o1w6bJ72wtdGAHFxO000= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350882; c=relaxed/simple; bh=r9EWGC0sIAIRiDN+Z7UHs0WD0LCi6bKRK2M5DHWDROE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HcnBxZQU4pgnWBXqNgROC+JdbT97iim1EjK/B5FYNRHqQ+mxUfV6q4VO2wsIjx8VPxGVIx3rwZAsuWSYjetgbf9FCn7YzihruHxs0gbNj1CBLVvsRxulfOadNjuihjmd6x+czvTdEwSHD+NGx7PkMtLZz/y1kvW7O+NPOkZigR8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 73BEA1007; Tue, 30 Jul 2024 07:48:25 -0700 (PDT) Received: from pluto.guestnet.cambridge.arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D67013F766; Tue, 30 Jul 2024 07:47:56 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm-scmi@vger.kernel.org, devicetree@vger.kernel.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, f.fainelli@gmail.com, vincent.guittot@linaro.org, etienne.carriere@st.com, peng.fan@oss.nxp.com, michal.simek@amd.com, quic_sibis@quicinc.com, quic_nkela@quicinc.com, dan.carpenter@linaro.org, souvik.chakravarty@arm.com, robh@kernel.org, krzk+dt@kernel.org, Peng Fan , Cristian Marussi Subject: [PATCH v1 2/6] dt-bindings: firmware: arm,scmi: Introduce property max-rx-timeout-ms Date: Tue, 30 Jul 2024 15:47:03 +0100 Message-ID: <20240730144707.1647025-3-cristian.marussi@arm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240730144707.1647025-1-cristian.marussi@arm.com> References: <20240730144707.1647025-1-cristian.marussi@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peng Fan System Controller Management Interface(SCMI) firmwares might have different designs depending on the platform: the maximum receive channel timeout value might vary depending on the specific underlying hardware and firmware design choices. Introduce the general property max-rx-timeout-ms property to describe the transport needs of a specific platform design. Reviewed-by: Rob Herring (Arm) Signed-off-by: Peng Fan [Cristian: reworded commit message, s/mailbox/transport in description] Signed-off-by: Cristian Marussi --- Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Doc= umentation/devicetree/bindings/firmware/arm,scmi.yaml index 4d823f3b1f0e..7c9fa07e2ff2 100644 --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml @@ -121,6 +121,13 @@ properties: atomic mode of operation, even if requested. default: 0 =20 + max-rx-timeout-ms: + description: + An optional time value, expressed in milliseconds, representing the + transport maximum timeout value for the receive channel. The value s= hould + be a non-zero value if set. + minimum: 1 + arm,smc-id: $ref: /schemas/types.yaml#/definitions/uint32 description: --=20 2.45.2 From nobody Fri Dec 19 18:30:47 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7C2B71A38DC; Tue, 30 Jul 2024 14:48:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350884; cv=none; b=gb7wahVJbliYdjofIQxjugGXJeksLta/D1m6dzoRlys/RB6eHpPcf0nTuzPxcmiEu2eww1WrW3iMEE5ux6mBGlMMksWBZQSoj1hzrSrGv6Gv4pZO0jjyWtVFP40B4SuOBNpIclG6HJ6Cwxjm54PoCy/wXwmYAifXC2Vbvxgx3NU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350884; c=relaxed/simple; bh=nZi9fwkzJW3/B5O8IGUlj0FY93R9FbQCXSMKA6Bk61g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ryb0HNNpGRhEgTu8DzydBEHX0DncP8QrXdfH8s+V4v+uMWzMsZ7/cKqTCNVHexHg1Gp4i9tmnW8cN39r7JD6IfnBU0Rioc9xSh27gffVUhItAcLQP/715gcHHn0MVXq4U1s5PxuCwIMJaCJB+VazIVG3mUP/cj0Qz8jkhdmRe0E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B69D11007; Tue, 30 Jul 2024 07:48:28 -0700 (PDT) Received: from pluto.guestnet.cambridge.arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2E5CE3F766; Tue, 30 Jul 2024 07:48:00 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm-scmi@vger.kernel.org, devicetree@vger.kernel.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, f.fainelli@gmail.com, vincent.guittot@linaro.org, etienne.carriere@st.com, peng.fan@oss.nxp.com, michal.simek@amd.com, quic_sibis@quicinc.com, quic_nkela@quicinc.com, dan.carpenter@linaro.org, souvik.chakravarty@arm.com, robh@kernel.org, krzk+dt@kernel.org, Cristian Marussi , Peng Fan Subject: [PATCH v1 3/6] firmware: arm_scmi: Use max-rx-timeout-ms from devicetree Date: Tue, 30 Jul 2024 15:47:04 +0100 Message-ID: <20240730144707.1647025-4-cristian.marussi@arm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240730144707.1647025-1-cristian.marussi@arm.com> References: <20240730144707.1647025-1-cristian.marussi@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Override default maximum RX timeout with the value picked from the devicetree, when provided. Suggested-by: Peng Fan Signed-off-by: Cristian Marussi --- drivers/firmware/arm_scmi/driver.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi= /driver.c index 332cd5207bbc..e7dab0eea540 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -2964,6 +2964,7 @@ static int scmi_debugfs_raw_mode_setup(struct scmi_in= fo *info) static const struct scmi_desc *scmi_transport_setup(struct device *dev) { struct scmi_transport *trans; + int ret; =20 trans =3D dev_get_platdata(dev); if (!trans || !trans->desc || !trans->supplier || !trans->core_ops) @@ -2980,6 +2981,14 @@ static const struct scmi_desc *scmi_transport_setup(= struct device *dev) =20 dev_info(dev, "Using %s\n", dev_driver_string(trans->supplier)); =20 + ret =3D of_property_read_u32(dev->of_node, "max-rx-timeout-ms", + &trans->desc->max_rx_timeout_ms); + if (ret && ret !=3D -EINVAL) + dev_err(dev, "Malformed max-rx-timeout-ms DT property.\n"); + + dev_info(dev, "SCMI max-rx-timeout: %dms\n", + trans->desc->max_rx_timeout_ms); + return trans->desc; } =20 --=20 2.45.2 From nobody Fri Dec 19 18:30:47 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D6CB11A2C1D; Tue, 30 Jul 2024 14:48:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350888; cv=none; b=EhzyEWe3q9qkbFCyXLt8L5i3Pv0WoCrhehzjWOwe43/ImLfPfej1xc3l9M02cyoCA0C9JU8KbepRUYOyYamg7ohov6Sk9NH2OJtFsOOCg12kD+jzoeHtSYpkGy2KGPjnUMkQ7L3rdfR+61oBz+GGiyqCzmgP3+7DQa/4Yl4gVn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350888; c=relaxed/simple; bh=YhATQi0Nq1bF8X1z89kQr3gf7o9r391kgyrhAZEwTJ0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Nst/2Xy0/l1YaDsEki9cBKKKXyP2pLPR+LbZAnY7qszeqnLvlAQWYTuw4+xIj9eqa9zSGAIrKD8ngChmWlb+r0uFwDn5YAjuprEQtTaMxl1LhN00lHeSf4FELON1wIbY14irjkZQ4zFNt2DQmy//oOxLEHuRQREF/VbwVjCVgcc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CA7BD106F; Tue, 30 Jul 2024 07:48:31 -0700 (PDT) Received: from pluto.guestnet.cambridge.arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6B0783F766; Tue, 30 Jul 2024 07:48:03 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm-scmi@vger.kernel.org, devicetree@vger.kernel.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, f.fainelli@gmail.com, vincent.guittot@linaro.org, etienne.carriere@st.com, peng.fan@oss.nxp.com, michal.simek@amd.com, quic_sibis@quicinc.com, quic_nkela@quicinc.com, dan.carpenter@linaro.org, souvik.chakravarty@arm.com, robh@kernel.org, krzk+dt@kernel.org, Cristian Marussi Subject: [PATCH v1 4/6] dt-bindings: firmware: arm,scmi: Introduce more transport properties Date: Tue, 30 Jul 2024 15:47:05 +0100 Message-ID: <20240730144707.1647025-5-cristian.marussi@arm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240730144707.1647025-1-cristian.marussi@arm.com> References: <20240730144707.1647025-1-cristian.marussi@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Depending on hardware and firmware design choices different platforms can end-up having different requirements around transport features. Introduce max-msg-size and max-msg properties to describe platform specific transport constraints. Signed-off-by: Cristian Marussi --- .../devicetree/bindings/firmware/arm,scmi.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Doc= umentation/devicetree/bindings/firmware/arm,scmi.yaml index 7c9fa07e2ff2..998fde321d82 100644 --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml @@ -128,6 +128,21 @@ properties: be a non-zero value if set. minimum: 1 =20 + max-msg-size: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + An optional value, expressed in bytes, representing the transport ma= ximum + message size. The value should at least allow for the 4-bytes SCMI m= essage + header to be transmitted if set. + minimum: 4 + + max-msg: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + An optional value representing the transport maximum number of concu= rrent + in-flight messages. The value should be a non-zero value if set. + minimum: 1 + arm,smc-id: $ref: /schemas/types.yaml#/definitions/uint32 description: --=20 2.45.2 From nobody Fri Dec 19 18:30:47 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1C41E1A3BB7; Tue, 30 Jul 2024 14:48:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350891; cv=none; b=N8BXYBzRmI7I6P2p2yHrQ5WZD+bJ5mXvIZWn2xERz0coPfTVwfCDEYXiP1BhUDZnZbMGl8KtNhI09B1dcm86mbjD7R4t25x2wWagAOCK7UHmSevJk+4y+UHlZiRp0jCYb1yfI2KZKPHLpZK72FEIPgW1+Sz6YS75EzIllBc8XIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350891; c=relaxed/simple; bh=fAYayJWEJghDVq/MkzUI7txEIHh26n/qL/Sbjq1/CX0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VahuLTg7ux5zOBfy11TnjjAfJLBZiFA6wcU/MhASB1C8hhq5FJCr+bLBTdFseJJ2nlNaYSFHPyV+OxrlLahr6MsHyFaG3Ggmax9dkkpaj66AepNqxo+QTUy3dv/payNYdRsdtA8SKsdxGTmkTwipLL6tYJg5WLz+vIneJMjstQc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D6F041007; Tue, 30 Jul 2024 07:48:34 -0700 (PDT) Received: from pluto.guestnet.cambridge.arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 807D53F766; Tue, 30 Jul 2024 07:48:06 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm-scmi@vger.kernel.org, devicetree@vger.kernel.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, f.fainelli@gmail.com, vincent.guittot@linaro.org, etienne.carriere@st.com, peng.fan@oss.nxp.com, michal.simek@amd.com, quic_sibis@quicinc.com, quic_nkela@quicinc.com, dan.carpenter@linaro.org, souvik.chakravarty@arm.com, robh@kernel.org, krzk+dt@kernel.org, Cristian Marussi Subject: [PATCH v1 5/6] firmware: arm_scmi: Use max_msg and max_msg_size from devicetree Date: Tue, 30 Jul 2024 15:47:06 +0100 Message-ID: <20240730144707.1647025-6-cristian.marussi@arm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240730144707.1647025-1-cristian.marussi@arm.com> References: <20240730144707.1647025-1-cristian.marussi@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Override max_msg and max_msg_size transport properties when corresponding devicetree properties are available. Signed-off-by: Cristian Marussi --- drivers/firmware/arm_scmi/driver.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi= /driver.c index e7dab0eea540..8295e63be38e 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -2986,8 +2986,20 @@ static const struct scmi_desc *scmi_transport_setup(= struct device *dev) if (ret && ret !=3D -EINVAL) dev_err(dev, "Malformed max-rx-timeout-ms DT property.\n"); =20 - dev_info(dev, "SCMI max-rx-timeout: %dms\n", - trans->desc->max_rx_timeout_ms); + ret =3D of_property_read_u32(dev->of_node, "max-msg-size", + &trans->desc->max_msg_size); + if (ret && ret !=3D -EINVAL) + dev_err(dev, "Malformed max-msg-size DT property.\n"); + + ret =3D of_property_read_u32(dev->of_node, "max-msg", + &trans->desc->max_msg); + if (ret && ret !=3D -EINVAL) + dev_err(dev, "Malformed max-msg DT property.\n"); + + dev_info(dev, + "SCMI max-rx-timeout: %dms / max-msg-size: %dbytes / max-msg: %d\n", + trans->desc->max_rx_timeout_ms, trans->desc->max_msg_size, + trans->desc->max_msg); =20 return trans->desc; } --=20 2.45.2 From nobody Fri Dec 19 18:30:47 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 302631A3BD7; Tue, 30 Jul 2024 14:48:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350894; cv=none; b=FrSM4gqwbxxnhXhcOLumSTxndEgWoIsv9t4/VpY0Lnr2Rz34ICe7GEVJDlQag3TiC4zrJi55g7rCFKmH7h+l8mTbBRh++86YGBiQZcRhFscRqz49Lr/wC6d/0YlBLl89BBBZGEbdMEj43z3OFxQoZXEgLDZubpUiMH1EV8dUa4Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722350894; c=relaxed/simple; bh=/98SPjl3bs049AFP8/MXLSTbsr2VdIQZ/hmRsPc75N8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bg7UdZur+hKANKnBIuHeKOr0Zaam1/QjRzCcMXjc1mB5RpDNaDX/4qzUf/a6VikK3/89G+ycYwIxZJ/VaSydBnW1ZOCFzWCTB1pOesb4jgB0qu/HqcXtg3Df0ErTDrF5P6WQhd6HMfD9w/z4ckiZj4oGcZyZ5MlYz0BDy5Tie9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 255921007; Tue, 30 Jul 2024 07:48:38 -0700 (PDT) Received: from pluto.guestnet.cambridge.arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8BD2D3F766; Tue, 30 Jul 2024 07:48:09 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm-scmi@vger.kernel.org, devicetree@vger.kernel.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, f.fainelli@gmail.com, vincent.guittot@linaro.org, etienne.carriere@st.com, peng.fan@oss.nxp.com, michal.simek@amd.com, quic_sibis@quicinc.com, quic_nkela@quicinc.com, dan.carpenter@linaro.org, souvik.chakravarty@arm.com, robh@kernel.org, krzk+dt@kernel.org, Cristian Marussi Subject: [PATCH v1 6/6] firmware: arm_scmi: Relocate atomic_threshold to scmi_desc Date: Tue, 30 Jul 2024 15:47:07 +0100 Message-ID: <20240730144707.1647025-7-cristian.marussi@arm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240730144707.1647025-1-cristian.marussi@arm.com> References: <20240730144707.1647025-1-cristian.marussi@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Relocate the atomic_threshold field to scmi_desc and move the related code to scmi_transport_setup. No functional change. Signed-off-by: Cristian Marussi --- drivers/firmware/arm_scmi/common.h | 7 +++++++ drivers/firmware/arm_scmi/driver.c | 25 +++++++++---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi= /common.h index 5261dc9b5f96..3bb5fdc0d57d 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -223,6 +223,12 @@ struct scmi_transport_ops { * be pending simultaneously in the system. May be overridden by the * get_max_msg op. * @max_msg_size: Maximum size of data per message that can be handled. + * @atomic_threshold: Optional system wide DT-configured threshold, expres= sed + * in microseconds, for atomic operations. + * Only SCMI synchronous commands reported by the platform + * to have an execution latency lesser-equal to the threshold + * should be considered for atomic mode operation: such + * decision is finally left up to the SCMI drivers. * @force_polling: Flag to force this whole transport to use SCMI core pol= ling * mechanism instead of completion interrupts even if available. * @sync_cmds_completed_on_ret: Flag to indicate that the transport assures @@ -241,6 +247,7 @@ struct scmi_desc { int max_rx_timeout_ms; int max_msg; int max_msg_size; + unsigned int atomic_threshold; const bool force_polling; const bool sync_cmds_completed_on_ret; const bool atomic_enabled; diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi= /driver.c index 8295e63be38e..26781e678cc3 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -147,12 +147,6 @@ struct scmi_debug_info { * base protocol * @active_protocols: IDR storing device_nodes for protocols actually defi= ned * in the DT and confirmed as implemented by fw. - * @atomic_threshold: Optional system wide DT-configured threshold, expres= sed - * in microseconds, for atomic operations. - * Only SCMI synchronous commands reported by the platform - * to have an execution latency lesser-equal to the threshold - * should be considered for atomic mode operation: such - * decision is finally left up to the SCMI drivers. * @notify_priv: Pointer to private data structure specific to notificatio= ns. * @node: List head * @users: Number of users of this instance @@ -178,7 +172,6 @@ struct scmi_info { struct mutex protocols_mtx; u8 *protocols_imp; struct idr active_protocols; - unsigned int atomic_threshold; void *notify_priv; struct list_head node; int users; @@ -2427,7 +2420,7 @@ static bool scmi_is_transport_atomic(const struct scm= i_handle *handle, ret =3D info->desc->atomic_enabled && is_transport_polling_capable(info->desc); if (ret && atomic_threshold) - *atomic_threshold =3D info->atomic_threshold; + *atomic_threshold =3D info->desc->atomic_threshold; =20 return ret; } @@ -2892,7 +2885,7 @@ static struct scmi_debug_info *scmi_debugfs_common_se= tup(struct scmi_info *info) (char **)&dbg->name); =20 debugfs_create_u32("atomic_threshold_us", 0400, top_dentry, - &info->atomic_threshold); + (u32 *)&info->desc->atomic_threshold); =20 debugfs_create_str("type", 0400, trans, (char **)&dbg->type); =20 @@ -3001,6 +2994,13 @@ static const struct scmi_desc *scmi_transport_setup(= struct device *dev) trans->desc->max_rx_timeout_ms, trans->desc->max_msg_size, trans->desc->max_msg); =20 + /* System wide atomic threshold for atomic ops .. if any */ + if (!of_property_read_u32(dev->of_node, "atomic-threshold-us", + &trans->desc->atomic_threshold)) + dev_info(dev, + "SCMI System wide atomic threshold set to %d us\n", + trans->desc->atomic_threshold); + return trans->desc; } =20 @@ -3050,13 +3050,6 @@ static int scmi_probe(struct platform_device *pdev) handle->devm_protocol_acquire =3D scmi_devm_protocol_acquire; handle->devm_protocol_get =3D scmi_devm_protocol_get; handle->devm_protocol_put =3D scmi_devm_protocol_put; - - /* System wide atomic threshold for atomic ops .. if any */ - if (!of_property_read_u32(np, "atomic-threshold-us", - &info->atomic_threshold)) - dev_info(dev, - "SCMI System wide atomic threshold set to %d us\n", - info->atomic_threshold); handle->is_transport_atomic =3D scmi_is_transport_atomic; =20 /* Setup all channels described in the DT at first */ --=20 2.45.2