diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-10-11 06:16:13 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-14 00:53:13 -0400 |
commit | 759f89e03c9e5656ff18c02e21b439506f7c0cdc (patch) | |
tree | 6e7703c0672210f2c0a1168de161d15c7470081d /include/asm-sparc64 | |
parent | a2cd15586e630b0870bf34783568d83901890743 (diff) |
[SPARC64]: Consolidate MSI support code.
This also makes us use the MSI queues correctly.
Each MSI queue is serviced by a normal sun4u/sun4v INO interrupt
handler. This handler runs the MSI queue and dispatches the
virtual interrupts indicated by arriving MSIs in that MSI queue.
All of the common logic is placed in pci_msi.c, with callbacks to
handle the PCI controller specific aspects of the operations.
This common infrastructure will make it much easier to add MSG
support.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r-- | include/asm-sparc64/irq.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h index 4de37254436e..bad3c28cdee8 100644 --- a/include/asm-sparc64/irq.h +++ b/include/asm-sparc64/irq.h | |||
@@ -59,8 +59,10 @@ extern unsigned int sun4u_build_msi(u32 portid, unsigned int *virt_irq_p, | |||
59 | extern void sun4u_destroy_msi(unsigned int virt_irq); | 59 | extern void sun4u_destroy_msi(unsigned int virt_irq); |
60 | extern unsigned int sbus_build_irq(void *sbus, unsigned int ino); | 60 | extern unsigned int sbus_build_irq(void *sbus, unsigned int ino); |
61 | 61 | ||
62 | extern void sparc64_set_msi(unsigned int virt_irq, u32 msi); | 62 | extern unsigned char virt_irq_alloc(unsigned int real_irq); |
63 | extern u32 sparc64_get_msi(unsigned int virt_irq); | 63 | #ifdef CONFIG_PCI_MSI |
64 | extern void virt_irq_free(unsigned int virt_irq); | ||
65 | #endif | ||
64 | 66 | ||
65 | extern void fixup_irqs(void); | 67 | extern void fixup_irqs(void); |
66 | 68 | ||