patch-2.1.91 linux/drivers/scsi/amiga7xx.c
Next file: linux/drivers/scsi/amiga7xx.h
Previous file: linux/drivers/scsi/a2091.c
Back to the patch index
Back to the overall index
- Lines: 101
- Date:
Sat Mar 21 11:09:47 1998
- Orig file:
v2.1.90/linux/drivers/scsi/amiga7xx.c
- Orig date:
Mon Jul 7 08:24:28 1997
diff -u --recursive --new-file v2.1.90/linux/drivers/scsi/amiga7xx.c linux/drivers/scsi/amiga7xx.c
@@ -33,14 +33,17 @@
S_IFDIR | S_IRUGO | S_IXUGO, 2
};
+extern ncr53c7xx_init (Scsi_Host_Template *tpnt, int board, int chip,
+ u32 base, int io_port, int irq, int dma,
+ long long options, int clock);
+
int amiga7xx_detect(Scsi_Host_Template *tpnt)
{
static unsigned char called = 0;
- int key, clock;
- int num = 0;
- unsigned long address;
+ unsigned int key;
+ int num = 0, clock;
long long options;
- struct ConfigDev *cd;
+ const struct ConfigDev *cd;
if (called || !MACH_IS_AMIGA)
return 0;
@@ -48,8 +51,9 @@
tpnt->proc_dir = &proc_scsi_amiga7xx;
#ifdef CONFIG_WARPENGINE_SCSI
- if ((key = zorro_find(MANUF_MACROSYSTEMS, PROD_WARP_ENGINE, 0, 0)))
+ if ((key = zorro_find(ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE_40xx, 0, 0)))
{
+ unsigned long address;
cd = zorro_get_board(key);
address = (unsigned long)kernel_map((unsigned long)cd->cd_BoardAddr,
cd->cd_BoardSize, KERNELMAP_NOCACHE_SER, NULL);
@@ -59,7 +63,8 @@
clock = 50000000; /* 50MHz SCSI Clock */
ncr53c7xx_init(tpnt, 0, 710, (u32)(unsigned char *)(address + 0x40000),
- 0, IRQ_AMIGA_PORTS, DMA_NONE, options, clock);
+ 0, IRQ_AMIGA_PORTS, DMA_NONE,
+ options, clock);
zorro_config_board(key, 0);
num++;
@@ -73,17 +78,18 @@
clock = 50000000; /* 50MHz SCSI Clock */
- ncr53c7xx_init(tpnt, 0, 710,
- (u32)(unsigned char *)ZTWO_VADDR(0xDD0040),
- 0, IRQ_AMIGA_PORTS, DMA_NONE, options, clock);
+ ncr53c7xx_init(tpnt, 0, 710, (u32)(unsigned char *)ZTWO_VADDR(0xDD0040),
+ 0, IRQ_AMIGA_PORTS, DMA_NONE,
+ options, clock);
num++;
}
#endif
#ifdef CONFIG_A4091_SCSI
- while ( (key = zorro_find(MANUF_COMMODORE, PROD_A4091, 0, 0)) ||
- (key = zorro_find(MANUF_COMMODORE2, PROD_A4091_2, 0, 0)) )
+ while ( (key = zorro_find(ZORRO_PROD_CBM_A4091_1, 0, 0)) ||
+ (key = zorro_find(ZORRO_PROD_CBM_A4091_2, 0, 0)) )
{
+ unsigned long address;
cd = zorro_get_board(key);
address = (unsigned long)kernel_map((unsigned long)cd->cd_BoardAddr,
cd->cd_BoardSize, KERNELMAP_NOCACHE_SER, NULL);
@@ -93,11 +99,31 @@
clock = 50000000; /* 50MHz SCSI Clock */
ncr53c7xx_init(tpnt, 0, 710, (u32)(unsigned char *)(address+0x800000),
- 0, IRQ_AMIGA_PORTS, DMA_NONE,
- options, clock);
+ 0, IRQ_AMIGA_PORTS, DMA_NONE, options, clock);
zorro_config_board(key, 0);
num++;
+ }
+#endif
+
+#ifdef CONFIG_GVP_TURBO_SCSI
+ if((key = zorro_find(ZORRO_PROD_GVP_GFORCE_040_060, 0, 0)))
+ {
+ cd = zorro_get_board(key);
+ address = ZTWO_VADDR((unsigned long)cd->cd_BoardAddr);
+
+ options = OPTION_MEMORY_MAPPED | OPTION_DEBUG_TEST1 |
+ OPTION_INTFLY | OPTION_SYNCHRONOUS |
+ OPTION_ALWAYS_SYNCHRONOUS | OPTION_DISCONNECT;
+
+ clock = 50000000; /* 50MHz SCSI Clock */
+
+ ncr53c7xx_init(tpnt, 0, 710,
+ (u32)(unsigned char *)(address + 0x40000),
+ 0, IRQ_AMIGA_PORTS, DMA_NONE, options, clock);
+
+ zorro_config_board(key, 0);
+ num++;
}
#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov