ACPI: Use acpi_fetch_acpi_dev() instead of acpi_bus_get_device()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 3 Dec 2021 16:37:10 +0000 (17:37 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 17 Dec 2021 17:45:51 +0000 (18:45 +0100)
Modify the ACPI code to use acpi_fetch_acpi_dev() instead of
acpi_bus_get_device() where applicable.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
13 files changed:
drivers/acpi/acpi_video.c
drivers/acpi/device_pm.c
drivers/acpi/dock.c
drivers/acpi/pci_link.c
drivers/acpi/pci_root.c
drivers/acpi/power.c
drivers/acpi/processor_driver.c
drivers/acpi/processor_idle.c
drivers/acpi/property.c
drivers/acpi/resource.c
drivers/acpi/thermal.c
drivers/acpi/video_detect.c
drivers/acpi/x86/s2idle.c

index 42ede05..990ff5b 100644 (file)
@@ -1733,13 +1733,12 @@ acpi_video_bus_match(acpi_handle handle, u32 level, void *context,
 {
        struct acpi_device *device = context;
        struct acpi_device *sibling;
-       int result;
 
        if (handle == device->handle)
                return AE_CTRL_TERMINATE;
 
-       result = acpi_bus_get_device(handle, &sibling);
-       if (result)
+       sibling = acpi_fetch_acpi_dev(handle);
+       if (!sibling)
                return AE_OK;
 
        if (!strcmp(acpi_device_name(sibling), ACPI_VIDEO_BUS_NAME))
index 19b33c0..cc6c97e 100644 (file)
@@ -285,14 +285,12 @@ EXPORT_SYMBOL(acpi_device_set_power);
 
 int acpi_bus_set_power(acpi_handle handle, int state)
 {
-       struct acpi_device *device;
-       int result;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
 
-       result = acpi_bus_get_device(handle, &device);
-       if (result)
-               return result;
+       if (device)
+               return acpi_device_set_power(device, state);
 
-       return acpi_device_set_power(device, state);
+       return -ENODEV;
 }
 EXPORT_SYMBOL(acpi_bus_set_power);
 
@@ -410,21 +408,20 @@ EXPORT_SYMBOL_GPL(acpi_device_update_power);
 
 int acpi_bus_update_power(acpi_handle handle, int *state_p)
 {
-       struct acpi_device *device;
-       int result;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
 
-       result = acpi_bus_get_device(handle, &device);
-       return result ? result : acpi_device_update_power(device, state_p);
+       if (device)
+               return acpi_device_update_power(device, state_p);
+
+       return -ENODEV;
 }
 EXPORT_SYMBOL_GPL(acpi_bus_update_power);
 
 bool acpi_bus_power_manageable(acpi_handle handle)
 {
-       struct acpi_device *device;
-       int result;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
 
-       result = acpi_bus_get_device(handle, &device);
-       return result ? false : device->flags.power_manageable;
+       return device && device->flags.power_manageable;
 }
 EXPORT_SYMBOL(acpi_bus_power_manageable);
 
@@ -543,11 +540,9 @@ acpi_status acpi_remove_pm_notifier(struct acpi_device *adev)
 
 bool acpi_bus_can_wakeup(acpi_handle handle)
 {
-       struct acpi_device *device;
-       int result;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
 
-       result = acpi_bus_get_device(handle, &device);
-       return result ? false : device->wakeup.flags.valid;
+       return device && device->wakeup.flags.valid;
 }
 EXPORT_SYMBOL(acpi_bus_can_wakeup);
 
index c8e9b96..a89bdbe 100644 (file)
@@ -489,9 +489,8 @@ static ssize_t docked_show(struct device *dev,
                           struct device_attribute *attr, char *buf)
 {
        struct dock_station *dock_station = dev->platform_data;
-       struct acpi_device *adev = NULL;
+       struct acpi_device *adev = acpi_fetch_acpi_dev(dock_station->handle);
 
-       acpi_bus_get_device(dock_station->handle, &adev);
        return sysfs_emit(buf, "%u\n", acpi_device_enumerated(adev));
 }
 static DEVICE_ATTR_RO(docked);
index cb7b900..d54fb8e 100644 (file)
@@ -606,12 +606,10 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
 int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
                               int *polarity, char **name)
 {
-       int result;
-       struct acpi_device *device;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
        struct acpi_pci_link *link;
 
-       result = acpi_bus_get_device(handle, &device);
-       if (result) {
+       if (!device) {
                acpi_handle_err(handle, "Invalid link device\n");
                return -1;
        }
@@ -658,12 +656,10 @@ int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
  */
 int acpi_pci_link_free_irq(acpi_handle handle)
 {
-       struct acpi_device *device;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
        struct acpi_pci_link *link;
-       acpi_status result;
 
-       result = acpi_bus_get_device(handle, &device);
-       if (result) {
+       if (!device) {
                acpi_handle_err(handle, "Invalid link device\n");
                return -1;
        }
index ab2f7df..41a8fef 100644 (file)
@@ -67,11 +67,10 @@ static struct acpi_scan_handler pci_root_handler = {
  */
 int acpi_is_root_bridge(acpi_handle handle)
 {
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
        int ret;
-       struct acpi_device *device;
 
-       ret = acpi_bus_get_device(handle, &device);
-       if (ret)
+       if (!device)
                return 0;
 
        ret = acpi_match_device_ids(device, root_device_ids);
@@ -215,11 +214,10 @@ static acpi_status acpi_pci_query_osc(struct acpi_pci_root *root,
 
 struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
 {
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
        struct acpi_pci_root *root;
-       struct acpi_device *device;
 
-       if (acpi_bus_get_device(handle, &device) ||
-           acpi_match_device_ids(device, root_device_ids))
+       if (!device || acpi_match_device_ids(device, root_device_ids))
                return NULL;
 
        root = acpi_driver_data(device);
index 5dcb02e..7e50bbf 100644 (file)
@@ -81,9 +81,9 @@ struct acpi_power_resource *to_power_resource(struct acpi_device *device)
 
 static struct acpi_power_resource *acpi_power_get_context(acpi_handle handle)
 {
-       struct acpi_device *device;
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
 
-       if (acpi_bus_get_device(handle, &device))
+       if (!device)
                return NULL;
 
        return to_power_resource(device);
@@ -916,15 +916,14 @@ static void acpi_power_add_resource_to_list(struct acpi_power_resource *resource
 
 struct acpi_device *acpi_add_power_resource(acpi_handle handle)
 {
+       struct acpi_device *device = acpi_fetch_acpi_dev(handle);
        struct acpi_power_resource *resource;
-       struct acpi_device *device = NULL;
        union acpi_object acpi_object;
        struct acpi_buffer buffer = { sizeof(acpi_object), &acpi_object };
        acpi_status status;
        u8 state_dummy;
        int result;
 
-       acpi_bus_get_device(handle, &device);
        if (device)
                return device;
 
index 77541f9..368a9ed 100644 (file)
@@ -98,8 +98,13 @@ static int acpi_soft_cpu_online(unsigned int cpu)
        struct acpi_processor *pr = per_cpu(processors, cpu);
        struct acpi_device *device;
 
-       if (!pr || acpi_bus_get_device(pr->handle, &device))
+       if (!pr)
+               return 0;
+
+       device = acpi_fetch_acpi_dev(pr->handle);
+       if (!device)
                return 0;
+
        /*
         * CPU got physically hotplugged and onlined for the first time:
         * Initialize missing things.
@@ -125,9 +130,8 @@ static int acpi_soft_cpu_online(unsigned int cpu)
 static int acpi_soft_cpu_dead(unsigned int cpu)
 {
        struct acpi_processor *pr = per_cpu(processors, cpu);
-       struct acpi_device *device;
 
-       if (!pr || acpi_bus_get_device(pr->handle, &device))
+       if (!pr || !acpi_fetch_acpi_dev(pr->handle))
                return 0;
 
        acpi_processor_reevaluate_tstate(pr, true);
index 76ef1bc..ef17b95 100644 (file)
@@ -1101,7 +1101,7 @@ static int acpi_processor_get_lpi_info(struct acpi_processor *pr)
 
        status = acpi_get_parent(handle, &pr_ahandle);
        while (ACPI_SUCCESS(status)) {
-               acpi_bus_get_device(pr_ahandle, &d);
+               d = acpi_fetch_acpi_dev(pr_ahandle);
                handle = pr_ahandle;
 
                if (strcmp(acpi_device_hid(d), ACPI_PROCESSOR_CONTAINER_HID))
index e312eba..86987f9 100644 (file)
@@ -687,9 +687,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode,
                if (index)
                        return -EINVAL;
 
-               ret = acpi_bus_get_device(obj->reference.handle, &device);
-               if (ret)
-                       return ret == -ENODEV ? -EINVAL : ret;
+               device = acpi_fetch_acpi_dev(obj->reference.handle);
+               if (!device)
+                       return -EINVAL;
 
                args->fwnode = acpi_fwnode_handle(device);
                args->nargs = 0;
@@ -719,9 +719,8 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode,
                if (element->type == ACPI_TYPE_LOCAL_REFERENCE) {
                        struct fwnode_handle *ref_fwnode;
 
-                       ret = acpi_bus_get_device(element->reference.handle,
-                                                 &device);
-                       if (ret)
+                       device = acpi_fetch_acpi_dev(element->reference.handle);
+                       if (!device)
                                return -EINVAL;
 
                        nargs = 0;
index 3c25ce8..c2d4947 100644 (file)
@@ -791,9 +791,9 @@ static acpi_status acpi_res_consumer_cb(acpi_handle handle, u32 depth,
 {
        struct resource *res = context;
        struct acpi_device **consumer = (struct acpi_device **) ret;
-       struct acpi_device *adev;
+       struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
 
-       if (acpi_bus_get_device(handle, &adev))
+       if (!adev)
                return AE_OK;
 
        if (acpi_dev_consumes_res(adev, res)) {
index 95105db..75cda13 100644 (file)
@@ -697,7 +697,6 @@ static int acpi_thermal_cooling_device_cb(struct thermal_zone_device *thermal,
        struct acpi_device *device = cdev->devdata;
        struct acpi_thermal *tz = thermal->devdata;
        struct acpi_device *dev;
-       acpi_status status;
        acpi_handle handle;
        int i;
        int j;
@@ -715,8 +714,8 @@ static int acpi_thermal_cooling_device_cb(struct thermal_zone_device *thermal,
                for (i = 0; i < tz->trips.passive.devices.count;
                    i++) {
                        handle = tz->trips.passive.devices.handles[i];
-                       status = acpi_bus_get_device(handle, &dev);
-                       if (ACPI_FAILURE(status) || dev != device)
+                       dev = acpi_fetch_acpi_dev(handle);
+                       if (dev != device)
                                continue;
                        if (bind)
                                result =
@@ -741,8 +740,8 @@ static int acpi_thermal_cooling_device_cb(struct thermal_zone_device *thermal,
                    j < tz->trips.active[i].devices.count;
                    j++) {
                        handle = tz->trips.active[i].devices.handles[j];
-                       status = acpi_bus_get_device(handle, &dev);
-                       if (ACPI_FAILURE(status) || dev != device)
+                       dev = acpi_fetch_acpi_dev(handle);
+                       if (dev != device)
                                continue;
                        if (bind)
                                result = thermal_zone_bind_cooling_device
index 068e393..4f64713 100644 (file)
@@ -59,18 +59,16 @@ static void acpi_video_parse_cmdline(void)
 static acpi_status
 find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 {
+       struct acpi_device *acpi_dev = acpi_fetch_acpi_dev(handle);
        long *cap = context;
        struct pci_dev *dev;
-       struct acpi_device *acpi_dev;
 
        static const struct acpi_device_id video_ids[] = {
                {ACPI_VIDEO_HID, 0},
                {"", 0},
        };
-       if (acpi_bus_get_device(handle, &acpi_dev))
-               return AE_OK;
 
-       if (!acpi_match_device_ids(acpi_dev, video_ids)) {
+       if (acpi_dev && !acpi_match_device_ids(acpi_dev, video_ids)) {
                dev = acpi_get_pci_dev(handle);
                if (!dev)
                        return AE_OK;
index 1c48358..abc06e7 100644 (file)
@@ -293,9 +293,9 @@ static void lpi_check_constraints(void)
 
        for (i = 0; i < lpi_constraints_table_size; ++i) {
                acpi_handle handle = lpi_constraints_table[i].handle;
-               struct acpi_device *adev;
+               struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
 
-               if (!handle || acpi_bus_get_device(handle, &adev))
+               if (!adev)
                        continue;
 
                acpi_handle_debug(handle,