Message ID | 20211026141317.2999103-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | rtc: x86: amd-pmc: fix build failure with CONFIG_RTC_SYSTOHC=n | expand |
[Public] > -----Original Message----- > From: Arnd Bergmann <arnd@kernel.org> > Sent: Tuesday, October 26, 2021 09:12 > To: linux-rtc@vger.kernel.org; Alexandre Belloni > <alexandre.belloni@bootlin.com>; S-k, Shyam-sundar <Shyam-sundar.S- > k@amd.com>; Hans de Goede <hdegoede@redhat.com>; Mark Gross > <markgross@kernel.org>; Limonciello, Mario <Mario.Limonciello@amd.com> > Cc: Arnd Bergmann <arnd@arndb.de>; Goswami, Sanket > <Sanket.Goswami@amd.com>; Sachi King <nakato@nakato.io>; platform- > driver-x86@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: [PATCH] rtc: x86: amd-pmc: fix build failure with > CONFIG_RTC_SYSTOHC=n > > From: Arnd Bergmann <arnd@arndb.de> > > The newly added logic to set the RTC during suspend from > platform specific code fails with a link error here: > > drivers/platform/x86/amd-pmc.c:428:30: error: use of undeclared identifier > 'CONFIG_RTC_SYSTOHC_DEVICE' > > Add an #ifdef so this is only done if the functionality > is enabled. > > Fixes: 59348401ebed ("platform/x86: amd-pmc: Add special handling for timer > based S0i3 wakeup") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Hey Arnd, Thanks for the patch. We had discussed this a bit already and there are 2 other ideas out on the list already that also solve it. > --- > drivers/platform/x86/amd-pmc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c > index 678bf6874c63..8bd5de4d9d3a 100644 > --- a/drivers/platform/x86/amd-pmc.c > +++ b/drivers/platform/x86/amd-pmc.c > @@ -414,6 +414,7 @@ static int amd_pmc_get_os_hint(struct amd_pmc_dev > *dev) > return -EINVAL; > } > > +#ifdef CONFIG_RTC_SYSTOHC > static int amd_pmc_verify_czn_rtc(struct amd_pmc_dev *pdev, u32 *arg) > { > struct rtc_device *rtc_device; > @@ -461,6 +462,7 @@ static int amd_pmc_verify_czn_rtc(struct amd_pmc_dev > *pdev, u32 *arg) > > return rc; > } > +#endif > > static int __maybe_unused amd_pmc_suspend(struct device *dev) > { > @@ -473,12 +475,14 @@ static int __maybe_unused amd_pmc_suspend(struct > device *dev) > amd_pmc_send_cmd(pdev, 0, NULL, SMU_MSG_LOG_RESET, 0); > amd_pmc_send_cmd(pdev, 0, NULL, SMU_MSG_LOG_START, 0); > > +#ifdef CONFIG_RTC_SYSTOHC > /* Activate CZN specific RTC functionality */ > if (pdev->cpu_id == AMD_CPU_ID_CZN) { > rc = amd_pmc_verify_czn_rtc(pdev, &arg); > if (rc < 0) > return rc; > } > +#endif > > /* Dump the IdleMask before we send hint to SMU */ > amd_pmc_idlemask_read(pdev, dev, NULL); > -- > 2.29.2
diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c index 678bf6874c63..8bd5de4d9d3a 100644 --- a/drivers/platform/x86/amd-pmc.c +++ b/drivers/platform/x86/amd-pmc.c @@ -414,6 +414,7 @@ static int amd_pmc_get_os_hint(struct amd_pmc_dev *dev) return -EINVAL; } +#ifdef CONFIG_RTC_SYSTOHC static int amd_pmc_verify_czn_rtc(struct amd_pmc_dev *pdev, u32 *arg) { struct rtc_device *rtc_device; @@ -461,6 +462,7 @@ static int amd_pmc_verify_czn_rtc(struct amd_pmc_dev *pdev, u32 *arg) return rc; } +#endif static int __maybe_unused amd_pmc_suspend(struct device *dev) { @@ -473,12 +475,14 @@ static int __maybe_unused amd_pmc_suspend(struct device *dev) amd_pmc_send_cmd(pdev, 0, NULL, SMU_MSG_LOG_RESET, 0); amd_pmc_send_cmd(pdev, 0, NULL, SMU_MSG_LOG_START, 0); +#ifdef CONFIG_RTC_SYSTOHC /* Activate CZN specific RTC functionality */ if (pdev->cpu_id == AMD_CPU_ID_CZN) { rc = amd_pmc_verify_czn_rtc(pdev, &arg); if (rc < 0) return rc; } +#endif /* Dump the IdleMask before we send hint to SMU */ amd_pmc_idlemask_read(pdev, dev, NULL);