summaryrefslogtreecommitdiffstats
path: root/sys/i386/scsi
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1995-01-27 17:37:05 +0000
committergibbs <gibbs@FreeBSD.org>1995-01-27 17:37:05 +0000
commit630d3981306ee5bc445899521f23e3106557a91c (patch)
tree70cf44cf36c4f019b65ad224154d93de1ab530bf /sys/i386/scsi
parentb5c6599aa47b119e1aaac3b629eb0e9d109696be (diff)
downloadFreeBSD-src-630d3981306ee5bc445899521f23e3106557a91c.zip
FreeBSD-src-630d3981306ee5bc445899521f23e3106557a91c.tar.gz
Set the current transfer parameters directly after a mesg reject for either
Wide or Sync negotiation attempts as we do in all other phases of negotiation.
Diffstat (limited to 'sys/i386/scsi')
-rw-r--r--sys/i386/scsi/aic7xxx.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/sys/i386/scsi/aic7xxx.c b/sys/i386/scsi/aic7xxx.c
index 824ff01..0b62719 100644
--- a/sys/i386/scsi/aic7xxx.c
+++ b/sys/i386/scsi/aic7xxx.c
@@ -24,7 +24,7 @@
*
* commenced: Sun Sep 27 18:14:01 PDT 1992
*
- * $Id: aic7xxx.c,v 1.11 1995/01/16 16:33:46 gibbs Exp $
+ * $Id: aic7xxx.c,v 1.12 1995/01/22 00:48:39 gibbs Exp $
*/
/*
* TODO:
@@ -957,15 +957,6 @@ ahcintr(unit)
+ scsi_id);
mask = (0x01 << scsi_id);
- if(ahc->needsdtr & mask){
- /* note asynch xfers and clear flag */
- targ_scratch &= 0xf0;
- ahc->needsdtr &= ~mask;
- printf("ahc%d: target %d refusing "
- "syncronous negotiation. Using "
- "asyncronous transfers\n",
- unit, scsi_id);
- }
if(ahc->needwdtr & mask){
/* note 8bit xfers and clear flag */
targ_scratch &= 0x7f;
@@ -975,11 +966,23 @@ ahcintr(unit)
"8bit transfers\n",
unit, scsi_id);
}
+ else if(ahc->needsdtr & mask){
+ /* note asynch xfers and clear flag */
+ targ_scratch &= 0xf0;
+ ahc->needsdtr &= ~mask;
+ printf("ahc%d: target %d refusing "
+ "syncronous negotiation. Using "
+ "asyncronous transfers\n",
+ unit, scsi_id);
+ }
+ else
+ /*
+ * Otherwise, we ignore it.
+ */
+ break;
outb(HA_TARG_SCRATCH + iobase + scsi_id,
targ_scratch);
- /*
- * Otherwise, we ignore it.
- */
+ outb(SCSIRATE + iobase, targ_scratch);
break;
}
case BAD_STATUS:
OpenPOWER on IntegriCloud