Message ID | 20230809185453.40916-3-mario.limonciello@amd.com |
---|---|
State | New |
Headers | show |
Series | Fix wakeup problems on some AMD platforms | expand |
On Wed, Aug 09, 2023 at 01:54:46PM -0500, Mario Limonciello wrote: > The #ifdef currently is guarded against CONFIG_X86, but these are > actually sleep related functions so they should be tied to > CONFIG_ACPI_SLEEP. > > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> > --- > v9->v10: > * split from other patches > --- > include/linux/acpi.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/acpi.h b/include/linux/acpi.h > index 0d5277b7c6323..13a0fca3539f0 100644 > --- a/include/linux/acpi.h > +++ b/include/linux/acpi.h > @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state, > > acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, > u32 val_a, u32 val_b); > -#ifdef CONFIG_X86 > +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) What's the connection to CONFIG_ACPI_SLEEP? The acpi_register_lps0_dev() implementation in drivers/acpi/x86/s2idle.c is under #ifdef CONFIG_SUSPEND (and obviously s2idle.c is only compiled at all if CONFIG_X86). Both callers (amd_pmc_probe() and thinkpad_acpi_module_init()) are under #ifdef CONFIG_SUSPEND. > struct acpi_s2idle_dev_ops { > struct list_head list_node; > void (*prepare)(void); > @@ -1109,7 +1109,7 @@ struct acpi_s2idle_dev_ops { > }; > int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg); > void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg); > -#endif /* CONFIG_X86 */ > +#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */ > #ifndef CONFIG_IA64 > void arch_reserve_mem_area(acpi_physical_address addr, size_t size); > #else > -- > 2.34.1 >
On 8/15/2023 13:28, Bjorn Helgaas wrote: > On Wed, Aug 09, 2023 at 01:54:46PM -0500, Mario Limonciello wrote: >> The #ifdef currently is guarded against CONFIG_X86, but these are >> actually sleep related functions so they should be tied to >> CONFIG_ACPI_SLEEP. >> >> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> >> --- >> v9->v10: >> * split from other patches >> --- >> include/linux/acpi.h | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/include/linux/acpi.h b/include/linux/acpi.h >> index 0d5277b7c6323..13a0fca3539f0 100644 >> --- a/include/linux/acpi.h >> +++ b/include/linux/acpi.h >> @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state, >> >> acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, >> u32 val_a, u32 val_b); >> -#ifdef CONFIG_X86 >> +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) > > What's the connection to CONFIG_ACPI_SLEEP? > > The acpi_register_lps0_dev() implementation in > drivers/acpi/x86/s2idle.c is under #ifdef CONFIG_SUSPEND (and > obviously s2idle.c is only compiled at all if CONFIG_X86). > > Both callers (amd_pmc_probe() and thinkpad_acpi_module_init()) are > under #ifdef CONFIG_SUSPEND. > My thought process was that s2idle.c is from drivers/acpi/x86 and only can be used in the context of ACPI enabled sleep. But I could see the argument for CONFIG_SUSPEND being stronger. I'll adjust and make sure the rest of the series works with CONFIG_SUSPEND. Thanks, >> struct acpi_s2idle_dev_ops { >> struct list_head list_node; >> void (*prepare)(void); >> @@ -1109,7 +1109,7 @@ struct acpi_s2idle_dev_ops { >> }; >> int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg); >> void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg); >> -#endif /* CONFIG_X86 */ >> +#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */ >> #ifndef CONFIG_IA64 >> void arch_reserve_mem_area(acpi_physical_address addr, size_t size); >> #else >> -- >> 2.34.1 >>
On Tue, Aug 15, 2023 at 01:32:05PM -0500, Mario Limonciello wrote: > On 8/15/2023 13:28, Bjorn Helgaas wrote: > > On Wed, Aug 09, 2023 at 01:54:46PM -0500, Mario Limonciello wrote: > > > The #ifdef currently is guarded against CONFIG_X86, but these are > > > actually sleep related functions so they should be tied to > > > CONFIG_ACPI_SLEEP. > > > > > > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> > > > --- > > > v9->v10: > > > * split from other patches > > > --- > > > include/linux/acpi.h | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/include/linux/acpi.h b/include/linux/acpi.h > > > index 0d5277b7c6323..13a0fca3539f0 100644 > > > --- a/include/linux/acpi.h > > > +++ b/include/linux/acpi.h > > > @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state, > > > acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, > > > u32 val_a, u32 val_b); > > > -#ifdef CONFIG_X86 > > > +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) > > > > What's the connection to CONFIG_ACPI_SLEEP? > > > > The acpi_register_lps0_dev() implementation in > > drivers/acpi/x86/s2idle.c is under #ifdef CONFIG_SUSPEND (and > > obviously s2idle.c is only compiled at all if CONFIG_X86). > > > > Both callers (amd_pmc_probe() and thinkpad_acpi_module_init()) are > > under #ifdef CONFIG_SUSPEND. > > My thought process was that s2idle.c is from drivers/acpi/x86 and only can > be used in the context of ACPI enabled sleep. > > But I could see the argument for CONFIG_SUSPEND being stronger. I'll adjust > and make sure the rest of the series works with CONFIG_SUSPEND. It's very hard to verify that it's correct if the declaration is under a different #ifdef than the implementation, whereas it's trivial if it uses the same #ifdef. Bjorn
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 0d5277b7c6323..13a0fca3539f0 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state, acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b); -#ifdef CONFIG_X86 +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) struct acpi_s2idle_dev_ops { struct list_head list_node; void (*prepare)(void); @@ -1109,7 +1109,7 @@ struct acpi_s2idle_dev_ops { }; int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg); void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg); -#endif /* CONFIG_X86 */ +#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */ #ifndef CONFIG_IA64 void arch_reserve_mem_area(acpi_physical_address addr, size_t size); #else
The #ifdef currently is guarded against CONFIG_X86, but these are actually sleep related functions so they should be tied to CONFIG_ACPI_SLEEP. Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> --- v9->v10: * split from other patches --- include/linux/acpi.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)