Commit 587024b8 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

ACPI: power: Use u8 as the power resource state data type

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: default avatarDave Olsthoorn <dave@bewaar.me>
Tested-by: default avatarShujun Wang <wsj20369@163.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent e4ada4c8
...@@ -182,10 +182,11 @@ int acpi_extract_power_resources(union acpi_object *package, unsigned int start, ...@@ -182,10 +182,11 @@ int acpi_extract_power_resources(union acpi_object *package, unsigned int start,
return err; 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; acpi_status status = AE_OK;
unsigned long long sta = 0; unsigned long long sta = 0;
u8 cur_state;
if (!handle || !state) if (!handle || !state)
return -EINVAL; return -EINVAL;
...@@ -194,25 +195,24 @@ static int acpi_power_get_state(acpi_handle handle, int *state) ...@@ -194,25 +195,24 @@ static int acpi_power_get_state(acpi_handle handle, int *state)
if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status))
return -ENODEV; return -ENODEV;
*state = (sta & 0x01)?ACPI_POWER_RESOURCE_STATE_ON: cur_state = sta & ACPI_POWER_RESOURCE_STATE_ON;
ACPI_POWER_RESOURCE_STATE_OFF;
acpi_handle_debug(handle, "Power resource is %s\n", acpi_handle_debug(handle, "Power resource is %s\n",
*state ? "on" : "off"); cur_state ? "on" : "off");
*state = cur_state;
return 0; 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; struct acpi_power_resource_entry *entry;
int cur_state; u8 cur_state = ACPI_POWER_RESOURCE_STATE_OFF;
if (!list || !state) if (!list || !state)
return -EINVAL; return -EINVAL;
/* The state of the list is 'on' IFF all resources are 'on'. */ /* The state of the list is 'on' IFF all resources are 'on'. */
cur_state = 0;
list_for_each_entry(entry, list, node) { list_for_each_entry(entry, list, node) {
struct acpi_power_resource *resource = entry->resource; struct acpi_power_resource *resource = entry->resource;
acpi_handle handle = resource->device.handle; acpi_handle handle = resource->device.handle;
...@@ -592,7 +592,7 @@ int acpi_power_wakeup_list_init(struct list_head *list, int *system_level_p) ...@@ -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; struct acpi_power_resource *resource = entry->resource;
acpi_handle handle = resource->device.handle; acpi_handle handle = resource->device.handle;
int result; int result;
int state; u8 state;
mutex_lock(&resource->resource_lock); mutex_lock(&resource->resource_lock);
...@@ -789,8 +789,8 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev) ...@@ -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) int acpi_power_get_inferred_state(struct acpi_device *device, int *state)
{ {
u8 list_state = ACPI_POWER_RESOURCE_STATE_OFF;
int result = 0; int result = 0;
int list_state = 0;
int i = 0; int i = 0;
if (!device || !state) if (!device || !state)
...@@ -919,7 +919,8 @@ struct acpi_device *acpi_add_power_resource(acpi_handle handle) ...@@ -919,7 +919,8 @@ struct acpi_device *acpi_add_power_resource(acpi_handle handle)
union acpi_object acpi_object; union acpi_object acpi_object;
struct acpi_buffer buffer = { sizeof(acpi_object), &acpi_object }; struct acpi_buffer buffer = { sizeof(acpi_object), &acpi_object };
acpi_status status; acpi_status status;
int state, result = -ENODEV; int result;
u8 state;
acpi_bus_get_device(handle, &device); acpi_bus_get_device(handle, &device);
if (device) if (device)
...@@ -979,7 +980,8 @@ void acpi_resume_power_resources(void) ...@@ -979,7 +980,8 @@ void acpi_resume_power_resources(void)
mutex_lock(&power_resource_list_lock); mutex_lock(&power_resource_list_lock);
list_for_each_entry(resource, &acpi_power_resource_list, list_node) { list_for_each_entry(resource, &acpi_power_resource_list, list_node) {
int result, state; int result;
u8 state;
mutex_lock(&resource->resource_lock); mutex_lock(&resource->resource_lock);
...@@ -1012,7 +1014,8 @@ static void acpi_power_turn_off_if_unused(struct acpi_power_resource *resource, ...@@ -1012,7 +1014,8 @@ static void acpi_power_turn_off_if_unused(struct acpi_power_resource *resource,
if (resource->users > 0) if (resource->users > 0)
return; return;
} else { } else {
int result, state; int result;
u8 state;
result = acpi_power_get_state(resource->device.handle, &state); result = acpi_power_get_state(resource->device.handle, &state);
if (result || state == ACPI_POWER_RESOURCE_STATE_OFF) if (result || state == ACPI_POWER_RESOURCE_STATE_OFF)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment