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()
473 * pci_msi_vec_count - Return the number of MSI vectors a device can send
476 * This function returns the number of MSI vectors a device requested via
478 * device is not capable sending MSI interrupts. Otherwise, the call succeeds
480 * MSI specification.
498 * Architecture override returns true when the PCI MSI message should be
540 /* Return the device with MSI unmasked as initial states */ in pci_msi_shutdown()
550 /* PCI/MSI-X specific functionality */
584 * msix_prepare_msi_desc - Prepare a half initialized MSI descriptor for operation
586 * @desc: The MSI descriptor for preparation
589 * allocations for MSI-X after initial enablement.
591 * Ideally the whole MSI-X setup would work that way, but there is no way to
683 /* Check if all MSI entries honor device restrictions */ in msix_setup_interrupts()
700 * msix_capability_init - configure device's MSI-X capability
701 * @dev: pointer to the pci_dev data structure of MSI-X device function
706 * Setup the MSI-X capability structure of device function with a
707 * single MSI-X IRQ. A return of zero indicates the successful setup of
708 * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
717 * Some devices require MSI-X to be enabled before the MSI-X in msix_capability_init()
728 /* Request & Map MSI-X table region */ in msix_capability_init()
748 * which takes the MSI-X mask bits into account even in msix_capability_init()
749 * when MSI-X is disabled, which prevents MSI delivery. in msix_capability_init()
796 pci_info(dev, "can't enable MSI-X (MSI already enabled)\n"); in __pci_enable_msix_range()
803 /* Check MSI-X early on irq domain enabled architectures */ in __pci_enable_msix_range()
893 /* Return the device with MSI-X masked as initial states */ in pci_msix_shutdown()