Index: dc395-integ20.diff =================================================================== RCS file: /usr/local/cvsroot/dc395/dc395-integ20.diff,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- dc395-integ20.diff 1999/07/12 15:21:35 1.1 +++ dc395-integ20.diff 1999/08/31 22:01:25 1.2 @@ -30,7 +30,7 @@ seagate.o: seagate.c $(CC) $(CFLAGS) -DARBITRATE -DSLOW_HANDSHAKE -DFAST32 -c seagate.c + -+dc395x_trm.o : dc395x_trm.c dc395_trm.h ++dc395x_trm.o : dc395x_trm.c dc395x_trm.h + $(CC) $(CFLAGS) -c dc395x_trm.c tmscsim.o : tmscsim.c Index: dc395x_trm.c =================================================================== RCS file: /usr/local/cvsroot/dc395/dc395x_trm.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- dc395x_trm.c 1999/07/19 13:52:00 1.14 +++ dc395x_trm.c 1999/08/31 22:01:25 1.15 @@ -25,6 +25,7 @@ //* 1.09 99/07/18 Kurt Garloff Fix Oops. Fix recognition of devs. //* Fixed TagQ: MaxCommand limit! //* 1.10 99/07/19 KG Defines for switching off features. +//* 1.10a 99/08/31 KG Fix typo in dc390-integ20.diff //*********************************************************************** /* ************************************************************************* @@ -516,8 +517,9 @@ #define SYNC_NEGO_DONE BIT1 #define WIDE_NEGO_ENABLE BIT2 #define WIDE_NEGO_DONE BIT3 -#define EN_TAG_QUEUEING BIT4 -#define EN_ATN_STOP BIT5 +#define WIDE_NEGO_STATE BIT4 +#define EN_TAG_QUEUEING BIT5 +#define EN_ATN_STOP BIT6 #define SYNC_NEGO_OFFSET 15 @@ -2105,8 +2107,8 @@ */ WORD DC395x_trm_StartSCSI( PACB pACB, PDCB pDCB, PSRB pSRB ) { - WORD ioport, return_code; - BYTE scsistatus, scsicommand, i, command, identify_message; + WORD s_stat2, ioport, return_code; + BYTE s_stat, scsicommand, i, command, identify_message; PBYTE ptr; #ifdef DC395x_trm_DEBUG0 @@ -2115,10 +2117,11 @@ pSRB->TagNumber = 31; /* pACB->TagMaxNum: had error read in eeprom */ ioport = pACB->IOPortBase; - scsistatus = inb (ioport+TRM_S1040_SCSI_SIGNAL); - if (0 /*scsistatus & 0x20*/) + //s_stat = inb (ioport+TRM_S1040_SCSI_SIGNAL); + //s_stat2 = inw (ioport+TRM_S1040_SCSI_STATUS); + if (0 /*s_stat & 0x20*/ /* s_stat2 & 0x02000 */) { - printk ("DC395x: StartSCSI: BUSY %02x !\n", scsistatus); + printk ("DC395x: StartSCSI: BUSY %02x %04x !\n", s_stat, s_stat2); return 1; }; outb(pACB->AdaptSCSIID,ioport+TRM_S1040_SCSI_HOSTID); @@ -2138,6 +2141,7 @@ { if( !(pDCB->IdentifyMsg & 7) || (pSRB->CmdBlock[0] != INQUIRY) ) { + //outb( identify_message,ioport+TRM_S1040_SCSI_FIFO); scsicommand = SCMD_SEL_ATNSTOP; pSRB->SRBState = SRB_MSGOUT; goto polling; @@ -2225,6 +2229,7 @@ ** It's said that SCSI processor has more one SRB need to do, ** SCSI processor has been occupied by one SRB. */ + //outw( DO_CLRFIFO,ioport+TRM_S1040_SCSI_CONTROL); pSRB->SRBState = SRB_READY; pDCB->TagMask &= ~( 1 << pSRB->TagNumber ); return_code = 1; @@ -2239,12 +2244,12 @@ pACB->pActiveDCB = pDCB; pDCB->pActiveSRB = pSRB; return_code = 0; - /* it's important for atn stop*/ - outw(DO_DATALATCH | DO_HWRESELECT, ioport+TRM_S1040_SCSI_CONTROL); + /* it's important for atn stop */ + outw (DO_DATALATCH | DO_HWRESELECT, ioport+TRM_S1040_SCSI_CONTROL); /* ** SCSI cammand */ - outb(scsicommand,ioport+TRM_S1040_SCSI_COMMAND); + outb (scsicommand,ioport+TRM_S1040_SCSI_COMMAND); } return( return_code ); }