[PATCH] firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL=m

From: Zeng Heng
Date: Tue Oct 15 2024 - 21:25:34 EST


When build with CONFIG_TI_SCI_PROTOCOL=m && CONFIG_TI_K3_M4_REMOTEPROC=y,
compilation tool chain would throw the following error message:

arm-linux-gnueabi-ld: drivers/remoteproc/ti_k3_m4_remoteproc.o:
in function `k3_m4_rproc_probe':
ti_k3_m4_remoteproc.c:(.text+0xc24):
undefined reference to `devm_ti_sci_get_by_phandle'

This is because devm_ti_sci_get_by_phandle() is compiled into the driver
module rather than compiled into kernel, it causes compilation couldn't
find the reference of devm_ti_sci_get_by_phandle() when tool chain tries
to link ti_k3_m4_remoteproc.o into kernel image.

Replace IS_ENABLED with IS_REACHABLE to fix the problem.

Reported-by: kernel test robot <lkp@xxxxxxxxx>
Closes: https://lore.kernel.org/all/202410150837.FOGlkGvW-lkp@xxxxxxxxx/
Fixes: aa276781a64a ("firmware: Add basic support for TI System Control Interface (TI-SCI) protocol")
Signed-off-by: Zeng Heng <zengheng4@xxxxxxxxxx>
---
include/linux/soc/ti/ti_sci_protocol.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/soc/ti/ti_sci_protocol.h b/include/linux/soc/ti/ti_sci_protocol.h
index bd0d11af76c5..cd44ee7f294b 100644
--- a/include/linux/soc/ti/ti_sci_protocol.h
+++ b/include/linux/soc/ti/ti_sci_protocol.h
@@ -572,7 +572,7 @@ struct ti_sci_resource {
struct ti_sci_resource_desc *desc;
};

-#if IS_ENABLED(CONFIG_TI_SCI_PROTOCOL)
+#if IS_REACHABLE(CONFIG_TI_SCI_PROTOCOL)
const struct ti_sci_handle *ti_sci_get_handle(struct device *dev);
int ti_sci_put_handle(const struct ti_sci_handle *handle);
const struct ti_sci_handle *devm_ti_sci_get_handle(struct device *dev);
--
2.25.1