[coreboot-gerrit] New patch to review for coreboot: b414e82 pnp: Allow searching PNP device by port and device ID.
Marc Jones (marc.jones@se-eng.com)
gerrit at coreboot.org
Thu Dec 18 22:06:18 CET 2014
Marc Jones (marc.jones at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7868
-gerrit
commit b414e828f7aae2d8483efb39a5f02295036f3c5f
Author: Hung-Te Lin <hungte at chromium.org>
Date: Thu Mar 20 12:04:33 2014 +0800
pnp: Allow searching PNP device by port and device ID.
To access superio in ramstage, we need to find the device by PNP path.
Original-Change-Id: Iea4451381545f7c401e212ac7d7567a32aa92b25
Original-Reviewed-on: https://chromium-review.googlesource.com/190841
BRANCH=zako
BUG=chrome-os-partner:25024
TEST=emerge-zako chromeos-coreboot-zako
Original-Change-Id: I6118177e5d62b32596caeb119800e8716c998a90
Original-Signed-off-by: Hung-Te Lin <hungte at chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/190972
Original-Reviewed-by: Stefan Reinauer <reinauer at chromium.org>
(cherry picked from commit 997f005737aeb5a1e96b9e8e00e77297e3c6fb8a)
Signed-off-by: Marc Jones <marc.jones at se-eng.com>
Change-Id: I13a6b6550ac4bf0fea9ffab636966e15745e3bb3
---
src/device/device_util.c | 23 +++++++++++++++++++++++
src/include/device/device.h | 1 +
2 files changed, 24 insertions(+)
diff --git a/src/device/device_util.c b/src/device/device_util.c
index d5466cb..77ed46d 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -135,6 +135,29 @@ device_t dev_find_lapic(unsigned apic_id)
}
/**
+ * Find a PNP device of given port and device ID.
+ *
+ * @param port A PNP port ID.
+ * @param device A PNP device ID.
+ * @return Pointer to the device struct.
+ */
+struct device *dev_find_pnp(unsigned int port, unsigned int device)
+{
+ struct device *dev, *result;
+
+ result = NULL;
+ for (dev = all_devices; dev; dev = dev->next) {
+ if ((dev->path.type == DEVICE_PATH_PNP) &&
+ (dev->path.pnp.port == port) &&
+ (dev->path.pnp.device == device)) {
+ result = dev;
+ break;
+ }
+ }
+ return result;
+}
+
+/**
* Find a device of a given vendor and type.
*
* @param vendor A PCI vendor ID (e.g. 0x8086 for Intel).
diff --git a/src/include/device/device.h b/src/include/device/device.h
index c67205c..571291f 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -194,6 +194,7 @@ device_t dev_find_slot (unsigned int bus, unsigned int devfn);
device_t dev_find_slot_on_smbus (unsigned int bus, unsigned int addr);
device_t dev_find_slot_pnp(u16 port, u16 device);
device_t dev_find_lapic(unsigned apic_id);
+device_t dev_find_pnp(unsigned int port, unsigned int device);
int dev_count_cpu(void);
void remap_bsp_lapic(struct bus *cpu_bus);
More information about the coreboot-gerrit
mailing list