diff options
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r-- | include/linux/pci.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h index 30d6c162e053..e2d1a124216a 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -420,9 +420,13 @@ static inline int pci_channel_offline(struct pci_dev *pdev) | |||
420 | struct pci_host_bridge { | 420 | struct pci_host_bridge { |
421 | struct device dev; | 421 | struct device dev; |
422 | struct pci_bus *bus; /* root bus */ | 422 | struct pci_bus *bus; /* root bus */ |
423 | struct pci_ops *ops; | ||
424 | void *sysdata; | ||
425 | int busnr; | ||
423 | struct list_head windows; /* resource_entry */ | 426 | struct list_head windows; /* resource_entry */ |
424 | void (*release_fn)(struct pci_host_bridge *); | 427 | void (*release_fn)(struct pci_host_bridge *); |
425 | void *release_data; | 428 | void *release_data; |
429 | struct msi_controller *msi; | ||
426 | unsigned int ignore_reset_delay:1; /* for entire hierarchy */ | 430 | unsigned int ignore_reset_delay:1; /* for entire hierarchy */ |
427 | /* Resource alignment requirements */ | 431 | /* Resource alignment requirements */ |
428 | resource_size_t (*align_resource)(struct pci_dev *dev, | 432 | resource_size_t (*align_resource)(struct pci_dev *dev, |
@@ -430,10 +434,23 @@ struct pci_host_bridge { | |||
430 | resource_size_t start, | 434 | resource_size_t start, |
431 | resource_size_t size, | 435 | resource_size_t size, |
432 | resource_size_t align); | 436 | resource_size_t align); |
437 | unsigned long private[0] ____cacheline_aligned; | ||
433 | }; | 438 | }; |
434 | 439 | ||
435 | #define to_pci_host_bridge(n) container_of(n, struct pci_host_bridge, dev) | 440 | #define to_pci_host_bridge(n) container_of(n, struct pci_host_bridge, dev) |
436 | 441 | ||
442 | static inline void *pci_host_bridge_priv(struct pci_host_bridge *bridge) | ||
443 | { | ||
444 | return (void *)bridge->private; | ||
445 | } | ||
446 | |||
447 | static inline struct pci_host_bridge *pci_host_bridge_from_priv(void *priv) | ||
448 | { | ||
449 | return container_of(priv, struct pci_host_bridge, private); | ||
450 | } | ||
451 | |||
452 | struct pci_host_bridge *pci_alloc_host_bridge(size_t priv); | ||
453 | int pci_register_host_bridge(struct pci_host_bridge *bridge); | ||
437 | struct pci_host_bridge *pci_find_host_bridge(struct pci_bus *bus); | 454 | struct pci_host_bridge *pci_find_host_bridge(struct pci_bus *bus); |
438 | 455 | ||
439 | void pci_set_host_bridge_release(struct pci_host_bridge *bridge, | 456 | void pci_set_host_bridge_release(struct pci_host_bridge *bridge, |