Re: [PATCH] thermal: imx: add NVMEM dependency

From: Leonard Crestez
Date: Tue Sep 19 2017 - 06:53:29 EST


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@xxxxxxxx>

Reviewed-by: Leonard Crestez <leonard.crestez@xxxxxxx>

> 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?