Skip to content

Commit

Permalink
ACPI: power: Use u8 as the power resource state data type
Browse files Browse the repository at this point in the history
Use u8 as the data type for representing the state of an ACPI
power resource.

It is s not necessary to use int for that and because subsequent
changes are going to use ACPI_POWER_RESOURCE_STATE_UNKNOWN, it is
better to adjust the data type so that the "unknown" state is
represented by the "all ones" value.

While at it, clean up acpi_power_get_state() somewhat.

No intentional functional impact.

Tested-by: Dave Olsthoorn <dave@bewaar.me>
Tested-by: Shujun Wang <wsj20369@163.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Rafael J. Wysocki committed May 31, 2021
1 parent e4ada4c commit 587024b
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions drivers/acpi/power.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,10 +182,11 @@ int acpi_extract_power_resources(union acpi_object *package, unsigned int start,
return err;
}

static int acpi_power_get_state(acpi_handle handle, int *state)
static int acpi_power_get_state(acpi_handle handle, u8 *state)
{
acpi_status status = AE_OK;
unsigned long long sta = 0;
u8 cur_state;

if (!handle || !state)
return -EINVAL;
Expand All @@ -194,25 +195,24 @@ static int acpi_power_get_state(acpi_handle handle, int *state)
if (ACPI_FAILURE(status))
return -ENODEV;

*state = (sta & 0x01)?ACPI_POWER_RESOURCE_STATE_ON:
ACPI_POWER_RESOURCE_STATE_OFF;
cur_state = sta & ACPI_POWER_RESOURCE_STATE_ON;

acpi_handle_debug(handle, "Power resource is %s\n",
*state ? "on" : "off");
cur_state ? "on" : "off");

*state = cur_state;
return 0;
}

static int acpi_power_get_list_state(struct list_head *list, int *state)
static int acpi_power_get_list_state(struct list_head *list, u8 *state)
{
struct acpi_power_resource_entry *entry;
int cur_state;
u8 cur_state = ACPI_POWER_RESOURCE_STATE_OFF;

if (!list || !state)
return -EINVAL;

/* The state of the list is 'on' IFF all resources are 'on'. */
cur_state = 0;
list_for_each_entry(entry, list, node) {
struct acpi_power_resource *resource = entry->resource;
acpi_handle handle = resource->device.handle;
Expand Down Expand Up @@ -592,7 +592,7 @@ int acpi_power_wakeup_list_init(struct list_head *list, int *system_level_p)
struct acpi_power_resource *resource = entry->resource;
acpi_handle handle = resource->device.handle;
int result;
int state;
u8 state;

mutex_lock(&resource->resource_lock);

Expand Down Expand Up @@ -789,8 +789,8 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev)

int acpi_power_get_inferred_state(struct acpi_device *device, int *state)
{
u8 list_state = ACPI_POWER_RESOURCE_STATE_OFF;
int result = 0;
int list_state = 0;
int i = 0;

if (!device || !state)
Expand Down Expand Up @@ -919,7 +919,8 @@ struct acpi_device *acpi_add_power_resource(acpi_handle handle)
union acpi_object acpi_object;
struct acpi_buffer buffer = { sizeof(acpi_object), &acpi_object };
acpi_status status;
int state, result = -ENODEV;
int result;
u8 state;

acpi_bus_get_device(handle, &device);
if (device)
Expand Down Expand Up @@ -979,7 +980,8 @@ void acpi_resume_power_resources(void)
mutex_lock(&power_resource_list_lock);

list_for_each_entry(resource, &acpi_power_resource_list, list_node) {
int result, state;
int result;
u8 state;

mutex_lock(&resource->resource_lock);

Expand Down Expand Up @@ -1012,7 +1014,8 @@ static void acpi_power_turn_off_if_unused(struct acpi_power_resource *resource,
if (resource->users > 0)
return;
} else {
int result, state;
int result;
u8 state;

result = acpi_power_get_state(resource->device.handle, &state);
if (result || state == ACPI_POWER_RESOURCE_STATE_OFF)
Expand Down

0 comments on commit 587024b

Please sign in to comment.