Skip to contentSkip to conversation

misc. sn2 updates

PATCH In review Jesse Barnes 3 participants 4 messages Sep 8, 2003 – Sep 11, 2003

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 misc. sn2 updates

Fix a couple of sn2 files.

Jesse

arch/ia64/sn/io/machvec/pci_dma.c +1 -1
diff -Nru a/arch/ia64/sn/io/machvec/pci_dma.c b/arch/ia64/sn/io/machvec/pci_dma.c
@@ -597,7 +597,7 @@
 	if (!sn_dma_supported(dev, dma_mask))
 		return 0;
 
-	dev->dma_mask = dma_mask;
+	*dev->dma_mask = dma_mask;
 	return 1;
 }
 EXPORT_SYMBOL(sn_dma_set_mask);
include/asm-ia64/sn/hcl.h +1 -0
diff -Nru a/include/asm-ia64/sn/hcl.h b/include/asm-ia64/sn/hcl.h
@@ -10,6 +10,7 @@
 #define _ASM_IA64_SN_HCL_H
 
 #include <asm/sn/sgi.h>
+#include <asm/sn/invent.h>
 
 extern vertex_hdl_t hwgraph_root;
 extern vertex_hdl_t linux_busnum;
include/asm-ia64/sn/pci/pciio.h +34 -0
diff -Nru a/include/asm-ia64/sn/pci/pciio.h b/include/asm-ia64/sn/pci/pciio.h
@@ -695,5 +695,39 @@
 extern int              pciio_error_handler(vertex_hdl_t, int, ioerror_mode_t, ioerror_t *);
 extern int		pciio_dma_enabled(vertex_hdl_t);
 
+/**
+ * sn_pci_set_vchan - Set the requested Virtual Channel bits into the mapped DMA
+ *                    address.
+ * @pci_dev: pci device pointer
+ * @addr: mapped dma address
+ * @vchan: Virtual Channel to use 0 or 1.
+ *
+ * Set the Virtual Channel bit in the mapped dma address.
+ */
+
+static inline int
+sn_pci_set_vchan(struct pci_dev *pci_dev,
+		 dma_addr_t *addr,
+		 int vchan)
+{
+	if (vchan > 1) {
+		return -1;
+	}
+
+	if (!(*addr >> 32))     /* Using a mask here would be cleaner */
+		return 0;       /* but this generates better code */
+
+	if (vchan = 1) {
+		/* Set Bit 57 */
+		*addr |= (1UL << 57);
+	}
+	else {
+		/* Clear Bit 57 */
+		*addr &= ~(1UL << 57);
+	}
+
+	return 0;
+}
+
 #endif				/* C or C++ */
 #endif				/* _ASM_SN_PCI_PCIIO_H */
include/asm-ia64/sn/sn2/intr.h +2 -1
diff -Nru a/include/asm-ia64/sn/sn2/intr.h b/include/asm-ia64/sn/sn2/intr.h
@@ -17,10 +17,11 @@
 #define SGI_II_ERROR			(0x31)
 #define SGI_XBOW_ERROR			(0x32)
 #define SGI_PCIBR_ERROR			(0x33)
+#define SGI_ACPI_SCI_INT		(0x34)
 #define SGI_XPC_NOTIFY			(0xe7)
 
 #define IA64_SN2_FIRST_DEVICE_VECTOR	(0x34)
-#define IA64_SN2_LAST_DEVICE_VECTOR	(0xe6)
+#define IA64_SN2_LAST_DEVICE_VECTOR	(0xe7)
 
 #define SN2_IRQ_RESERVED        (0x1)
 #define SN2_IRQ_CONNECTED       (0x2)
#1 lore raw
Quoted 1 line · Jesse Barnes

Fix a couple of sn2 files.

I'm not sure if it was this change, but something like it appears to have broken the qla1280 driver when building with CONFIG_GENERIC :

In file included from include/asm/sn/pci/pciio.h:20,

                 from drivers/scsi/qla1280.c:382:

include/asm/sn/hcl.h:82: error: syntax error before "invplace_t" include/asm/sn/hcl.h:83: warning: function declaration isn't a prototype include/asm/sn/hcl.h:84: error: syntax error before "major_t" include/asm/sn/hcl.h:84: warning: function declaration isn't a prototype include/asm/sn/hcl.h:85: error: syntax error before "major_t" include/asm/sn/hcl.h:85: warning: function declaration isn't a prototype drivers/scsi/qla1280.c: In function `qla1280_64bit_start_scsi':
drivers/scsi/qla1280.c:3693: warning: implicit declaration of function `sn_pci_set_vchan'

-i
[email protected]
http://www.gelato.unsw.edu.au

#2 lore raw
In reply to Jesse Barnes

No, generic compiles won't work until the discontig patch gets merged somehow. Did I accidentally reenable arch/ia64/sn/ as part of the generic target? It should be commented out.

Jesse

Quoted 20 lines · Ian Wienand
Quoted 1 line · Jesse Barnes

Fix a couple of sn2 files.

I'm not sure if it was this change, but something like it appears to have broken the qla1280 driver when building with CONFIG_GENERIC :

In file included from include/asm/sn/pci/pciio.h:20,

                 from drivers/scsi/qla1280.c:382:

include/asm/sn/hcl.h:82: error: syntax error before "invplace_t" include/asm/sn/hcl.h:83: warning: function declaration isn't a prototype include/asm/sn/hcl.h:84: error: syntax error before "major_t" include/asm/sn/hcl.h:84: warning: function declaration isn't a prototype include/asm/sn/hcl.h:85: error: syntax error before "major_t" include/asm/sn/hcl.h:85: warning: function declaration isn't a prototype drivers/scsi/qla1280.c: In function `qla1280_64bit_start_scsi':
drivers/scsi/qla1280.c:3693: warning: implicit declaration of function `sn_pci_set_vchan'

-i
[email protected]
http://www.gelato.unsw.edu.au

#3 lore raw
In reply to Jesse Barnes
Quoted 3 lines · Jesse Barnes

No, generic compiles won't work until the discontig patch gets merged somehow. Did I accidentally reenable arch/ia64/sn/ as part of the generic target? It should be commented out.

This is actually Jes' fault because he enables SN2-specific Hacks in qla1280 for the generic build. He hacked around my previous specific complaint by using weak linking hacks, but your asm/sn/ changes show once again that this idea is flawed..