Lines Matching full:msi

10 #include <linux/msi.h>
23 * Each bit in msi_free_irq_bitmask represents a MSI interrupt that is
31 * is used so we can disable all of the MSI interrupts when a device
43 * Number of MSI IRQs used. This variable is set up in
49 * arch_setup_msi_irq() - setup MSI IRQs for a device
50 * @dev: Device requesting MSI interrupts
51 * @desc: MSI descriptor
53 * Called when a driver requests MSI interrupts instead of the
55 * for MSI devices that support them. A device can override this by
56 * programming the MSI control bits [6:4] before calling
76 * Read the MSI config to figure out how many IRQs this device in arch_setup_msi_irq()
120 * bits. This represents an MSI interrupt number that isn't in in arch_setup_msi_irq()
144 panic("arch_setup_msi_irq: Unable to find a free MSI interrupt"); in arch_setup_msi_irq()
147 /* MSI interrupts start at logical IRQ OCTEON_IRQ_MSI_BIT0 */ in arch_setup_msi_irq()
190 * arch_teardown_msi_irq() - release MSI IRQs for a device
193 * Called when a device no longer needs its MSI interrupts. All
194 * MSI interrupts for the device are freed.
206 "MSI interrupt (%d)", irq); in arch_teardown_msi_irq()
228 panic("arch_teardown_msi_irq: Attempted to teardown MSI " in arch_teardown_msi_irq()
276 .name = "MSI",
284 * Octeon PCI doesn't have the ability to mask/unmask MSI in octeon_irq_msi_enable_pci()
286 * in groups of 16, we simple assume MSI devices are well in octeon_irq_msi_enable_pci()
287 * behaved. MSI interrupts are always enable and the ACK is in octeon_irq_msi_enable_pci()
298 .name = "MSI",
304 * Called by the interrupt handling code when an MSI interrupt
341 * Initializes the MSI interrupt handling code
346 struct irq_chip *msi; in octeon_msi_initialize() local
359 msi = &octeon_irq_chip_msi_pcie; in octeon_msi_initialize()
370 msi = &octeon_irq_chip_msi_pci; in octeon_msi_initialize()
374 irq_set_chip_and_handler(irq, msi, handle_simple_irq); in octeon_msi_initialize()
378 0, "MSI[0:63]", octeon_msi_interrupt0)) in octeon_msi_initialize()
382 0, "MSI[64:127]", octeon_msi_interrupt1)) in octeon_msi_initialize()
386 0, "MSI[127:191]", octeon_msi_interrupt2)) in octeon_msi_initialize()
390 0, "MSI[192:255]", octeon_msi_interrupt3)) in octeon_msi_initialize()
396 0, "MSI[0:15]", octeon_msi_interrupt0)) in octeon_msi_initialize()
400 0, "MSI[16:31]", octeon_msi_interrupt0)) in octeon_msi_initialize()
404 0, "MSI[32:47]", octeon_msi_interrupt0)) in octeon_msi_initialize()
408 0, "MSI[48:63]", octeon_msi_interrupt0)) in octeon_msi_initialize()