diff options
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r-- | include/linux/pci.h | 14 |
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 | ||
377 | struct pci_host_bridge { | 377 | struct 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) | ||
386 | void 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); | |||
680 | void pci_read_bridge_bases(struct pci_bus *child); | 687 | void pci_read_bridge_bases(struct pci_bus *child); |
681 | struct resource *pci_find_parent_resource(const struct pci_dev *dev, | 688 | struct resource *pci_find_parent_resource(const struct pci_dev *dev, |
682 | struct resource *res); | 689 | struct resource *res); |
683 | u8 pci_swizzle_interrupt_pin(struct pci_dev *dev, u8 pin); | 690 | u8 pci_swizzle_interrupt_pin(const struct pci_dev *dev, u8 pin); |
684 | int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge); | 691 | int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge); |
685 | u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp); | 692 | u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp); |
686 | extern struct pci_dev *pci_dev_get(struct pci_dev *dev); | 693 | extern 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) */ |
1686 | extern struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus); | 1693 | extern struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus); |
1687 | 1694 | ||
1688 | static inline struct device_node *pci_device_to_OF_node(struct pci_dev *pdev) | 1695 | static inline struct device_node * |
1696 | pci_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 | } |