summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Harvey <tharvey@gateworks.com>2014-08-07 22:49:56 -0700
committerStefano Babic <sbabic@denx.de>2014-09-09 16:15:02 +0200
commit0991866cf7a10d4868aa2a10940b4def0f68cc50 (patch)
tree056318003e67ffc5ae394292f9ebfa85c1f9e36d
parent206f38f727e9610709fe73db5c460b7623755eb7 (diff)
downloadu-boot-imx-0991866cf7a10d4868aa2a10940b4def0f68cc50.zip
u-boot-imx-0991866cf7a10d4868aa2a10940b4def0f68cc50.tar.gz
u-boot-imx-0991866cf7a10d4868aa2a10940b4def0f68cc50.tar.bz2
pci: add support for board_pci_fixup_dev function
Some board-level drivers may wish to have per-device fixup functions for PCI devices. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
-rw-r--r--drivers/pci/pci.c4
-rw-r--r--include/pci.h7
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 4fd9c53..28859f3 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -648,6 +648,10 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
pci_hose_read_config_word(hose, dev, PCI_DEVICE_ID, &device);
pci_hose_read_config_word(hose, dev, PCI_CLASS_DEVICE, &class);
+#ifdef CONFIG_PCI_FIXUP_DEV
+ board_pci_fixup_dev(hose, dev, vendor, device, class);
+#endif
+
#ifdef CONFIG_PCI_SCAN_SHOW
indent++;
diff --git a/include/pci.h b/include/pci.h
index 461f17c..2ff7365 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -659,6 +659,13 @@ extern int pci_hose_find_cap_start(struct pci_controller *hose, pci_dev_t dev,
extern int pci_find_cap(struct pci_controller *hose, pci_dev_t dev, int pos,
int cap);
+#ifdef CONFIG_PCI_FIXUP_DEV
+extern void board_pci_fixup_dev(struct pci_controller *hose, pci_dev_t dev,
+ unsigned short vendor,
+ unsigned short device,
+ unsigned short class);
+#endif
+
const char * pci_class_str(u8 class);
int pci_last_busno(void);