Lines Matching full:msi

3  * PCI Message Signaled Interrupt (MSI)
18 #include <linux/msi.h>
80 * If an architecture wants to support multiple MSI, it needs to in arch_setup_msi_irqs()
133 * PCI 2.3 does not specify mask bits for each MSI interrupt. Attempting to
134 * mask all MSI interrupts by clearing the MSI enable bit does not work
224 * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
236 * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
476 /* MSI Entry Initialization */ in msi_setup_entry()
515 pci_err(dev, "arch assigned 64-bit MSI address %#x%08x but device only supports 32 bits\n", in msi_verify_entries()
524 * msi_capability_init - configure device's MSI capability structure
525 * @dev: pointer to the pci_dev data structure of MSI device function
529 * Setup the MSI capability structure of the device with the requested
531 * setup of an entry with the new MSI IRQ. A negative return value indicates
542 pci_msi_set_enable(dev, 0); /* Disable MSI during set up */ in msi_capability_init()
553 /* Configure MSI capability structure */ in msi_capability_init()
570 /* Set MSI enabled bits */ in msi_capability_init()
684 * msix_capability_init - configure device's MSI-X capability
685 * @dev: pointer to the pci_dev data structure of MSI-X device function
690 * Setup the MSI-X capability structure of device function with a
691 * single MSI-X IRQ. A return of zero indicates the successful setup of
692 * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
703 * Some devices require MSI-X to be enabled before the MSI-X in msix_capability_init()
711 /* Request & Map MSI-X table region */ in msix_capability_init()
730 /* Check if all MSI entries honor device restrictions */ in msix_capability_init()
745 /* Set MSI-X enabled bits and unmask the function */ in msix_capability_init()
780 * pci_msi_supported - check whether MSI may be enabled on a device
781 * @dev: pointer to the pci_dev data structure of MSI device function
785 * to determine if MSI/-X are supported for the device. If MSI/-X is
792 /* MSI must be globally enabled and supported by the device */ in pci_msi_supported()
808 * Any bridge which does NOT route MSI transactions from its in pci_msi_supported()
818 * the NO_MSI flag when no MSI domain is found for this bridge in pci_msi_supported()
829 * pci_msi_vec_count - Return the number of MSI vectors a device can send
832 * This function returns the number of MSI vectors a device requested via
834 * device is not capable sending MSI interrupts. Otherwise, the call succeeds
836 * MSI specification.
867 /* Return the device with MSI unmasked as initial states */ in pci_msi_shutdown()
886 * pci_msix_vec_count - return the number of device's MSI-X table entries
887 * @dev: pointer to the pci_dev data structure of MSI-X device function
888 * This function returns the number of device's MSI-X table entries and
889 * therefore the number of MSI-X vectors device is capable of sending.
890 * It returns a negative errno if the device is not capable of sending MSI-X
932 /* Check whether driver already requested for MSI IRQ */ in __pci_enable_msix()
934 pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n"); in __pci_enable_msix()
952 /* Return the device with MSI-X masked as initial states */ in pci_msix_shutdown()
978 * pci_msi_enabled - is MSI enabled?
980 * Returns true if MSI has not been disabled by the command-line option
998 /* Check whether driver already requested MSI-X IRQs */ in __pci_enable_msi_range()
1000 pci_info(dev, "can't enable MSI (MSI-X already enabled)\n"); in __pci_enable_msi_range()
1083 * pci_enable_msix_range - configure device's MSI-X capability structure
1084 * @dev: pointer to the pci_dev data structure of MSI-X device function
1085 * @entries: pointer to an array of MSI-X entries
1086 * @minvec: minimum number of MSI-X IRQs requested
1087 * @maxvec: maximum number of MSI-X IRQs requested
1089 * Setup the MSI-X capability structure of device function with a maximum
1091 * upon its software driver call to request for MSI-X mode enabled on its
1094 * indicates the successful configuration of MSI-X capability structure
1095 * with new allocated MSI-X interrupts.
1112 * Allocate up to @max_vecs interrupt vectors for @dev, using MSI-X or MSI
1217 * pci_irq_get_affinity - return the affinity of a particular MSI vector
1264 * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
1265 * @irq_data: Pointer to interrupt data of the MSI interrupt
1273 * For MSI-X desc->irq is always equal to irq_data->irq. For in pci_msi_domain_write_msg()
1274 * MSI only the first interrupt of MULTI MSI passes the test. in pci_msi_domain_write_msg()
1281 * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
1282 * @desc: Pointer to the MSI descriptor
1309 * 1 if Multi MSI is requested, but the domain does not support it
1380 * pci_msi_create_irq_domain - Create a MSI interrupt domain
1382 * @info: MSI domain info
1385 * Updates the domain and chip ops and creates a MSI interrupt domain.
1408 /* PCI-MSI is oneshot-safe */ in pci_msi_create_irq_domain()
1421 * Users of the generic MSI infrastructure expect a device to have a single ID,
1445 * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
1469 * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
1472 * Use the firmware data to find a device-specific MSI domain
1475 * Returns: The corresponding MSI domain or NULL if none has been found.
1492 * a non-standard PCI-MSI domain
1496 * non-standard PCI/MSI.
1519 * Disable the MSI hardware to avoid screaming interrupts in pci_msi_init()