diff options
-rw-r--r-- | drivers/scsi/53c700.c | 24 | ||||
-rw-r--r-- | drivers/scsi/53c700.h | 2 | ||||
-rw-r--r-- | drivers/scsi/lasi700.c | 1 | ||||
-rw-r--r-- | drivers/scsi/sim710.c | 1 |
4 files changed, 24 insertions, 4 deletions
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c index 68103e508db7..88e061d13d0b 100644 --- a/drivers/scsi/53c700.c +++ b/drivers/scsi/53c700.c | |||
@@ -667,12 +667,30 @@ NCR_700_chip_setup(struct Scsi_Host *host) | |||
667 | __u8 min_xferp = (hostdata->chip710 ? NCR_710_MIN_XFERP : NCR_700_MIN_XFERP); | 667 | __u8 min_xferp = (hostdata->chip710 ? NCR_710_MIN_XFERP : NCR_700_MIN_XFERP); |
668 | 668 | ||
669 | if(hostdata->chip710) { | 669 | if(hostdata->chip710) { |
670 | __u8 burst_disable = hostdata->burst_disable | 670 | __u8 burst_disable = 0; |
671 | ? BURST_DISABLE : 0; | 671 | __u8 burst_length = 0; |
672 | |||
673 | switch (hostdata->burst_length) { | ||
674 | case 1: | ||
675 | burst_length = BURST_LENGTH_1; | ||
676 | break; | ||
677 | case 2: | ||
678 | burst_length = BURST_LENGTH_2; | ||
679 | break; | ||
680 | case 4: | ||
681 | burst_length = BURST_LENGTH_4; | ||
682 | break; | ||
683 | case 8: | ||
684 | burst_length = BURST_LENGTH_8; | ||
685 | break; | ||
686 | default: | ||
687 | burst_disable = BURST_DISABLE; | ||
688 | break; | ||
689 | } | ||
672 | dcntl_extra = COMPAT_700_MODE; | 690 | dcntl_extra = COMPAT_700_MODE; |
673 | 691 | ||
674 | NCR_700_writeb(dcntl_extra, host, DCNTL_REG); | 692 | NCR_700_writeb(dcntl_extra, host, DCNTL_REG); |
675 | NCR_700_writeb(BURST_LENGTH_8 | hostdata->dmode_extra, | 693 | NCR_700_writeb(burst_length | hostdata->dmode_extra, |
676 | host, DMODE_710_REG); | 694 | host, DMODE_710_REG); |
677 | NCR_700_writeb(burst_disable | (hostdata->differential ? | 695 | NCR_700_writeb(burst_disable | (hostdata->differential ? |
678 | DIFF : 0), host, CTEST7_REG); | 696 | DIFF : 0), host, CTEST7_REG); |
diff --git a/drivers/scsi/53c700.h b/drivers/scsi/53c700.h index f38822db4210..841e1bb27d57 100644 --- a/drivers/scsi/53c700.h +++ b/drivers/scsi/53c700.h | |||
@@ -203,7 +203,7 @@ struct NCR_700_Host_Parameters { | |||
203 | __u32 force_le_on_be:1; | 203 | __u32 force_le_on_be:1; |
204 | #endif | 204 | #endif |
205 | __u32 chip710:1; /* set if really a 710 not 700 */ | 205 | __u32 chip710:1; /* set if really a 710 not 700 */ |
206 | __u32 burst_disable:1; /* set to 1 to disable 710 bursting */ | 206 | __u32 burst_length:4; /* set to 0 to disable 710 bursting */ |
207 | 207 | ||
208 | /* NOTHING BELOW HERE NEEDS ALTERING */ | 208 | /* NOTHING BELOW HERE NEEDS ALTERING */ |
209 | __u32 fast:1; /* if we can alter the SCSI bus clock | 209 | __u32 fast:1; /* if we can alter the SCSI bus clock |
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c index f0871c3ac3d9..2aae1b081fcf 100644 --- a/drivers/scsi/lasi700.c +++ b/drivers/scsi/lasi700.c | |||
@@ -123,6 +123,7 @@ lasi700_probe(struct parisc_device *dev) | |||
123 | hostdata->force_le_on_be = 0; | 123 | hostdata->force_le_on_be = 0; |
124 | hostdata->chip710 = 1; | 124 | hostdata->chip710 = 1; |
125 | hostdata->dmode_extra = DMODE_FC2; | 125 | hostdata->dmode_extra = DMODE_FC2; |
126 | hostdata->burst_length = 8; | ||
126 | } | 127 | } |
127 | 128 | ||
128 | host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev); | 129 | host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev); |
diff --git a/drivers/scsi/sim710.c b/drivers/scsi/sim710.c index 551baccec523..018c65f73ac4 100644 --- a/drivers/scsi/sim710.c +++ b/drivers/scsi/sim710.c | |||
@@ -123,6 +123,7 @@ sim710_probe_common(struct device *dev, unsigned long base_addr, | |||
123 | hostdata->differential = differential; | 123 | hostdata->differential = differential; |
124 | hostdata->clock = clock; | 124 | hostdata->clock = clock; |
125 | hostdata->chip710 = 1; | 125 | hostdata->chip710 = 1; |
126 | hostdata->burst_length = 8; | ||
126 | 127 | ||
127 | /* and register the chip */ | 128 | /* and register the chip */ |
128 | if((host = NCR_700_detect(&sim710_driver_template, hostdata, dev)) | 129 | if((host = NCR_700_detect(&sim710_driver_template, hostdata, dev)) |