Lines Matching full:msi

3  * PCI Message Signaled Interrupt (MSI)
15 #include "msi.h"
21 * pci_msi_supported - check whether MSI may be enabled on a device
22 * @dev: pointer to the pci_dev data structure of MSI device function
26 * to determine if MSI/-X are supported for the device. If MSI/-X is
33 /* MSI must be globally enabled and supported by the device */ in pci_msi_supported()
49 * Any bridge which does NOT route MSI transactions from its in pci_msi_supported()
59 * the NO_MSI flag when no MSI domain is found for this bridge in pci_msi_supported()
79 * vs. msi_device_data_release() in the MSI core code.
97 * Ordering vs. devres: msi device data has to be installed first so that
111 * Helper functions for mask/unmask and MSI message handling
131 * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
143 * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
266 /* PCI/MSI specific functionality */
291 /* MSI Entry Initialization */ in msi_setup_msi_desc()
331 pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n", in msi_verify_entries()
340 * msi_capability_init - configure device's MSI capability structure
341 * @dev: pointer to the pci_dev data structure of MSI device function
345 * Setup the MSI capability structure of the device with the requested
347 * setup of an entry with the new MSI IRQ. A negative return value indicates
358 /* Reject multi-MSI early on irq domain enabled architectures */ in msi_capability_init()
363 * Disable MSI during setup in the hardware, but mark it enabled in msi_capability_init()
381 * Copy the MSI descriptor for the error path because in msi_capability_init()
387 /* Configure MSI capability structure */ in msi_capability_init()
396 /* Set MSI enabled bits */ in msi_capability_init()
424 /* Check whether driver already requested MSI-X IRQs */ in __pci_enable_msi_range()
426 pci_info(dev, "can't enable MSI (MSI-X already enabled)\n"); in __pci_enable_msi_range()
436 /* Test for the availability of MSI support */ in __pci_enable_msi_range()
477 * pci_msi_vec_count - Return the number of MSI vectors a device can send
480 * This function returns the number of MSI vectors a device requested via
482 * device is not capable sending MSI interrupts. Otherwise, the call succeeds
484 * MSI specification.
502 * Architecture override returns true when the PCI MSI message should be
544 /* Return the device with MSI unmasked as initial states */ in pci_msi_shutdown()
554 /* PCI/MSI-X specific functionality */
588 * msix_prepare_msi_desc - Prepare a half initialized MSI descriptor for operation
590 * @desc: The MSI descriptor for preparation
593 * allocations for MSI-X after initial enablement.
595 * Ideally the whole MSI-X setup would work that way, but there is no way to
687 /* Check if all MSI entries honor device restrictions */ in msix_setup_interrupts()
704 * msix_capability_init - configure device's MSI-X capability
705 * @dev: pointer to the pci_dev data structure of MSI-X device function
710 * Setup the MSI-X capability structure of device function with a
711 * single MSI-X IRQ. A return of zero indicates the successful setup of
712 * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
721 * Some devices require MSI-X to be enabled before the MSI-X in msix_capability_init()
732 /* Request & Map MSI-X table region */ in msix_capability_init()
752 * which takes the MSI-X mask bits into account even in msix_capability_init()
753 * when MSI-X is disabled, which prevents MSI delivery. in msix_capability_init()
800 pci_info(dev, "can't enable MSI-X (MSI already enabled)\n"); in __pci_enable_msix_range()
807 /* Check MSI-X early on irq domain enabled architectures */ in __pci_enable_msix_range()
897 /* Return the device with MSI-X masked as initial states */ in pci_msix_shutdown()