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>
This commit is contained in:
parent
842f0bab04
commit
c73acdb69e
|
@ -1053,6 +1053,19 @@ device_t pci_probe_dev(device_t dev, struct bus *bus, unsigned devfn)
|
||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test for match between romstage and ramstage device instance.
|
||||||
|
*
|
||||||
|
* @param dev Pointer to the device structure.
|
||||||
|
* @param sdev Simple device model identifier, created with PCI_DEV().
|
||||||
|
* @return Non-zero if bus:dev.fn of device matches.
|
||||||
|
*/
|
||||||
|
unsigned int pci_match_simple_dev(device_t dev, pci_devfn_t sdev)
|
||||||
|
{
|
||||||
|
return dev->bus->secondary == PCI_DEV2SEGBUS(sdev) &&
|
||||||
|
dev->path.pci.devfn == PCI_DEV2DEVFN(sdev);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scan a PCI bus.
|
* Scan a PCI bus.
|
||||||
*
|
*
|
||||||
|
|
|
@ -79,6 +79,7 @@ unsigned pci_find_capability(device_t dev, unsigned cap);
|
||||||
struct resource *pci_get_resource(struct device *dev, unsigned long index);
|
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_set_subsystem(device_t dev, unsigned vendor, unsigned device);
|
||||||
void pci_dev_init(struct device *dev);
|
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,
|
void pci_assign_irqs(unsigned bus, unsigned slot,
|
||||||
const unsigned char pIntAtoD[4]);
|
const unsigned char pIntAtoD[4]);
|
||||||
|
|
|
@ -474,4 +474,8 @@
|
||||||
#define PCI_FUNC(devfn) ((devfn) & 0x07)
|
#define PCI_FUNC(devfn) ((devfn) & 0x07)
|
||||||
#define PCI_BDF(bus,dev,func) ((bus) << 16 | (dev) << 11 | (func) << 8)
|
#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 */
|
#endif /* PCI_DEF_H */
|
||||||
|
|
Loading…
Reference in New Issue