ACPI: power: Use u8 as the power resource state data type
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 24 May 2021 15:24:16 +0000 (17:24 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 31 May 2021 11:59:01 +0000 (13:59 +0200)
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>
drivers/acpi/power.c

index 97c9a94..106a5d3 100644 (file)
@@ -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;
@@ -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;
@@ -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);
 
@@ -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)
@@ -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)
@@ -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);
 
@@ -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)