Message ID | 20170918204825.159177-1-arnd@arndb.de |
---|---|
State | Accepted |
Commit | 531fcdeb71f0be1d4c77838b1a4694c317b1eb98 |
Headers | show |
Series | thermal: imx: add NVMEM dependency | expand |
On Mon, 2017-09-18 at 22:48 +0200, Arnd Bergmann wrote: > The driver now fails to link into vmlinux when CONFIG_NVMEM is a loadable > module: > > drivers/thermal/imx_thermal.o: In function `imx_thermal_probe': > imx_thermal.c:(.text+0x360): undefined reference to > `nvmem_cell_read_u32' > imx_thermal.c:(.text+0x360): relocation truncated to fit: > R_AARCH64_CALL26 against undefined symbol `nvmem_cell_read_u32' > imx_thermal.c:(.text+0x388): undefined reference to > `nvmem_cell_read_u32' > imx_thermal.c:(.text+0x388): relocation truncated to fit: > R_AARCH64_CALL26 against undefined symbol `nvmem_cell_read_u32' > > This adds a Kconfig dependency to force it to be a module as well > when its dependency is loadable. This must be a very strange config with NVMEM=m and IMX_THERMAL=y on arm64. Still, it makes sense that it should work at least at the Kconfig level. > Fixes: 7fe5ba04fcdc ("thermal: imx: Add support for reading OCOTP through nvmem") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com> > diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig > index 07002df4f83a..cb14f1ec5953 100644 > --- a/drivers/thermal/Kconfig > +++ b/drivers/thermal/Kconfig > @@ -206,6 +206,7 @@ config HISI_THERMAL > config IMX_THERMAL > tristate "Temperature sensor driver for Freescale i.MX SoCs" > depends on (ARCH_MXC && CPU_THERMAL) || COMPILE_TEST > + depends on NVMEM || !NVMEM The || !NVMEM part is so that it also works when NVMEM=n, right?
On Tue, Sep 19, 2017 at 12:53 PM, Leonard Crestez <leonard.crestez@nxp.com> wrote: > On Mon, 2017-09-18 at 22:48 +0200, Arnd Bergmann wrote: >> diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig >> index 07002df4f83a..cb14f1ec5953 100644 >> --- a/drivers/thermal/Kconfig >> +++ b/drivers/thermal/Kconfig >> @@ -206,6 +206,7 @@ config HISI_THERMAL >> config IMX_THERMAL >> tristate "Temperature sensor driver for Freescale i.MX SoCs" >> depends on (ARCH_MXC && CPU_THERMAL) || COMPILE_TEST >> + depends on NVMEM || !NVMEM > > The || !NVMEM part is so that it also works when NVMEM=n, right? Correct, this is a very strange Kconfig expression when you see it the first time, but we do the same thing in a lot of places that can either use another subsystem when it is enabled (but have a link-time dependency), or can work fine without it. Arnd
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index 07002df4f83a..cb14f1ec5953 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -206,6 +206,7 @@ config HISI_THERMAL config IMX_THERMAL tristate "Temperature sensor driver for Freescale i.MX SoCs" depends on (ARCH_MXC && CPU_THERMAL) || COMPILE_TEST + depends on NVMEM || !NVMEM depends on MFD_SYSCON depends on OF help
The driver now fails to link into vmlinux when CONFIG_NVMEM is a loadable module: drivers/thermal/imx_thermal.o: In function `imx_thermal_probe': imx_thermal.c:(.text+0x360): undefined reference to `nvmem_cell_read_u32' imx_thermal.c:(.text+0x360): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `nvmem_cell_read_u32' imx_thermal.c:(.text+0x388): undefined reference to `nvmem_cell_read_u32' imx_thermal.c:(.text+0x388): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `nvmem_cell_read_u32' This adds a Kconfig dependency to force it to be a module as well when its dependency is loadable. Fixes: 7fe5ba04fcdc ("thermal: imx: Add support for reading OCOTP through nvmem") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/thermal/Kconfig | 1 + 1 file changed, 1 insertion(+) -- 2.9.0