patch-2.1.101 linux/include/asm-sparc64/pbm.h

Next file: linux/include/asm-sparc64/pgtable.h
Previous file: linux/include/asm-sparc64/page.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.100/linux/include/asm-sparc64/pbm.h linux/include/asm-sparc64/pbm.h
@@ -1,4 +1,4 @@
-/* $Id: pbm.h,v 1.12 1998/04/10 12:29:55 ecd Exp $
+/* $Id: pbm.h,v 1.13 1998/04/20 07:15:11 ecd Exp $
  * pbm.h: U2P PCI bus module pseudo driver software state.
  *
  * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
@@ -90,20 +90,21 @@
  * irq registry layer, there is already enough crap in there due to sbus,
  * fhc, and dcookies.
  */
-#define PCI_IRQ_IDENT		0x80000000	/* This tells irq.c what we are        */
-#define PCI_IRQ_IMAP_OFF	0x7ff00000	/* Offset from first PSYCHO imap       */
+#define PCI_IRQ_IDENT		0x80000000	/* This tells irq.c what we are       */
+#define PCI_IRQ_IMAP_OFF	0x7ff00000	/* Offset from first PSYCHO imap      */
 #define PCI_IRQ_IMAP_OFF_SHFT	20
-#define PCI_IRQ_BUSNO		0x000fc000	/* PSYCHO instance                     */
+#define PCI_IRQ_BUSNO		0x000fc000	/* PSYCHO instance                    */
 #define PCI_IRQ_BUSNO_SHFT	14
-#define PCI_IRQ_IGN		0x000007c0	/* PSYCHO "Int Group Number"           */
-#define PCI_IRQ_INO		0x0000003f	/* PSYCHO INO                          */
+#define PCI_IRQ_DMA_SYNC	0x00001000	/* IRQ needs DMA sync for APB	      */
+#define PCI_IRQ_IGN		0x000007c0	/* PSYCHO "Int Group Number"          */
+#define PCI_IRQ_INO		0x0000003f	/* PSYCHO INO                         */
 
 #define PCI_IRQ_P(__irq)	(((__irq) & PCI_IRQ_IDENT) != 0)
 
 extern __inline__ unsigned int pci_irq_encode(unsigned long imap_off,
 					      unsigned long psycho_instance,
 					      unsigned long ign,
-					      unsigned long ino)
+					      unsigned long ino, int dma_sync)
 {
 	unsigned int irq;
 
@@ -112,8 +113,14 @@
 	irq |= ((psycho_instance << PCI_IRQ_BUSNO_SHFT) & PCI_IRQ_BUSNO);
 	irq |= ((ign << 6) & PCI_IRQ_IGN);
 	irq |= (ino & PCI_IRQ_INO);
+	irq |= dma_sync ? PCI_IRQ_DMA_SYNC : 0;
 
 	return irq;
 }
+
+/* Used by EBus */
+extern unsigned int psycho_irq_build(struct linux_pbm_info *pbm,
+				     struct pci_dev *pdev,
+				     unsigned int full_ino);
 
 #endif /* !(__SPARC64_PBM_H) */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov