imx.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs
@ 2025-08-25  7:00 Peng Fan
  2025-08-25  7:00 ` [PATCH v2 1/3] firmware: imx: Add stub functions for SCMI MISC API Peng Fan
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Peng Fan @ 2025-08-25  7:00 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Arnd Bergmann, Sudeep Holla, Cristian Marussi
  Cc: imx, linux-arm-kernel, linux-kernel, Peng Fan

To ensure successful builds when CONFIG_IMX_SCMI_[MISC,CPU,LMM]_DRV are not
enabled, this patchset adds static inline stub implementations:

These stubs return -EOPNOTSUPP to indicate that the functionality is not
supported in the current configuration. This avoids potential build or
link errors in code that conditionally calls these functions based on
feature availability.

The initial support for SCMI MISC API was to use CONFIG_IMX_SCMI_MISC_EXT
to guard the API. But this is wrong. There was an commit [1] that tried to
address build issue for MISC API, but the better fix should use
CONFIG_IMX_SCMI_MISC_DRV to guard the APIs. Because when user driver
reference the APIs, but CONFIG_IMX_SCMI_MISC_DRV is not defined, there
will be link error.

This patchset is to fix the issues for all the three drivers.

I add Fixes tag to the patchset, so I not delay the sending until RC1.

[1] 540c830212ed ("firmware: imx: remove duplicate scmi_imx_misc_ctrl_get()")

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Changes in v2:
- Add R-b from Cristian
- Update commit log in patch 1 per Arnd
- Link to v1: https://lore.kernel.org/r/20250807-imx9-sm-v1-0-3489e41a6fda@nxp.com

---
Peng Fan (3):
      firmware: imx: Add stub functions for SCMI MISC API
      firmware: imx: Add stub functions for SCMI LMM API
      firmware: imx: Add stub functions for SCMI CPU API

 include/linux/firmware/imx/sm.h | 47 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
---
base-commit: 706168a6b4c3560b7930a2b00899f4e6e8520b22
change-id: 20250807-imx9-sm-bea018f06042

Best regards,
-- 
Peng Fan <peng.fan@nxp.com>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/3] firmware: imx: Add stub functions for SCMI MISC API
  2025-08-25  7:00 [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
@ 2025-08-25  7:00 ` Peng Fan
  2025-08-25  7:00 ` [PATCH v2 2/3] firmware: imx: Add stub functions for SCMI LMM API Peng Fan
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Peng Fan @ 2025-08-25  7:00 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Arnd Bergmann, Sudeep Holla, Cristian Marussi
  Cc: imx, linux-arm-kernel, linux-kernel, Peng Fan

To ensure successful builds when CONFIG_IMX_SCMI_MISC_DRV is not enabled,
this patch adds static inline stub implementations for the following
functions:

  - scmi_imx_misc_ctrl_get()
  - scmi_imx_misc_ctrl_set()

These stubs return -EOPNOTSUPP to indicate that the functionality is not
supported in the current configuration. This avoids potential build or
link errors in code that conditionally calls these functions based on
feature availability.

This patch also drops the changes in commit 540c830212ed ("firmware: imx:
remove duplicate scmi_imx_misc_ctrl_get()").

The original change aimed to simplify the handling of optional features by
removing conditional stubs. However, the use of conditional stubs is
necessary when CONFIG_IMX_SCMI_MISC_DRV is n, while consumer driver is
set to y.

This is not a matter of preserving legacy patterns, but rather to ensure
that there is no link error whether for module or built-in.

Fixes: 0b4f8a68b292 ("firmware: imx: Add i.MX95 MISC driver")
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 include/linux/firmware/imx/sm.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/include/linux/firmware/imx/sm.h b/include/linux/firmware/imx/sm.h
index d4212bc42b2c17fb8f94d58856a75beb5611ce4b..99c15bbb46aa8329b5aa8e03017e152074cdf492 100644
--- a/include/linux/firmware/imx/sm.h
+++ b/include/linux/firmware/imx/sm.h
@@ -26,8 +26,20 @@
 #define SCMI_IMX94_CTRL_SAI3_MCLK	5U	/*!< WAKE SAI3 MCLK */
 #define SCMI_IMX94_CTRL_SAI4_MCLK	6U	/*!< WAKE SAI4 MCLK */
 
+#if IS_ENABLED(CONFIG_IMX_SCMI_MISC_DRV)
 int scmi_imx_misc_ctrl_get(u32 id, u32 *num, u32 *val);
 int scmi_imx_misc_ctrl_set(u32 id, u32 val);
+#else
+static inline int scmi_imx_misc_ctrl_get(u32 id, u32 *num, u32 *val)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int scmi_imx_misc_ctrl_set(u32 id, u32 val)
+{
+	return -EOPNOTSUPP;
+}
+#endif
 
 int scmi_imx_cpu_start(u32 cpuid, bool start);
 int scmi_imx_cpu_started(u32 cpuid, bool *started);

-- 
2.37.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/3] firmware: imx: Add stub functions for SCMI LMM API
  2025-08-25  7:00 [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
  2025-08-25  7:00 ` [PATCH v2 1/3] firmware: imx: Add stub functions for SCMI MISC API Peng Fan
@ 2025-08-25  7:00 ` Peng Fan
  2025-08-25  7:00 ` [PATCH v2 3/3] firmware: imx: Add stub functions for SCMI CPU API Peng Fan
  2025-09-02 13:01 ` [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
  3 siblings, 0 replies; 5+ messages in thread
From: Peng Fan @ 2025-08-25  7:00 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Arnd Bergmann, Sudeep Holla, Cristian Marussi
  Cc: imx, linux-arm-kernel, linux-kernel, Peng Fan

To ensure successful builds when CONFIG_IMX_SCMI_LMM_DRV is not enabled,
this patch adds static inline stub implementations for the following
functions:

  - scmi_imx_lmm_operation()
  - scmi_imx_lmm_info()
  - scmi_imx_lmm_reset_vector_set()

These stubs return -EOPNOTSUPP to indicate that the functionality is not
supported in the current configuration. This avoids potential build or
link errors in code that conditionally calls these functions based on
feature availability.

Fixes: 7242bbf418f0 ("firmware: imx: Add i.MX95 SCMI LMM driver")
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 include/linux/firmware/imx/sm.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/include/linux/firmware/imx/sm.h b/include/linux/firmware/imx/sm.h
index 99c15bbb46aa8329b5aa8e03017e152074cdf492..f2a72177bb37c1d46145a60710e3809641e0f5a2 100644
--- a/include/linux/firmware/imx/sm.h
+++ b/include/linux/firmware/imx/sm.h
@@ -56,7 +56,24 @@ enum scmi_imx_lmm_op {
 #define SCMI_IMX_LMM_OP_FORCEFUL	0
 #define SCMI_IMX_LMM_OP_GRACEFUL	BIT(0)
 
+#if IS_ENABLED(CONFIG_IMX_SCMI_LMM_DRV)
 int scmi_imx_lmm_operation(u32 lmid, enum scmi_imx_lmm_op op, u32 flags);
 int scmi_imx_lmm_info(u32 lmid, struct scmi_imx_lmm_info *info);
 int scmi_imx_lmm_reset_vector_set(u32 lmid, u32 cpuid, u32 flags, u64 vector);
+#else
+static inline int scmi_imx_lmm_operation(u32 lmid, enum scmi_imx_lmm_op op, u32 flags)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int scmi_imx_lmm_info(u32 lmid, struct scmi_imx_lmm_info *info)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int scmi_imx_lmm_reset_vector_set(u32 lmid, u32 cpuid, u32 flags, u64 vector)
+{
+	return -EOPNOTSUPP;
+}
+#endif
 #endif

-- 
2.37.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 3/3] firmware: imx: Add stub functions for SCMI CPU API
  2025-08-25  7:00 [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
  2025-08-25  7:00 ` [PATCH v2 1/3] firmware: imx: Add stub functions for SCMI MISC API Peng Fan
  2025-08-25  7:00 ` [PATCH v2 2/3] firmware: imx: Add stub functions for SCMI LMM API Peng Fan
@ 2025-08-25  7:00 ` Peng Fan
  2025-09-02 13:01 ` [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
  3 siblings, 0 replies; 5+ messages in thread
From: Peng Fan @ 2025-08-25  7:00 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Arnd Bergmann, Sudeep Holla, Cristian Marussi
  Cc: imx, linux-arm-kernel, linux-kernel, Peng Fan

To ensure successful builds when CONFIG_IMX_SCMI_CPU_DRV is not enabled,
this patch adds static inline stub implementations for the following
functions:

  - scmi_imx_cpu_start()
  - scmi_imx_cpu_started()
  - scmi_imx_cpu_reset_vector_set()

These stubs return -EOPNOTSUPP to indicate that the functionality is not
supported in the current configuration. This avoids potential build or
link errors in code that conditionally calls these functions based on
feature availability.

Fixes: 1055faa5d660 ("firmware: imx: Add i.MX95 SCMI CPU driver")
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 include/linux/firmware/imx/sm.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/linux/firmware/imx/sm.h b/include/linux/firmware/imx/sm.h
index f2a72177bb37c1d46145a60710e3809641e0f5a2..a33b45027356751f4b8ad9b9136f0dd302a82520 100644
--- a/include/linux/firmware/imx/sm.h
+++ b/include/linux/firmware/imx/sm.h
@@ -41,10 +41,28 @@ static inline int scmi_imx_misc_ctrl_set(u32 id, u32 val)
 }
 #endif
 
+#if IS_ENABLED(CONFIG_IMX_SCMI_CPU_DRV)
 int scmi_imx_cpu_start(u32 cpuid, bool start);
 int scmi_imx_cpu_started(u32 cpuid, bool *started);
 int scmi_imx_cpu_reset_vector_set(u32 cpuid, u64 vector, bool start, bool boot,
 				  bool resume);
+#else
+static inline int scmi_imx_cpu_start(u32 cpuid, bool start)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int scmi_imx_cpu_started(u32 cpuid, bool *started)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int scmi_imx_cpu_reset_vector_set(u32 cpuid, u64 vector, bool start,
+						bool boot, bool resume)
+{
+	return -EOPNOTSUPP;
+}
+#endif
 
 enum scmi_imx_lmm_op {
 	SCMI_IMX_LMM_BOOT,

-- 
2.37.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs
  2025-08-25  7:00 [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
                   ` (2 preceding siblings ...)
  2025-08-25  7:00 ` [PATCH v2 3/3] firmware: imx: Add stub functions for SCMI CPU API Peng Fan
@ 2025-09-02 13:01 ` Peng Fan
  3 siblings, 0 replies; 5+ messages in thread
From: Peng Fan @ 2025-09-02 13:01 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Arnd Bergmann, Sudeep Holla, Cristian Marussi
  Cc: imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org

Hi Shawn,

> Subject: [PATCH v2 0/3] firmware: imx: Add stub functions for
> MISC/CPU/LMM APIs

Is this patchset good for you to pick up?

Thanks,
Peng.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-09-02 13:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-25  7:00 [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan
2025-08-25  7:00 ` [PATCH v2 1/3] firmware: imx: Add stub functions for SCMI MISC API Peng Fan
2025-08-25  7:00 ` [PATCH v2 2/3] firmware: imx: Add stub functions for SCMI LMM API Peng Fan
2025-08-25  7:00 ` [PATCH v2 3/3] firmware: imx: Add stub functions for SCMI CPU API Peng Fan
2025-09-02 13:01 ` [PATCH v2 0/3] firmware: imx: Add stub functions for MISC/CPU/LMM APIs Peng Fan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).