summaryrefslogtreecommitdiff
path: root/src/device
diff options
context:
space:
mode:
authorTim Wawrzynczak <twawrzynczak@chromium.org>2020-11-05 14:38:51 -0700
committerPatrick Georgi <pgeorgi@google.com>2020-11-09 07:37:57 +0000
commit8a1ad138225e5a31d75cd77b9d7f183f3ab6d39c (patch)
tree01e84b019eea3089f0c5de58626624bd0dd34e87 /src/device
parent3d4513e7c8e27dbb9c6b941c4eb4144d38ff5cee (diff)
downloadcoreboot-8a1ad138225e5a31d75cd77b9d7f183f3ab6d39c.tar.xz
device: Move pci_dev_is_wake_source function
Move this function to pci_ops.c, which is already included in the smm build. This is required to use this function in elog functionality, which is called from SMM. Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Change-Id: Ie5583c04366c9a16bc1b00a6892d39eeafe5da49 Reviewed-on: https://review.coreboot.org/c/coreboot/+/47260 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Diffstat (limited to 'src/device')
-rw-r--r--src/device/pci_device.c18
-rw-r--r--src/device/pci_ops.c18
2 files changed, 18 insertions, 18 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);
+}