diff options
-rw-r--r-- | drivers/pci/access.c | 19 | ||||
-rw-r--r-- | include/linux/pci.h | 1 |
2 files changed, 20 insertions, 0 deletions
diff --git a/drivers/pci/access.c b/drivers/pci/access.c index 0f3706512686..db23200c4874 100644 --- a/drivers/pci/access.c +++ b/drivers/pci/access.c | |||
@@ -66,6 +66,25 @@ EXPORT_SYMBOL(pci_bus_write_config_byte); | |||
66 | EXPORT_SYMBOL(pci_bus_write_config_word); | 66 | EXPORT_SYMBOL(pci_bus_write_config_word); |
67 | EXPORT_SYMBOL(pci_bus_write_config_dword); | 67 | EXPORT_SYMBOL(pci_bus_write_config_dword); |
68 | 68 | ||
69 | /** | ||
70 | * pci_bus_set_ops - Set raw operations of pci bus | ||
71 | * @bus: pci bus struct | ||
72 | * @ops: new raw operations | ||
73 | * | ||
74 | * Return previous raw operations | ||
75 | */ | ||
76 | struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops) | ||
77 | { | ||
78 | struct pci_ops *old_ops; | ||
79 | unsigned long flags; | ||
80 | |||
81 | spin_lock_irqsave(&pci_lock, flags); | ||
82 | old_ops = bus->ops; | ||
83 | bus->ops = ops; | ||
84 | spin_unlock_irqrestore(&pci_lock, flags); | ||
85 | return old_ops; | ||
86 | } | ||
87 | EXPORT_SYMBOL(pci_bus_set_ops); | ||
69 | 88 | ||
70 | /** | 89 | /** |
71 | * pci_read_vpd - Read one entry from Vital Product Data | 90 | * pci_read_vpd - Read one entry from Vital Product Data |
diff --git a/include/linux/pci.h b/include/linux/pci.h index ec03b90d3510..ea2a153a9126 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -637,6 +637,7 @@ int pci_bus_write_config_word(struct pci_bus *bus, unsigned int devfn, | |||
637 | int where, u16 val); | 637 | int where, u16 val); |
638 | int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn, | 638 | int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn, |
639 | int where, u32 val); | 639 | int where, u32 val); |
640 | struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops); | ||
640 | 641 | ||
641 | static inline int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val) | 642 | static inline int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val) |
642 | { | 643 | { |