ACPI: property: use cached name in acpi_fwnode_get_named_child_node()
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Tue, 9 Jun 2020 13:22:39 +0000 (16:22 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 22 Jun 2020 15:08:58 +0000 (17:08 +0200)
There is no need to re-evaluate the object name.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/property.c

index e601c45..6941062 100644 (file)
@@ -606,13 +606,7 @@ static struct fwnode_handle *
 acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode,
                                 const char *childname)
 {
-       char name[ACPI_PATH_SEGMENT_LENGTH];
        struct fwnode_handle *child;
-       struct acpi_buffer path;
-       acpi_status status;
-
-       path.length = sizeof(name);
-       path.pointer = name;
 
        fwnode_for_each_child_node(fwnode, child) {
                if (is_acpi_data_node(child)) {
@@ -621,12 +615,8 @@ acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode,
                        continue;
                }
 
-               status = acpi_get_name(ACPI_HANDLE_FWNODE(child),
-                                      ACPI_SINGLE_NAME, &path);
-               if (ACPI_FAILURE(status))
-                       break;
-
-               if (!strncmp(name, childname, ACPI_NAMESEG_SIZE))
+               if (!strncmp(acpi_device_bid(to_acpi_device_node(child)),
+                            childname, ACPI_NAMESEG_SIZE))
                        return child;
        }