misc. sn2 updates
PATCH 1/1 misc. sn2 updates
Fix a couple of sn2 files.
Jesse
arch/ia64/sn/io/machvec/pci_dma.c +1 -1
@@ -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
@@ -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
@@ -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
@@ -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)
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'
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 prototypeinclude/asm/sn/hcl.h:84: error: syntax error before "major_t"include/asm/sn/hcl.h:84: warning: function declaration isn't a prototypeinclude/asm/sn/hcl.h:85: error: syntax error before "major_t"include/asm/sn/hcl.h:85: warning: function declaration isn't a prototypedrivers/scsi/qla1280.c: In function `qla1280_64bit_start_scsi':drivers/scsi/qla1280.c:3693: warning: implicit declaration of function `sn_pci_set_vchan'
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..