Merge tag 'pm-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
[linux-2.6-microblaze.git] / drivers / acpi / bus.c
index 1fc24f4..b67d2ee 100644 (file)
@@ -1088,6 +1088,32 @@ int acpi_bus_for_each_dev(int (*fn)(struct device *, void *), void *data)
 }
 EXPORT_SYMBOL_GPL(acpi_bus_for_each_dev);
 
+struct acpi_dev_walk_context {
+       int (*fn)(struct acpi_device *, void *);
+       void *data;
+};
+
+static int acpi_dev_for_one_check(struct device *dev, void *context)
+{
+       struct acpi_dev_walk_context *adwc = context;
+
+       if (dev->bus != &acpi_bus_type)
+               return 0;
+
+       return adwc->fn(to_acpi_device(dev), adwc->data);
+}
+
+int acpi_dev_for_each_child(struct acpi_device *adev,
+                           int (*fn)(struct acpi_device *, void *), void *data)
+{
+       struct acpi_dev_walk_context adwc = {
+               .fn = fn,
+               .data = data,
+       };
+
+       return device_for_each_child(&adev->dev, &adwc, acpi_dev_for_one_check);
+}
+
 /* --------------------------------------------------------------------------
                              Initialization/Cleanup
    -------------------------------------------------------------------------- */