aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/PCI
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2013-12-30 02:28:14 -0500
committerBjorn Helgaas <bhelgaas@google.com>2014-01-03 19:17:55 -0500
commit7b92b4f61ec49cb1a5813298f35258bd7ecd3667 (patch)
tree3ca281ebb26a2885ff9ff5fd4e1b15393b6f7c20 /Documentation/PCI
parentd1ac1d2622e8f0fd2a25127a8649d135b54db8a9 (diff)
PCI/MSI: Remove pci_enable_msi_block_auto()
The new pci_msi_vec_count() interface makes pci_enable_msi_block_auto() superfluous. Drivers can use pci_msi_vec_count() to learn the maximum number of MSIs supported by the device, and then call pci_enable_msi_block(). pci_enable_msi_block_auto() was introduced recently, and its only user is the AHCI driver, which is also updated by this change. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'Documentation/PCI')
-rw-r--r--Documentation/PCI/MSI-HOWTO.txt39
1 files changed, 6 insertions, 33 deletions
diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt
index a8b41788dfde..aa4ad987510d 100644
--- a/Documentation/PCI/MSI-HOWTO.txt
+++ b/Documentation/PCI/MSI-HOWTO.txt
@@ -127,49 +127,22 @@ on the number of vectors that can be allocated; pci_enable_msi_block()
127returns as soon as it finds any constraint that doesn't allow the 127returns as soon as it finds any constraint that doesn't allow the
128call to succeed. 128call to succeed.
129 129
1304.2.3 pci_enable_msi_block_auto 1304.2.3 pci_disable_msi
131
132int pci_enable_msi_block_auto(struct pci_dev *dev, int *count)
133
134This variation on pci_enable_msi() call allows a device driver to request
135the maximum possible number of MSIs. The MSI specification only allows
136interrupts to be allocated in powers of two, up to a maximum of 2^5 (32).
137
138If this function returns a positive number, it indicates that it has
139succeeded and the returned value is the number of allocated interrupts. In
140this case, the function enables MSI on this device and updates dev->irq to
141be the lowest of the new interrupts assigned to it. The other interrupts
142assigned to the device are in the range dev->irq to dev->irq + returned
143value - 1.
144
145If this function returns a negative number, it indicates an error and
146the driver should not attempt to request any more MSI interrupts for
147this device.
148
149If the device driver needs to know the number of interrupts the device
150supports it can pass the pointer count where that number is stored. The
151device driver must decide what action to take if pci_enable_msi_block_auto()
152succeeds, but returns a value less than the number of interrupts supported.
153If the device driver does not need to know the number of interrupts
154supported, it can set the pointer count to NULL.
155
1564.2.4 pci_disable_msi
157 131
158void pci_disable_msi(struct pci_dev *dev) 132void pci_disable_msi(struct pci_dev *dev)
159 133
160This function should be used to undo the effect of pci_enable_msi() or 134This function should be used to undo the effect of pci_enable_msi() or
161pci_enable_msi_block() or pci_enable_msi_block_auto(). Calling it restores 135pci_enable_msi_block(). Calling it restores dev->irq to the pin-based
162dev->irq to the pin-based interrupt number and frees the previously 136interrupt number and frees the previously allocated message signaled
163allocated message signaled interrupt(s). The interrupt may subsequently be 137interrupt(s). The interrupt may subsequently be assigned to another
164assigned to another device, so drivers should not cache the value of 138device, so drivers should not cache the value of dev->irq.
165dev->irq.
166 139
167Before calling this function, a device driver must always call free_irq() 140Before calling this function, a device driver must always call free_irq()
168on any interrupt for which it previously called request_irq(). 141on any interrupt for which it previously called request_irq().
169Failure to do so results in a BUG_ON(), leaving the device with 142Failure to do so results in a BUG_ON(), leaving the device with
170MSI enabled and thus leaking its vector. 143MSI enabled and thus leaking its vector.
171 144
1724.2.5 pci_msi_vec_count 1454.2.4 pci_msi_vec_count
173 146
174int pci_msi_vec_count(struct pci_dev *dev) 147int pci_msi_vec_count(struct pci_dev *dev)
175 148