Message ID | 20241016013922.1392290-1-zengheng4@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL=m | expand |
On Wed, Oct 16, 2024 at 09:39:22AM +0800, Zeng Heng wrote: > 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@intel.com> > Closes: https://lore.kernel.org/all/202410150837.FOGlkGvW-lkp@intel.com/ > Fixes: aa276781a64a ("firmware: Add basic support for TI System Control Interface (TI-SCI) protocol") > Signed-off-by: Zeng Heng <zengheng4@huawei.com> > --- > 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) I have applied Arnd's patch [1] to fix this problem. Thanks, Mathieu [1]. https://lore.kernel.org/lkml/e6c84b91-20ce-474a-87f8-9faeb64f3724@app.fastmail.com/T/ > 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 > >
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);
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@intel.com> Closes: https://lore.kernel.org/all/202410150837.FOGlkGvW-lkp@intel.com/ Fixes: aa276781a64a ("firmware: Add basic support for TI System Control Interface (TI-SCI) protocol") Signed-off-by: Zeng Heng <zengheng4@huawei.com> --- include/linux/soc/ti/ti_sci_protocol.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)