All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukas Wunner <lukas@wunner.de>
To: linux-efi@vger.kernel.org,
	Matt Fleming <matt@codeblueprint.co.uk>,
	linux-kernel@vger.kernel.org
Cc: Andreas Noever <andreas.noever@gmail.com>,
	Pierre Moreau <pierre.morrow@free.fr>,
	Aleksey Makarov <aleksey.makarov@linaro.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: [PATCH 2/6] ACPI / bus: Make acpi_get_first_physical_node() public
Date: Wed, 27 Jul 2016 13:20:41 +0200	[thread overview]
Message-ID: <a0bb3346635e3bd8caf6cf735ceba684e3fde2fa.1469616641.git.lukas@wunner.de> (raw)
In-Reply-To: <cover.1469616641.git.lukas@wunner.de>

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.

Cc: Aleksey Makarov <aleksey.makarov@linaro.org>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
---
 drivers/acpi/internal.h | 1 -
 include/linux/acpi.h    | 7 +++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 27cc7fe..48e718e 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -113,7 +113,6 @@ bool acpi_device_is_present(struct acpi_device *adev);
 bool acpi_device_is_battery(struct acpi_device *adev);
 bool acpi_device_is_first_physical_node(struct acpi_device *adev,
 					const struct device *dev);
-struct device *acpi_get_first_physical_node(struct acpi_device *adev);
 
 /* --------------------------------------------------------------------------
                      Device Matching and Notification
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 288fac5..8ab6a95 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -85,6 +85,8 @@ static inline const char *acpi_dev_name(struct acpi_device *adev)
 	return dev_name(&adev->dev);
 }
 
+struct device *acpi_get_first_physical_node(struct acpi_device *adev);
+
 enum acpi_irq_model_id {
 	ACPI_IRQ_MODEL_PIC = 0,
 	ACPI_IRQ_MODEL_IOAPIC,
@@ -588,6 +590,11 @@ static inline const char *acpi_dev_name(struct acpi_device *adev)
 	return NULL;
 }
 
+static inline struct device *acpi_get_first_physical_node(struct acpi_device *adev)
+{
+	return NULL;
+}
+
 static inline void early_acpi_table_init(void *data, size_t size) { }
 static inline void acpi_early_init(void) { }
 static inline void acpi_subsystem_init(void) { }
-- 
2.8.1

  parent reply	other threads:[~2016-07-27 11:21 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-27 11:20 [PATCH 0/6] Apple device properties Lukas Wunner
2016-07-27 11:20 ` Lukas Wunner
2016-07-27 11:20 ` [PATCH 1/6] efi: Retrieve " Lukas Wunner
2016-07-27 11:20   ` Lukas Wunner
2016-07-30 19:16   ` Andrei Borzenkov
2016-07-30 19:16     ` Andrei Borzenkov
2016-08-04 15:13   ` Matt Fleming
2016-08-04 15:13     ` Matt Fleming
     [not found]     ` <20160804151345.GM3636-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-08-05 11:42       ` Lukas Wunner
2016-08-05 11:42         ` Lukas Wunner
2016-08-05 12:06         ` Matt Fleming
2016-07-27 11:20 ` [PATCH 6/6] thunderbolt: Use Device ROM retrieved from EFI Lukas Wunner
2016-07-27 11:20 ` [PATCH 3/6] efi: Add device path parser Lukas Wunner
2016-07-27 11:20 ` [PATCH 5/6] efi: Assign Apple device properties Lukas Wunner
     [not found]   ` <a0edd928ab099682c2cb4c4544c599573144d03a.1469616641.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org>
2016-08-04 15:52     ` Matt Fleming
2016-08-04 15:52       ` Matt Fleming
2016-07-27 11:20 ` Lukas Wunner [this message]
2016-08-17  0:38   ` [PATCH 2/6] ACPI / bus: Make acpi_get_first_physical_node() public Rafael J. Wysocki
     [not found]     ` <1821462.QyPXGhZaWJ-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2016-09-12 22:03       ` Rafael J. Wysocki
2016-09-12 22:03         ` Rafael J. Wysocki
2016-07-27 11:20 ` [PATCH 4/6] driver core: Don't leak secondary fwnode on device removal Lukas Wunner
2016-07-27 11:20   ` Lukas Wunner
2016-08-17  0:38   ` Rafael J. Wysocki
2016-08-30  9:03     ` Lukas Wunner
2016-09-12 22:03       ` Rafael J. Wysocki
2016-07-27 23:48 ` [PATCH 0/6] Apple device properties Rafael J. Wysocki
2016-07-27 23:48   ` Rafael J. Wysocki
2016-07-28  0:25 ` [PATCH 5/6] efi: Assign " Lukas Wunner
2016-07-28  0:25 ` [PATCH 2/6] ACPI / bus: Make acpi_get_first_physical_node() public Lukas Wunner
2016-07-28  0:25 ` [PATCH 4/6] driver core: Don't leak secondary fwnode on device removal Lukas Wunner
2016-07-28  0:25 ` [PATCH 1/6] efi: Retrieve Apple device properties Lukas Wunner
2016-07-28  0:25 ` [PATCH 6/6] thunderbolt: Use Device ROM retrieved from EFI Lukas Wunner
2016-07-28  0:25 ` [PATCH 3/6] efi: Add device path parser Lukas Wunner
2016-08-04 14:57 ` [PATCH 0/6] Apple device properties Matt Fleming
2016-08-09 13:38   ` Lukas Wunner
2016-08-15 11:54     ` Matt Fleming
2016-08-15 16:13       ` Lukas Wunner
2016-08-18 20:34         ` Matt Fleming
2016-08-22  9:58           ` Lukas Wunner
2016-08-22  9:58             ` Lukas Wunner
2016-08-24 19:49             ` Matt Fleming

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a0bb3346635e3bd8caf6cf735ceba684e3fde2fa.1469616641.git.lukas@wunner.de \
    --to=lukas@wunner.de \
    --cc=aleksey.makarov@linaro.org \
    --cc=andreas.noever@gmail.com \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=pierre.morrow@free.fr \
    --cc=rafael.j.wysocki@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.