When an ACPI node has both ACPI device nodes and ACPI data nodes,
acpi_get_next_subnode() will return the ACPI data nodes of its last
parsed child.
To avoid that, make acpi_get_next_subnode() go back to the original
ACPI device object when all of the device node children of it have
been found already.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
[ rjw: Changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
                        next = adev->node.next;
                        if (next == head) {
                                child = NULL;
+                               adev = ACPI_COMPANION(dev);
                                goto nondev;
                        }
                        adev = list_entry(next, struct acpi_device, node);