summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/device/pci_device.c18
-rw-r--r--src/device/pci_ops.c18
-rw-r--r--src/include/device/pci.h9
-rw-r--r--src/include/device/pci_ops.h8
4 files changed, 26 insertions, 27 deletions
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index 691ad6b316..6075ebeac7 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -1648,21 +1648,3 @@ void pci_dev_disable_bus_master(const struct device *dev)
pci_update_config16(dev, PCI_COMMAND, ~PCI_COMMAND_MASTER, 0x0);
}
#endif
-
-bool pci_dev_is_wake_source(const struct device *dev)
-{
- unsigned int pm_cap;
- uint16_t pmcs;
-
- if (dev->path.type != DEVICE_PATH_PCI)
- return false;
-
- pm_cap = pci_find_capability(dev, PCI_CAP_ID_PM);
- if (!pm_cap)
- return false;
-
- pmcs = pci_read_config16(dev, pm_cap + PCI_PM_CTRL);
-
- /* PCI Device is a wake source if PME_ENABLE and PME_STATUS are set in PMCS register. */
- return (pmcs & PCI_PM_CTRL_PME_ENABLE) && (pmcs & PCI_PM_CTRL_PME_STATUS);
-}
diff --git a/src/device/pci_ops.c b/src/device/pci_ops.c
index 90f45bf21a..aaa9f95fb1 100644
--- a/src/device/pci_ops.c
+++ b/src/device/pci_ops.c
@@ -78,3 +78,21 @@ void __noreturn pcidev_die(void)
{
die("PCI: dev is NULL!\n");
}
+
+bool pci_dev_is_wake_source(const struct device *dev)
+{
+ unsigned int pm_cap;
+ uint16_t pmcs;
+
+ if (dev->path.type != DEVICE_PATH_PCI)
+ return false;
+
+ pm_cap = pci_find_capability(dev, PCI_CAP_ID_PM);
+ if (!pm_cap)
+ return false;
+
+ pmcs = pci_s_read_config16(PCI_BDF(dev), pm_cap + PCI_PM_CTRL);
+
+ /* PCI Device is a wake source if PME_ENABLE and PME_STATUS are set in PMCS register. */
+ return (pmcs & PCI_PM_CTRL_PME_ENABLE) && (pmcs & PCI_PM_CTRL_PME_STATUS);
+}
diff --git a/src/include/device/pci.h b/src/include/device/pci.h
index 777f030355..045eec1aa6 100644
--- a/src/include/device/pci.h
+++ b/src/include/device/pci.h
@@ -79,15 +79,6 @@ void pci_bus_enable_resources(struct device *dev);
void pci_bus_reset(struct bus *bus);
struct device *pci_probe_dev(struct device *dev, struct bus *bus,
unsigned int devfn);
-
-/*
- * Determine if the given PCI device is the source of wake from sleep by checking PME_STATUS and
- * PME_ENABLE bits in PM control and status register.
- *
- * Returns true if PCI device is wake source, false otherwise.
- */
-bool pci_dev_is_wake_source(const struct device *dev);
-
void do_pci_scan_bridge(struct device *dev,
void (*do_scan_bus)(struct bus *bus,
unsigned int min_devfn, unsigned int max_devfn));
diff --git a/src/include/device/pci_ops.h b/src/include/device/pci_ops.h
index cdf02d6a56..7fe7d429e2 100644
--- a/src/include/device/pci_ops.h
+++ b/src/include/device/pci_ops.h
@@ -209,4 +209,12 @@ u16 pci_find_capability(const struct device *dev, u16 cap)
return pci_s_find_capability(PCI_BDF(dev), cap);
}
+/*
+ * Determine if the given PCI device is the source of wake from sleep by checking PME_STATUS and
+ * PME_ENABLE bits in PM control and status register.
+ *
+ * Returns true if PCI device is wake source, false otherwise.
+ */
+bool pci_dev_is_wake_source(const struct device *dev);
+
#endif /* PCI_OPS_H */