aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pci.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r--include/linux/pci.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h
index e444f5b49118..d8c379dba6ad 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -375,11 +375,18 @@ struct pci_host_bridge_window {
375}; 375};
376 376
377struct pci_host_bridge { 377struct pci_host_bridge {
378 struct list_head list; 378 struct device dev;
379 struct pci_bus *bus; /* root bus */ 379 struct pci_bus *bus; /* root bus */
380 struct list_head windows; /* pci_host_bridge_windows */ 380 struct list_head windows; /* pci_host_bridge_windows */
381 void (*release_fn)(struct pci_host_bridge *);
382 void *release_data;
381}; 383};
382 384
385#define to_pci_host_bridge(n) container_of(n, struct pci_host_bridge, dev)
386void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
387 void (*release_fn)(struct pci_host_bridge *),
388 void *release_data);
389
383/* 390/*
384 * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond 391 * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
385 * to P2P or CardBus bridge windows) go in a table. Additional ones (for 392 * to P2P or CardBus bridge windows) go in a table. Additional ones (for
@@ -680,7 +687,7 @@ int __must_check pci_bus_add_device(struct pci_dev *dev);
680void pci_read_bridge_bases(struct pci_bus *child); 687void pci_read_bridge_bases(struct pci_bus *child);
681struct resource *pci_find_parent_resource(const struct pci_dev *dev, 688struct resource *pci_find_parent_resource(const struct pci_dev *dev,
682 struct resource *res); 689 struct resource *res);
683u8 pci_swizzle_interrupt_pin(struct pci_dev *dev, u8 pin); 690u8 pci_swizzle_interrupt_pin(const struct pci_dev *dev, u8 pin);
684int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge); 691int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);
685u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp); 692u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp);
686extern struct pci_dev *pci_dev_get(struct pci_dev *dev); 693extern struct pci_dev *pci_dev_get(struct pci_dev *dev);
@@ -1685,7 +1692,8 @@ extern void pci_release_bus_of_node(struct pci_bus *bus);
1685/* Arch may override this (weak) */ 1692/* Arch may override this (weak) */
1686extern struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus); 1693extern struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus);
1687 1694
1688static inline struct device_node *pci_device_to_OF_node(struct pci_dev *pdev) 1695static inline struct device_node *
1696pci_device_to_OF_node(const struct pci_dev *pdev)
1689{ 1697{
1690 return pdev ? pdev->dev.of_node : NULL; 1698 return pdev ? pdev->dev.of_node : NULL;
1691} 1699}