diff options
Diffstat (limited to 'drivers/scsi/53c700.c')
-rw-r--r-- | drivers/scsi/53c700.c | 24 |
1 files changed, 21 insertions, 3 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); |