diff -u --recursive --new-file v1.0.8/linux/Makefile linux/Makefile --- v1.0.8/linux/Makefile Sun Apr 17 00:10:46 1994 +++ linux/Makefile Sun Apr 17 00:17:39 1994 @@ -1,6 +1,6 @@ VERSION = 1 PATCHLEVEL = 0 -SUBLEVEL = 8 +SUBLEVEL = 9 all: Version zImage diff -u --recursive --new-file v1.0.8/linux/drivers/scsi/fdomain.c linux/drivers/scsi/fdomain.c --- v1.0.8/linux/drivers/scsi/fdomain.c Sun Apr 17 00:10:47 1994 +++ linux/drivers/scsi/fdomain.c Sun Apr 17 00:12:06 1994 @@ -1,10 +1,10 @@ /* fdomain.c -- Future Domain TMC-16x0 SCSI driver * Created: Sun May 3 18:53:19 1992 by faith@cs.unc.edu - * Revised: Fri Apr 1 23:47:55 1994 by faith@cs.unc.edu + * Revised: Thu Apr 7 20:30:09 1994 by faith@cs.unc.edu * Author: Rickard E. Faith, faith@cs.unc.edu * Copyright 1992, 1993, 1994 Rickard E. Faith * - * $Id: fdomain.c,v 5.15 1994/04/02 04:48:04 root Exp $ + * $Id: fdomain.c,v 5.16 1994/04/08 00:30:15 root Exp $ * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -168,7 +168,7 @@ #include #include -#define VERSION "$Revision: 5.15 $" +#define VERSION "$Revision: 5.16 $" /* START OF USER DEFINABLE OPTIONS */ @@ -282,6 +282,9 @@ static int Write_FIFO_port; static int Write_SCSI_Data_port; +static int FIFO_Size = 0x2000; /* 8k FIFO for + pre-tmc18c30 chips */ + extern void fdomain_16x0_intr( int unused ); static void *addresses[] = { @@ -421,7 +424,10 @@ outb( 0x80, port + IO_Control ); if (inb( port + Configuration2 ) & 0x80 == 0x80) { outb( 0x00, port + IO_Control ); - if (inb( port + Configuration2 ) & 0x80 == 0x00) chip = tmc18c30; + if (inb( port + Configuration2 ) & 0x80 == 0x00) { + chip = tmc18c30; + FIFO_Size = 0x800; /* 2k FIFO */ + } } #else @@ -429,7 +435,10 @@ have problems. Lets assume it is an 18c30 if the RAM is disabled. */ - if (inb( port + Configuration2 ) & 0x02) chip = tmc18c30; + if (inb( port + Configuration2 ) & 0x02) { + chip = tmc18c30; + FIFO_Size = 0x800; /* 2k FIFO */ + } #endif /* If that failed, we are an 18c50. */ } @@ -1127,7 +1136,7 @@ } if (current_SC->SCp.have_data_in == -1) { /* DATA OUT */ - while ( (data_count = 0x2000 - inw( FIFO_Data_Count_port )) > 512 ) { + while ( (data_count = FIFO_Size - inw( FIFO_Data_Count_port )) > 512 ) { #if EVERY_ACCESS printk( "DC=%d, ", data_count ) ; #endif