patch-2.4.22 linux-2.4.22/arch/sparc64/kernel/pci_sabre.c

Next file: linux-2.4.22/arch/sparc64/kernel/signal.c
Previous file: linux-2.4.22/arch/sparc64/kernel/pci.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/arch/sparc64/kernel/pci_sabre.c linux-2.4.22/arch/sparc64/kernel/pci_sabre.c
@@ -1543,6 +1543,7 @@
 	u32 busrange[2];
 	u32 vdma[2];
 	u32 upa_portid, dma_mask;
+	u64 clear_irq;
 	int bus;
 
 	hummingbird_p = 0;
@@ -1619,6 +1620,16 @@
 	printk("PCI: Found SABRE, main regs at %016lx, wsync at %016lx\n",
 	       p->controller_regs, pci_dma_wsync);
 
+	/* Clear interrupts */
+
+	/* PCI first */
+	for (clear_irq = SABRE_ICLR_A_SLOT0; clear_irq < SABRE_ICLR_B_SLOT0 + 0x80; clear_irq += 8)
+		sabre_write(p->controller_regs + clear_irq, 0x0UL);
+
+	/* Then OBIO */
+	for (clear_irq = SABRE_ICLR_SCSI; clear_irq < SABRE_ICLR_SCSI + 0x80; clear_irq += 8)
+		sabre_write(p->controller_regs + clear_irq, 0x0UL);
+
 	/* Error interrupts are enabled later after the bus scan. */
 	sabre_write(p->controller_regs + SABRE_PCICTRL,
 		    (SABRE_PCICTRL_MRLEN   | SABRE_PCICTRL_SERR |

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)