Re: [PATCH] rtc: bd70528: fix link error
From: Vaittinen, Matti
Date: Mon Jul 08 2019 - 09:24:56 EST
Hello Arnd,
Thanks for taking a look on this!
On Mon, 2019-07-08 at 14:41 +0200, Arnd Bergmann wrote:
> With CONFIG_BD70528_WATCHDOG=m, a built-in rtc driver cannot call
> into the low-level functions that are part of the watchdog module:
>
> drivers/rtc/rtc-bd70528.o: In function `bd70528_set_time':
> rtc-bd70528.c:(.text+0x22c): undefined reference to
> `bd70528_wdt_lock'
> rtc-bd70528.c:(.text+0x2a8): undefined reference to
> `bd70528_wdt_unlock'
> drivers/rtc/rtc-bd70528.o: In function
> `bd70528_set_rtc_based_timers':
> rtc-bd70528.c:(.text+0x50c): undefined reference to `bd70528_wdt_set'
>
> Add a Kconfig dependency on this driver, but still allow compile-
> testing
> without it.
>
> Fixes: 32a4a4ebf768 ("rtc: bd70528: Initial support for ROHM bd70528
> RTC")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/rtc/Kconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
> index 3bfc04a86529..7b071cc74422 100644
> --- a/drivers/rtc/Kconfig
> +++ b/drivers/rtc/Kconfig
> @@ -498,8 +498,10 @@ config RTC_DRV_M41T80_WDT
> help
> If you say Y here you will get support for the
> watchdog timer in the ST M41T60 and M41T80 RTC chips series.
> +
> config RTC_DRV_BD70528
> tristate "ROHM BD70528 PMIC RTC"
> + depends on BD70528_WATCHDOG || (COMPILE_TEST &&
> !BD70528_WATCHDOG)
I am not fan of this. There may well be use-cases where it is desirable
to leave the watchdog out but still compile in the RTC. This is why we
have static inline stubs in the header for cases where WDG is not
compiled in. (RTC does not need to stop WDG if WDG driver is not
included)
Adding dependency from RTC to MFD for BD70528 should be done - this
will avoid most of the issues (And there has been few patches sent for
this already). But that's still not complete solution because
configuring RTC and MFD to be built in-kernel and WDG as a module will
cause errors again.
Is there a way to force WDG in-kernel if RTC is in-kernel? (Or
disallow configuring RTC in-kernel if WDG is a module - while still
allow RTC to be built without WDG?
> help
> If you say Y here you will get support for the RTC
> on ROHM BD70528 Power Management IC.