Skip to content

Commit 3f4b116

Browse files
Pratik Vishwakarmarafaeljw
authored andcommitted
ACPI: PM: s2idle: Add support for multiple func mask
Required for follow-up patch adding new UUID needing new function mask. Signed-off-by: Pratik Vishwakarma <[email protected]> Tested-by: Julian Sikorski <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent 4a012dc commit 3f4b116

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

drivers/acpi/x86/s2idle.c

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -309,14 +309,15 @@ static void lpi_check_constraints(void)
309309
}
310310
}
311311

312-
static void acpi_sleep_run_lps0_dsm(unsigned int func)
312+
static void acpi_sleep_run_lps0_dsm(unsigned int func, unsigned int func_mask, guid_t dsm_guid)
313313
{
314314
union acpi_object *out_obj;
315315

316-
if (!(lps0_dsm_func_mask & (1 << func)))
316+
if (!(func_mask & (1 << func)))
317317
return;
318318

319-
out_obj = acpi_evaluate_dsm(lps0_device_handle, &lps0_dsm_guid, rev_id, func, NULL);
319+
out_obj = acpi_evaluate_dsm(lps0_device_handle, &dsm_guid,
320+
rev_id, func, NULL);
320321
ACPI_FREE(out_obj);
321322

322323
acpi_handle_debug(lps0_device_handle, "_DSM function %u evaluation %s\n",
@@ -412,11 +413,15 @@ int acpi_s2idle_prepare_late(void)
412413
lpi_check_constraints();
413414

414415
if (acpi_s2idle_vendor_amd()) {
415-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_OFF_AMD);
416-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_ENTRY_AMD);
416+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_OFF_AMD,
417+
lps0_dsm_func_mask, lps0_dsm_guid);
418+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_ENTRY_AMD,
419+
lps0_dsm_func_mask, lps0_dsm_guid);
417420
} else {
418-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_OFF);
419-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_ENTRY);
421+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_OFF,
422+
lps0_dsm_func_mask, lps0_dsm_guid);
423+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_ENTRY,
424+
lps0_dsm_func_mask, lps0_dsm_guid);
420425
}
421426

422427
return 0;
@@ -428,11 +433,15 @@ void acpi_s2idle_restore_early(void)
428433
return;
429434

430435
if (acpi_s2idle_vendor_amd()) {
431-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT_AMD);
432-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_ON_AMD);
436+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT_AMD,
437+
lps0_dsm_func_mask, lps0_dsm_guid);
438+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_ON_AMD,
439+
lps0_dsm_func_mask, lps0_dsm_guid);
433440
} else {
434-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT);
435-
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_ON);
441+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT,
442+
lps0_dsm_func_mask, lps0_dsm_guid);
443+
acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_ON,
444+
lps0_dsm_func_mask, lps0_dsm_guid);
436445
}
437446
}
438447

0 commit comments

Comments
 (0)