mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
ACPI: x86: s2idle: Add a function to get LPS0 constraint for a device
Other parts of the kernel may use LPS0 constraints information to make decisions on what power state to put a device into. Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> [ rjw: Rewrite kerneldoc, rearrange if () statement, edit subject and changelog ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
4123398811
commit
1c2a66d47d
2 changed files with 30 additions and 0 deletions
|
@ -299,6 +299,30 @@ free_acpi_buffer:
|
|||
ACPI_FREE(out_obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* acpi_get_lps0_constraint - Get the LPS0 constraint for a device.
|
||||
* @adev: Device to get the constraint for.
|
||||
*
|
||||
* The LPS0 constraint is the shallowest (minimum) power state in which the
|
||||
* device can be so as to allow the platform as a whole to achieve additional
|
||||
* energy conservation by utilizing a system-wide low-power state.
|
||||
*
|
||||
* Returns:
|
||||
* - ACPI power state value of the constraint for @adev on success.
|
||||
* - Otherwise, ACPI_STATE_UNKNOWN.
|
||||
*/
|
||||
int acpi_get_lps0_constraint(struct acpi_device *adev)
|
||||
{
|
||||
struct lpi_constraints *entry;
|
||||
|
||||
for_each_lpi_constraint(entry) {
|
||||
if (adev->handle == entry->handle)
|
||||
return entry->min_dstate;
|
||||
}
|
||||
|
||||
return ACPI_STATE_UNKNOWN;
|
||||
}
|
||||
|
||||
static void lpi_check_constraints(void)
|
||||
{
|
||||
struct lpi_constraints *entry;
|
||||
|
|
|
@ -1109,6 +1109,12 @@ 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);
|
||||
int acpi_get_lps0_constraint(struct acpi_device *adev);
|
||||
#else /* CONFIG_SUSPEND && CONFIG_X86 */
|
||||
static inline int acpi_get_lps0_constraint(struct device *dev)
|
||||
{
|
||||
return ACPI_STATE_UNKNOWN;
|
||||
}
|
||||
#endif /* CONFIG_SUSPEND && CONFIG_X86 */
|
||||
#ifndef CONFIG_IA64
|
||||
void arch_reserve_mem_area(acpi_physical_address addr, size_t size);
|
||||
|
|
Loading…
Add table
Reference in a new issue