]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] ia64: misc. sn2 updates
authorJesse Barnes <jbarnes@sgi.com>
Mon, 8 Sep 2003 06:12:55 +0000 (23:12 -0700)
committerDavid Mosberger <davidm@tiger.hpl.hp.com>
Mon, 8 Sep 2003 06:12:55 +0000 (23:12 -0700)
Fix a couple of sn2 files.

arch/ia64/sn/io/machvec/pci_dma.c
include/asm-ia64/sn/hcl.h
include/asm-ia64/sn/pci/pciio.h
include/asm-ia64/sn/sn2/intr.h

index 5a26e7efb80ab619ba4416cba7593dd47adf6b9d..209c5a0b20931a20322cb20c564be879d3d07c37 100644 (file)
@@ -597,7 +597,7 @@ sn_dma_set_mask(struct device *dev, u64 dma_mask)
        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);
index 4e571362db74f492b7e3d84bd5bc50e3c9200e28..1c1ad00fc90708bde05525161314f8ff4e3d01d8 100644 (file)
@@ -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;
index bb03dc1a6aced5dd4d90459b07e1e7cdfe789458..a1cd558e3fcb676f2053e222015180aa111ff3bd 100644 (file)
@@ -695,5 +695,39 @@ extern int         pciio_info_type1_get(pciio_info_t);
 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 */
index d021292d9bf1592166d64f7ca43e19363d2a1448..adb87093a670f5f5fe0308776204ff386af6ad29 100644 (file)
 #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)