summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2013-06-15 17:16:56 +0300
committerKyösti Mälkki <kyosti.malkki@gmail.com>2013-08-24 07:38:23 +0200
commitc73acdb69eb8128bbbb3bed63cb0ca1b943027ee (patch)
tree37506b393476491ed47ad48f1f63664be3518219 /src/include
parent842f0bab0416d223ecda97817fb5326c666b0499 (diff)
Add test to match struct device with pci_devfn_t
Add a function to test if pci_devfn_t matches with a device instance of struct device, by comparing bus:dev.fn. Change-Id: Ic6c3148ac62c7183246d83302ee504b17064c794 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/3474 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@google.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/device/pci.h1
-rw-r--r--src/include/device/pci_def.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/include/device/pci.h b/src/include/device/pci.h
index be91ed353e..1741c0d1e9 100644
--- a/src/include/device/pci.h
+++ b/src/include/device/pci.h
@@ -79,6 +79,7 @@ unsigned pci_find_capability(device_t dev, unsigned cap);
struct resource *pci_get_resource(struct device *dev, unsigned long index);
void pci_dev_set_subsystem(device_t dev, unsigned vendor, unsigned device);
void pci_dev_init(struct device *dev);
+unsigned int pci_match_simple_dev(device_t dev, pci_devfn_t sdev);
void pci_assign_irqs(unsigned bus, unsigned slot,
const unsigned char pIntAtoD[4]);
diff --git a/src/include/device/pci_def.h b/src/include/device/pci_def.h
index ac20659f10..dae4e685b5 100644
--- a/src/include/device/pci_def.h
+++ b/src/include/device/pci_def.h
@@ -474,4 +474,8 @@
#define PCI_FUNC(devfn) ((devfn) & 0x07)
#define PCI_BDF(bus,dev,func) ((bus) << 16 | (dev) << 11 | (func) << 8)
+/* Translation from PCI_DEV() to devicetree bus and path.pci.devfn. */
+#define PCI_DEV2DEVFN(sdev) (((sdev)>>12) & 0xff)
+#define PCI_DEV2SEGBUS(sdev) (((sdev)>>20) & 0xfff)
+
#endif /* PCI_DEF_H */