diff options
| author | Mario Limonciello <mario.limonciello@amd.com> | 2022-08-29 11:29:49 -0500 |
|---|---|---|
| committer | Hans de Goede <hdegoede@redhat.com> | 2022-09-09 17:37:40 +0200 |
| commit | 811d59fdf56a17c66742578fe8be8a6a841af448 (patch) | |
| tree | ecb1c30c5e5082ba8e3d7c664323717db40d822a /include/linux | |
| parent | 76fba1221e3045570478381c3436c8c2a2656376 (diff) | |
| download | linux-811d59fdf56a17c66742578fe8be8a6a841af448.tar.gz linux-811d59fdf56a17c66742578fe8be8a6a841af448.tar.bz2 linux-811d59fdf56a17c66742578fe8be8a6a841af448.zip | |
ACPI: s2idle: Add a new ->check() callback for platform_s2idle_ops
On some platforms it is found that Linux more aggressively enters s2idle
than Windows enters Modern Standby and this uncovers some synchronization
issues for the platform. To aid in debugging this class of problems in
the future, add support for an extra optional callback intended for
drivers to emit extra debugging.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20220829162953.5947-2-mario.limonciello@amd.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/acpi.h | 1 | ||||
| -rw-r--r-- | include/linux/suspend.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 6f64b2f3dc54..acaa2ddc067d 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1075,6 +1075,7 @@ acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, struct acpi_s2idle_dev_ops { struct list_head list_node; void (*prepare)(void); + void (*check)(void); void (*restore)(void); }; int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg); diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 70f2921e2e70..03ed42ed2c7f 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -191,6 +191,7 @@ struct platform_s2idle_ops { int (*begin)(void); int (*prepare)(void); int (*prepare_late)(void); + void (*check)(void); bool (*wake)(void); void (*restore_early)(void); void (*restore)(void); |
