Forum Discussion
Altera_Forum
Honored Contributor
15 years agoHow to request multiply MSI interrupts?
Hi !!! Developing a network device driver on Arria2 GX (Avalon-ST). Is it possible to set a vector of 8 MSI interrupts , if the design supports only MSI interrupts, not MSI - X? From the...
Altera_Forum
Honored Contributor
14 years agoHi,
Once more thanks a lot for your advice about Linux Driver Programming. Rigth now how to deal with Interrupt Service Routine because I have 8 MSI Source. Should I write 8 ISR? Here is a piece of my code --- Quote Start --- ------------------------------------------------------------------------------------------ /* Interrupt Handler */ void LATTICE_pci_intr_handler (int irq, void *dev_id, struct pt_regs *regs) { unsigned long intr_flag; /* Lese Interrupt-Flag, um zu pruefen, ob das LATTICE PCI-Board ueberhaupt */ /* Quelle des Interrupts ist. (Moeglicherweise Shared Interrupt!) */ intr_flag = readl (LATTICE_pci_dev.virt_addr + LATTICE_INTR_REG_ADDR) & 1; if (intr_flag) return; /* Kein Interrupt durch das LATTICE PCI-Board */ /* Hier beginnt die eigentliche Interrupt-Bearbeitung... */ printk ("LATTICE PCI-Board: Interrupt!\n"); } ........ /* Interrupt-Handler registrieren */ if (request_irq (LATTICE_pci_dev.intr_line, LATTICE_pci_intr_handler, SA_SHIRQ, LATTICE_PCI_NAME, &LATTICE_pci_dev)) { printk ("LATTICE PCI-Board: can't get assigned IRQ %d.\n", LATTICE_pci_dev.intr_line); result = -EIO; goto exit1; } --- Quote End ---