device: Move find_dev_path() to device_const.c

Change-Id: I8a27aa7157b5706623272ba9354ed8dff9b8184f
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/26446
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/device/device_const.c b/src/device/device_const.c
index 084d2ac..ee64bd1 100644
--- a/src/device/device_const.c
+++ b/src/device/device_const.c
@@ -18,6 +18,7 @@
  * GNU General Public License for more details.
  */
 
+#include <console/console.h>
 #include <device/device.h>
 #include <device/path.h>
 #include <device/pci.h>
@@ -89,6 +90,88 @@
 	return dev_find_path(previous_dev, DEVICE_PATH_PCI);
 }
 
+static int path_eq(const struct device_path *path1,
+		const struct device_path *path2)
+{
+	int equal = 0;
+
+	if (path1->type != path2->type)
+		return 0;
+
+	switch (path1->type) {
+	case DEVICE_PATH_NONE:
+		break;
+	case DEVICE_PATH_ROOT:
+		equal = 1;
+		break;
+	case DEVICE_PATH_PCI:
+		equal = (path1->pci.devfn == path2->pci.devfn);
+		break;
+	case DEVICE_PATH_PNP:
+		equal = (path1->pnp.port == path2->pnp.port) &&
+			(path1->pnp.device == path2->pnp.device);
+		break;
+	case DEVICE_PATH_I2C:
+		equal = (path1->i2c.device == path2->i2c.device) &&
+			(path1->i2c.mode_10bit == path2->i2c.mode_10bit);
+		break;
+	case DEVICE_PATH_APIC:
+		equal = (path1->apic.apic_id == path2->apic.apic_id);
+		break;
+	case DEVICE_PATH_DOMAIN:
+		equal = (path1->domain.domain == path2->domain.domain);
+		break;
+	case DEVICE_PATH_CPU_CLUSTER:
+		equal = (path1->cpu_cluster.cluster
+			 == path2->cpu_cluster.cluster);
+		break;
+	case DEVICE_PATH_CPU:
+		equal = (path1->cpu.id == path2->cpu.id);
+		break;
+	case DEVICE_PATH_CPU_BUS:
+		equal = (path1->cpu_bus.id == path2->cpu_bus.id);
+		break;
+	case DEVICE_PATH_GENERIC:
+		equal = (path1->generic.id == path2->generic.id) &&
+			(path1->generic.subid == path2->generic.subid);
+		break;
+	case DEVICE_PATH_SPI:
+		equal = (path1->spi.cs == path2->spi.cs);
+		break;
+	case DEVICE_PATH_USB:
+		equal = (path1->usb.port_type == path2->usb.port_type) &&
+			(path1->usb.port_id == path2->usb.port_id);
+		break;
+	case DEVICE_PATH_MMIO:
+		equal = (path1->mmio.addr == path2->mmio.addr);
+		break;
+	default:
+		printk(BIOS_ERR, "Unknown device type: %d\n", path1->type);
+		break;
+	}
+
+	return equal;
+}
+
+/**
+ * See if a device structure exists for path.
+ *
+ * @param parent The bus to find the device on.
+ * @param path The relative path from the bus to the appropriate device.
+ * @return Pointer to a device structure for the device on bus at path
+ *         or 0/NULL if no device is found.
+ */
+DEVTREE_CONST struct device *find_dev_path(
+	const struct bus *parent, const struct device_path *path)
+{
+	DEVTREE_CONST struct device *child;
+	for (child = parent->children; child; child = child->sibling) {
+		if (path_eq(path, &child->path))
+			break;
+	}
+	return child;
+}
+
 /**
  * Given an SMBus bus and a device number, find the device structure.
  *
diff --git a/src/device/device_util.c b/src/device/device_util.c
index 4275d6e..2a26a55 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -26,24 +26,6 @@
 #include <string.h>
 
 /**
- * See if a device structure exists for path.
- *
- * @param parent The bus to find the device on.
- * @param path The relative path from the bus to the appropriate device.
- * @return Pointer to a device structure for the device on bus at path
- *         or 0/NULL if no device is found.
- */
-struct device *find_dev_path(struct bus *parent, struct device_path *path)
-{
-	struct device *child;
-	for (child = parent->children; child; child = child->sibling) {
-		if (path_eq(path, &child->path))
-			break;
-	}
-	return child;
-}
-
-/**
  * Given a Local APIC ID, find the device structure.
  *
  * @param apic_id The Local APIC ID number.
@@ -277,68 +259,6 @@
 	return buffer;
 }
 
-int path_eq(struct device_path *path1, struct device_path *path2)
-{
-	int equal = 0;
-
-	if (path1->type != path2->type)
-		return 0;
-
-	switch (path1->type) {
-	case DEVICE_PATH_NONE:
-		break;
-	case DEVICE_PATH_ROOT:
-		equal = 1;
-		break;
-	case DEVICE_PATH_PCI:
-		equal = (path1->pci.devfn == path2->pci.devfn);
-		break;
-	case DEVICE_PATH_PNP:
-		equal = (path1->pnp.port == path2->pnp.port) &&
-			(path1->pnp.device == path2->pnp.device);
-		break;
-	case DEVICE_PATH_I2C:
-		equal = (path1->i2c.device == path2->i2c.device) &&
-			(path1->i2c.mode_10bit == path2->i2c.mode_10bit);
-		break;
-	case DEVICE_PATH_APIC:
-		equal = (path1->apic.apic_id == path2->apic.apic_id);
-		break;
-	case DEVICE_PATH_DOMAIN:
-		equal = (path1->domain.domain == path2->domain.domain);
-		break;
-	case DEVICE_PATH_CPU_CLUSTER:
-		equal = (path1->cpu_cluster.cluster
-			 == path2->cpu_cluster.cluster);
-		break;
-	case DEVICE_PATH_CPU:
-		equal = (path1->cpu.id == path2->cpu.id);
-		break;
-	case DEVICE_PATH_CPU_BUS:
-		equal = (path1->cpu_bus.id == path2->cpu_bus.id);
-		break;
-	case DEVICE_PATH_GENERIC:
-		equal = (path1->generic.id == path2->generic.id) &&
-			(path1->generic.subid == path2->generic.subid);
-		break;
-	case DEVICE_PATH_SPI:
-		equal = (path1->spi.cs == path2->spi.cs);
-		break;
-	case DEVICE_PATH_USB:
-		equal = (path1->usb.port_type == path2->usb.port_type) &&
-			(path1->usb.port_id == path2->usb.port_id);
-		break;
-	case DEVICE_PATH_MMIO:
-		equal = (path1->mmio.addr == path2->mmio.addr);
-		break;
-	default:
-		printk(BIOS_ERR, "Unknown device type: %d\n", path1->type);
-		break;
-	}
-
-	return equal;
-}
-
 /**
  * Allocate 64 more resources to the free list.
  *