mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
ACPI: x86: Add pm_debug_messages for LPS0 _DSM state tracking
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@amd.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
cdb8c100d8
commit
f75400603f
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user