• Home
  • Raw
  • Download

Lines Matching full:msi

3  * PCI Message Signaled Interrupt (MSI)
18 #include <linux/msi.h>
65 struct msi_controller *chip = dev->bus->msi; in arch_setup_msi_irq()
92 struct msi_controller *chip = dev->bus->msi; in arch_setup_msi_irqs()
99 * If an architecture wants to support multiple MSI, it needs to in arch_setup_msi_irqs()
169 * PCI 2.3 does not specify mask bits for each MSI interrupt. Attempting to
170 * mask all MSI interrupts by clearing the MSI enable bit does not work
209 * of MSI-X interrupts.
251 * pci_msi_mask_irq - Generic IRQ chip callback to mask PCI/MSI interrupts
261 * pci_msi_unmask_irq - Generic IRQ chip callback to unmask PCI/MSI interrupts
497 entry->msi_attrib.is_msix ? "msix" : "msi"); in msi_mode_show()
515 /* Determine how many msi entries we have */ in populate_msi_sysfs()
521 /* Dynamically create the MSI attributes for the PCI device */ in populate_msi_sysfs()
589 /* MSI Entry Initialization */ in msi_setup_entry()
629 pci_err(dev, "Device has broken 64-bit MSI but arch" in msi_verify_entries()
637 * msi_capability_init - configure device's MSI capability structure
638 * @dev: pointer to the pci_dev data structure of MSI device function
642 * Setup the MSI capability structure of the device with the requested
644 * setup of an entry with the new MSI IRQ. A negative return value indicates
655 pci_msi_set_enable(dev, 0); /* Disable MSI during set up */ in msi_capability_init()
667 /* Configure MSI capability structure */ in msi_capability_init()
689 /* Set MSI enabled bits */ in msi_capability_init()
797 * msix_capability_init - configure device's MSI-X capability
798 * @dev: pointer to the pci_dev data structure of MSI-X device function
803 * Setup the MSI-X capability structure of device function with a
804 * single MSI-X IRQ. A return of zero indicates the successful setup of
805 * requested MSI-X entries with allocated IRQs or non-zero for otherwise.
815 * Some devices require MSI-X to be enabled before the MSI-X in msix_capability_init()
823 /* Request & Map MSI-X table region */ in msix_capability_init()
839 /* Check if all MSI entries honor device restrictions */ in msix_capability_init()
850 /* Set MSI-X enabled bits and unmask the function */ in msix_capability_init()
859 * which takes the MSI-X mask bits into account even in msix_capability_init()
860 * when MSI-X is disabled, which prevents MSI delivery. in msix_capability_init()
895 * pci_msi_supported - check whether MSI may be enabled on a device
896 * @dev: pointer to the pci_dev data structure of MSI device function
900 * to determine if MSI/-X are supported for the device. If MSI/-X is
907 /* MSI must be globally enabled and supported by the device */ in pci_msi_supported()
923 * Any bridge which does NOT route MSI transactions from its in pci_msi_supported()
937 * pci_msi_vec_count - Return the number of MSI vectors a device can send
940 * This function returns the number of MSI vectors a device requested via
942 * device is not capable sending MSI interrupts. Otherwise, the call succeeds
944 * MSI specification.
976 /* Return the device with MSI unmasked as initial states */ in pci_msi_shutdown()
996 * pci_msix_vec_count - return the number of device's MSI-X table entries
997 * @dev: pointer to the pci_dev data structure of MSI-X device function
998 * This function returns the number of device's MSI-X table entries and
999 * therefore the number of MSI-X vectors device is capable of sending.
1000 * It returns a negative errno if the device is not capable of sending MSI-X
1042 /* Check whether driver already requested for MSI IRQ */ in __pci_enable_msix()
1044 pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n"); in __pci_enable_msix()
1062 /* Return the device with MSI-X masked as initial states */ in pci_msix_shutdown()
1088 * pci_msi_enabled - is MSI enabled?
1090 * Returns true if MSI has not been disabled by the command-line option
1108 /* Check whether driver already requested MSI-X IRQs */ in __pci_enable_msi_range()
1110 pci_info(dev, "can't enable MSI (MSI-X already enabled)\n"); in __pci_enable_msi_range()
1193 * pci_enable_msix_range - configure device's MSI-X capability structure
1194 * @dev: pointer to the pci_dev data structure of MSI-X device function
1195 * @entries: pointer to an array of MSI-X entries
1196 * @minvec: minimum number of MSI-X IRQs requested
1197 * @maxvec: maximum number of MSI-X IRQs requested
1199 * Setup the MSI-X capability structure of device function with a maximum
1201 * upon its software driver call to request for MSI-X mode enabled on its
1204 * indicates the successful configuration of MSI-X capability structure
1205 * with new allocated MSI-X interrupts.
1222 * Allocate up to @max_vecs interrupt vectors for @dev, using MSI-X or MSI
1298 * MSI-X: The index in the MSI-X vector table
1299 * MSI: The index of the enabled MSI vectors
1332 * pci_irq_get_affinity - return the affinity of a particular MSI vector
1337 * MSI-X: The index in the MSI-X vector table
1338 * MSI: The index of the enabled MSI vectors
1384 * pci_msi_domain_write_msg - Helper to write MSI message to PCI config space
1385 * @irq_data: Pointer to interrupt data of the MSI interrupt
1393 * For MSI-X desc->irq is always equal to irq_data->irq. For in pci_msi_domain_write_msg()
1394 * MSI only the first interrupt of MULTI MSI passes the test. in pci_msi_domain_write_msg()
1401 * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
1402 * @desc: Pointer to the MSI descriptor
1429 * 1 if Multi MSI is requested, but the domain does not support it
1500 * pci_msi_create_irq_domain - Create a MSI interrupt domain
1502 * @info: MSI domain info
1505 * Updates the domain and chip ops and creates a MSI interrupt domain.
1528 /* PCI-MSI is oneshot-safe */ in pci_msi_create_irq_domain()
1541 * Users of the generic MSI infrastructure expect a device to have a single ID,
1565 * pci_msi_domain_get_msi_rid - Get the MSI requester id (RID)
1589 * pci_msi_get_device_domain - Get the MSI domain for a given PCI device
1592 * Use the firmware data to find a device-specific MSI domain
1595 * Returns: The corresponding MSI domain or NULL if none has been found.
1612 * a non-standard PCI-MSI domain
1616 * non-standard PCI/MSI.