Lines Matching refs:of
12 This guide describes the basics of Message Signaled Interrupts (MSIs),
13 the advantages of using MSI over traditional interrupt mechanisms, how
81 Most of the hard work is done for the driver in the PCI layer. It simply
90 of how many MSIs the device supports. The device is switched from
95 different from the vector of a pin-based interrupt.
101 This function allows a device driver to request any number of MSI
104 If this function returns a positive number it indicates the number of
107 updates dev->irq to be the lowest of the new interrupts assigned to it.
110 number of successfully allocated MSI interrupts to further allocate
119 from the vector of a pin-based interrupt.
121 It is ideal if drivers can cope with a variable number of MSI interrupts;
125 There could be devices that can not operate with just any number of MSI
129 4.2.1.1 Maximum possible number of MSI interrupts
131 The typical usage of MSI interrupts is to allocate as many vectors as
139 Note the value of 'minvec' parameter is 1. As 'minvec' is inclusive,
140 the value of 0 would be meaningless and could result in error.
142 Some devices have a minimal limit on number of MSI interrupts.
150 4.2.1.2 Exact number of MSI interrupts
152 If a driver is unable or unwilling to deal with a variable number of MSI
153 interrupts it could request a particular number of interrupts by passing
163 enable a particular number of MSI-X interrupts, pci_enable_msi_range()
169 The most notorious example of the request type described above is
195 returns zero in case of success, which indicates MSI interrupts have been
202 This function should be used to undo the effect of pci_enable_msi_range().
205 to another device, so drivers should not cache the value of dev->irq.
216 This function could be used to retrieve the number of MSI vectors the
218 specification only allows the returned value to be a power of two,
219 up to a maximum of 2^5 (32).
222 not capable of sending MSIs.
225 number of MSI interrupt vectors that could be allocated.
230 It supports up to 2048 interrupts, each of which can be controlled
231 independently. To support this flexibility, drivers must use an array of
242 in each element of the array to indicate for which entries the kernel
251 Calling this function asks the PCI subsystem to allocate any number of
253 The 'entries' argument is a pointer to an array of msix_entry structs
257 returns the number of MSI-X interrupts that have been successfully
261 decides to use. The device driver is responsible for keeping track of the
263 Device driver can use the returned number of successfully allocated MSI-X
277 It is ideal if drivers can cope with a variable number of MSI-X interrupts;
281 There could be devices that can not operate with just any number of MSI-X
283 four vectors per each queue it provides. Therefore, a number of MSI-X
284 interrupts allocated should be a multiple of four. In this case interface
286 (since it can allocate any number within the range, without any notion of
287 the multiple of four) and the device driver should master a custom logic
288 to request the required number of MSI-X interrupts.
290 4.3.1.1 Maximum possible number of MSI-X interrupts
292 The typical usage of MSI-X interrupts is to allocate as many vectors as
301 Note the value of 'minvec' parameter is 1. As 'minvec' is inclusive,
302 the value of 0 would be meaningless and could result in error.
304 Some devices have a minimal limit on number of MSI-X interrupts.
313 4.3.1.2 Exact number of MSI-X interrupts
315 If a driver is unable or unwilling to deal with a variable number of MSI-X
316 interrupts it could request a particular number of interrupts by passing
327 enable a particular number of MSI-X interrupts, pci_enable_msix_range()
331 4.3.1.3 Specific requirements to the number of MSI-X interrupts
334 number of MSI-X interrupts within a range. E.g., let's assume a device that
335 is only capable sending the number of MSI-X interrupts which is a power of
390 returns zero in case of success, which indicates MSI-X interrupts have been
393 Another version of a routine that enables MSI-X mode for a device with
438 This function should be used to undo the effect of pci_enable_msix_range().
441 the value of the 'vector' elements over a call to pci_disable_msix().
459 This function could be used to retrieve number of entries in the device
463 not capable of sending MSI-Xs.
466 number of MSI-X interrupt vectors that could be allocated.
472 This is a requirement of the PCI spec, and it is enforced by the
488 above, MSI-X supports any number of interrupts between 1 and 2048.
489 In contrast, MSI is restricted to a maximum of 32 interrupts (and
490 must be a power of two). In addition, the MSI interrupt vectors must
493 interrupts must all be targeted at the same set of CPUs whereas MSI-X
511 Signalled Interrupts" or "MSI-X" capabilities. Each of these capabilities
531 to detect them ourselves. The complete list of these is found near the
554 where $bridge is the PCI address of the bridge you've enabled (eg
557 To disable MSIs, echo 0 instead of 1. Changing this value should be
561 Again, please notify linux-pci@vger.kernel.org of any bridges that need
569 of MSI. While this is a convenient workaround for the driver author,
580 Then, 'lspci -t' gives the list of bridges above a device. Reading
582 or disabled (0). If 0 is found in any of the msi_bus files belonging