soc/intel: Replace uses of dev_find_slot()

To call dev_find_slot(0, xx) in romstage can produce
invalid results since PCI bus enumeration has not
been progressed yet.

Replace this with method that relies on bus topology
that walks the root bus only.

Change-Id: I2883610059bb9fa860bba01179e7d5c58cae00e5
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33996
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/src/soc/intel/denverton_ns/include/soc/pci_devs.h b/src/soc/intel/denverton_ns/include/soc/pci_devs.h
index b902097..303ba67 100644
--- a/src/soc/intel/denverton_ns/include/soc/pci_devs.h
+++ b/src/soc/intel/denverton_ns/include/soc/pci_devs.h
@@ -27,8 +27,8 @@
 #if ENV_RAMSTAGE
 #include <device/device.h>
 #include <device/pci_def.h>
-#define _SA_DEV(slot) dev_find_slot(0, _SA_DEVFN(slot))
-#define _PCH_DEV(slot, func) dev_find_slot(0, _PCH_DEVFN(slot, func))
+#define _SA_DEV(slot) pcidev_path_on_root(_SA_DEVFN(slot))
+#define _PCH_DEV(slot, func) pcidev_path_on_root(_PCH_DEVFN(slot, func))
 #else
 #define _SA_DEV(slot) PCI_DEV(0, SA_DEV_SLOT_##slot, 0)
 #define _PCH_DEV(slot, func) PCI_DEV(0, PCH_DEV_SLOT_##slot, func)
diff --git a/src/soc/intel/denverton_ns/soc_util.c b/src/soc/intel/denverton_ns/soc_util.c
index ba7ba0f..ef95f7e 100644
--- a/src/soc/intel/denverton_ns/soc_util.c
+++ b/src/soc/intel/denverton_ns/soc_util.c
@@ -37,7 +37,7 @@
 #else
 struct device *get_hostbridge_dev(void)
 {
-	return dev_find_slot(0, PCI_DEVFN(SA_DEV, SA_FUNC));
+	return pcidev_on_root(SA_DEV, SA_FUNC);
 }
 #endif
 
@@ -49,7 +49,7 @@
 #else
 struct device *get_lpc_dev(void)
 {
-	return dev_find_slot(0, PCI_DEVFN(LPC_DEV, LPC_FUNC));
+	return pcidev_on_root(LPC_DEV, LPC_FUNC);
 }
 #endif
 
@@ -61,7 +61,7 @@
 #else
 struct device *get_pmc_dev(void)
 {
-	return dev_find_slot(0, PCI_DEVFN(PMC_DEV, PMC_FUNC));
+	return pcidev_on_root(PMC_DEV, PMC_FUNC);
 }
 #endif
 
@@ -73,7 +73,7 @@
 #else
 struct device *get_smbus_dev(void)
 {
-	return dev_find_slot(0, PCI_DEVFN(SMBUS_DEV, SMBUS_FUNC));
+	return pcidev_on_root(SMBUS_DEV, SMBUS_FUNC);
 }
 #endif
 
diff --git a/src/soc/intel/denverton_ns/uart.c b/src/soc/intel/denverton_ns/uart.c
index 07e0704..50f8a29 100644
--- a/src/soc/intel/denverton_ns/uart.c
+++ b/src/soc/intel/denverton_ns/uart.c
@@ -76,7 +76,7 @@
 	   last one. */
 	for (i = DENVERTON_UARTS_TO_INI - 1; i >= 0; i--) {
 		struct device *uart_dev;
-		uart_dev = dev_find_slot(0, PCI_DEVFN(HSUART_DEV, i));
+		uart_dev = pcidev_on_root(HSUART_DEV, i);
 		if (uart_dev == NULL)
 			continue;
 		pci_or_config32(uart_dev, PCI_FUNC_RDCFG_HIDE, 1);