diff options
-rw-r--r-- | drivers/scsi/scsi_transport_spi.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index 5829f97a2068..ace49d5bd9c4 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c | |||
@@ -785,6 +785,7 @@ spi_dv_device_internal(struct scsi_device *sdev, u8 *buffer) | |||
785 | { | 785 | { |
786 | struct spi_internal *i = to_spi_internal(sdev->host->transportt); | 786 | struct spi_internal *i = to_spi_internal(sdev->host->transportt); |
787 | struct scsi_target *starget = sdev->sdev_target; | 787 | struct scsi_target *starget = sdev->sdev_target; |
788 | struct Scsi_Host *shost = sdev->host; | ||
788 | int len = sdev->inquiry_len; | 789 | int len = sdev->inquiry_len; |
789 | /* first set us up for narrow async */ | 790 | /* first set us up for narrow async */ |
790 | DV_SET(offset, 0); | 791 | DV_SET(offset, 0); |
@@ -844,6 +845,14 @@ spi_dv_device_internal(struct scsi_device *sdev, u8 *buffer) | |||
844 | if (spi_min_period(starget) == 8) | 845 | if (spi_min_period(starget) == 8) |
845 | DV_SET(pcomp_en, 1); | 846 | DV_SET(pcomp_en, 1); |
846 | } | 847 | } |
848 | /* now that we've done all this, actually check the bus | ||
849 | * signal type (if known). Some devices are stupid on | ||
850 | * a SE bus and still claim they can try LVD only settings */ | ||
851 | if (i->f->get_signalling) | ||
852 | i->f->get_signalling(shost); | ||
853 | if (spi_signalling(shost) == SPI_SIGNAL_SE || | ||
854 | spi_signalling(shost) == SPI_SIGNAL_HVD) | ||
855 | DV_SET(dt, 0); | ||
847 | /* Do the read only INQUIRY tests */ | 856 | /* Do the read only INQUIRY tests */ |
848 | spi_dv_retrain(sdev, buffer, buffer + sdev->inquiry_len, | 857 | spi_dv_retrain(sdev, buffer, buffer + sdev->inquiry_len, |
849 | spi_dv_device_compare_inquiry); | 858 | spi_dv_device_compare_inquiry); |