thermal: mediatek: add missing dependencies
diff mbox

Message ID 1455921381-1881305-1-git-send-email-arnd@arndb.de
State New
Headers show

Commit Message

Arnd Bergmann Feb. 19, 2016, 10:36 p.m. UTC
The newly added mtk_thermal driver uses the generic reset
and nvmem infrastructure, but lacks a dependency that enforces
them from actually being present:

drivers/thermal/mtk_thermal.c: In function 'mtk_thermal_probe':
drivers/thermal/mtk_thermal.c:560:8: error: implicit declaration of function 'device_reset' [-Werror=implicit-function-declaration]
drivers/thermal/built-in.o: In function `mtk_thermal_probe':
mtk_thermal.c:(.text+0x7fb0): undefined reference to `nvmem_cell_get'
mtk_thermal.c:(.text+0x7fd8): undefined reference to `nvmem_cell_read'
mtk_thermal.c:(.text+0x7fe4): undefined reference to `nvmem_cell_put'

Without CONFIG_THERMAL, the driver cannot build, so this needs
to be a hard dependency.

For CONFIG_NVMEM, the header file allows building the driver even
when the subsystem is disabled, but we get the link error above
when nvmem is built as a module and the thermal driver is built-in,
so we can allow compile-testing when NVMEM is completely disabled,
but otherwise require the dependency.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/thermal/Kconfig | 2 ++
 1 file changed, 2 insertions(+)

Comments

Sascha Hauer Feb. 23, 2016, 8:55 a.m. UTC | #1
Hi Arnd,

On Fri, Feb 19, 2016 at 11:36:06PM +0100, Arnd Bergmann wrote:
> The newly added mtk_thermal driver uses the generic reset
> and nvmem infrastructure, but lacks a dependency that enforces
> them from actually being present:
> 
> drivers/thermal/mtk_thermal.c: In function 'mtk_thermal_probe':
> drivers/thermal/mtk_thermal.c:560:8: error: implicit declaration of function 'device_reset' [-Werror=implicit-function-declaration]
> drivers/thermal/built-in.o: In function `mtk_thermal_probe':
> mtk_thermal.c:(.text+0x7fb0): undefined reference to `nvmem_cell_get'
> mtk_thermal.c:(.text+0x7fd8): undefined reference to `nvmem_cell_read'
> mtk_thermal.c:(.text+0x7fe4): undefined reference to `nvmem_cell_put'
> 
> Without CONFIG_THERMAL, the driver cannot build, so this needs
> to be a hard dependency.

s/CONFIG_THERMAL/CONFIG_RESET_CONTROLLER/ ?

> 
> For CONFIG_NVMEM, the header file allows building the driver even
> when the subsystem is disabled, but we get the link error above
> when nvmem is built as a module and the thermal driver is built-in,
> so we can allow compile-testing when NVMEM is completely disabled,
> but otherwise require the dependency.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/thermal/Kconfig | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
> index 5e7c97a3f1d8..75d164341f0d 100644
> --- a/drivers/thermal/Kconfig
> +++ b/drivers/thermal/Kconfig
> @@ -368,6 +368,8 @@ config INTEL_PCH_THERMAL
>  config MTK_THERMAL
>  	tristate "Temperature sensor driver for mediatek SoCs"
>  	depends on ARCH_MEDIATEK || COMPILE_TEST
> +	depends on NVMEM || (!NVMEM && COMPILE_TEST)

This doesn't work as expected. When NVMEM is off I can still not select
MTK_THERMAL, even when COMPILE_TEST is enabled.

Even if it would work, do we really want this? It raises eyebrows and
without reading the commit messages it's probably not clear what's going
on here. I don't see that much value in it.

Sascha

Patch
diff mbox

diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index 5e7c97a3f1d8..75d164341f0d 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -368,6 +368,8 @@  config INTEL_PCH_THERMAL
 config MTK_THERMAL
 	tristate "Temperature sensor driver for mediatek SoCs"
 	depends on ARCH_MEDIATEK || COMPILE_TEST
+	depends on NVMEM || (!NVMEM && COMPILE_TEST)
+	depends on RESET_CONTROLLER
 	default y
 	help
 	  Enable this option if you want to have support for thermal management