On Fri, Jun 2, 2023 at 9:32 PM Mario Limonciello <mario.limonciello@xxxxxxx> wrote: > > Enabling debugging messages for the state requires turning on dynamic > debugging for the file. To make it more accessible, use > `pm_debug_messages` and clearer strings for what is happening. > > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> I'm inclined to apply this one and the [1/4] at this point. I can also apply the 2 remaining patches in this series if I get ACKs for them from the respective subsystem maintainers. > --- > drivers/acpi/x86/s2idle.c | 52 ++++++++++++++++++++++++++++++++++----- > 1 file changed, 46 insertions(+), 6 deletions(-) > > diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c > index e499c60c4579..7681f6ecab67 100644 > --- a/drivers/acpi/x86/s2idle.c > +++ b/drivers/acpi/x86/s2idle.c > @@ -59,6 +59,7 @@ static int lps0_dsm_func_mask; > > static guid_t lps0_dsm_guid_microsoft; > static int lps0_dsm_func_mask_microsoft; > +static int lps0_dsm_state; > > /* Device constraint entry structure */ > struct lpi_device_info { > @@ -320,6 +321,44 @@ static void lpi_check_constraints(void) > } > } > > +static bool acpi_s2idle_vendor_amd(void) > +{ > + return boot_cpu_data.x86_vendor == X86_VENDOR_AMD; > +} > + > +static const char *acpi_sleep_dsm_state_to_str(unsigned int state) > +{ > + if (lps0_dsm_func_mask_microsoft || !acpi_s2idle_vendor_amd()) { > + switch (state) { > + case ACPI_LPS0_SCREEN_OFF: > + return "screen off"; > + case ACPI_LPS0_SCREEN_ON: > + return "screen on"; > + case ACPI_LPS0_ENTRY: > + return "lps0 entry"; > + case ACPI_LPS0_EXIT: > + return "lps0 exit"; > + case ACPI_LPS0_MS_ENTRY: > + return "lps0 ms entry"; > + case ACPI_LPS0_MS_EXIT: > + return "lps0 ms exit"; > + } > + } else { > + switch (state) { > + case ACPI_LPS0_SCREEN_ON_AMD: > + return "screen on"; > + case ACPI_LPS0_SCREEN_OFF_AMD: > + return "screen off"; > + case ACPI_LPS0_ENTRY_AMD: > + return "lps0 entry"; > + case ACPI_LPS0_EXIT_AMD: > + return "lps0 exit"; > + } > + } > + > + return "unknown"; > +} > + > static void acpi_sleep_run_lps0_dsm(unsigned int func, unsigned int func_mask, guid_t dsm_guid) > { > union acpi_object *out_obj; > @@ -331,14 +370,15 @@ static void acpi_sleep_run_lps0_dsm(unsigned int func, unsigned int func_mask, g > rev_id, func, NULL); > ACPI_FREE(out_obj); > > - acpi_handle_debug(lps0_device_handle, "_DSM function %u evaluation %s\n", > - func, out_obj ? "successful" : "failed"); > + lps0_dsm_state = func; > + if (pm_debug_messages_on) { > + acpi_handle_info(lps0_device_handle, > + "%s transitioned to state %s\n", > + out_obj ? "Successfully" : "Failed to", > + acpi_sleep_dsm_state_to_str(lps0_dsm_state)); > + } > } > > -static bool acpi_s2idle_vendor_amd(void) > -{ > - return boot_cpu_data.x86_vendor == X86_VENDOR_AMD; > -} > > static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *dsm_guid) > { > -- > 2.34.1 >