ACPI / bus: Make acpi_get_first_physical_node() public
authorLukas Wunner <lukas@wunner.de>
Thu, 28 Jul 2016 00:25:41 +0000 (02:25 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 30 Aug 2016 22:25:54 +0000 (00:25 +0200)
commitdaae45caf5a042a0c7d147749ed1e4c970fc86d8
tree59adc0be40b0864b766815d11fe51d7ebaaa77d9
parent3eab887a55424fc2c27553b7bfe32330df83f7b8
ACPI / bus: Make acpi_get_first_physical_node() public

Following the fwnode of a device is currently a one-way road: We provide
ACPI_COMPANION() to obtain the fwnode but there's no (public) method to
do the reverse. Granted, there may be multiple physical_nodes, but often
the first one in the list is sufficient.

A handy function to obtain it was introduced with commit 3b95bd160547
("ACPI: introduce a function to find the first physical device"), but
currently it's only available internally.

We're about to add an EFI Device Path parser which needs this function.
Consider the following device path: ACPI(PNP0A03,0)/PCI(28,2)/PCI(0,0)
The PCI root is encoded as an ACPI device in the path, so the parser
has to find the corresponding ACPI device, then find its physical node,
find the PCI bridge in slot 1c (decimal 28), function 2 below it and
finally find the PCI device in slot 0, function 0.

To this end, make acpi_get_first_physical_node() public.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/internal.h
include/linux/acpi.h