diff options
| -rw-r--r-- | drivers/scsi/scsi_transport_spi.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index 2918b9600db7..7670919a087a 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c | |||
| @@ -795,7 +795,8 @@ spi_dv_device_internal(struct scsi_request *sreq, u8 *buffer) | |||
| 795 | } | 795 | } |
| 796 | 796 | ||
| 797 | /* test width */ | 797 | /* test width */ |
| 798 | if (i->f->set_width && spi_max_width(starget) && sdev->wdtr) { | 798 | if (i->f->set_width && spi_max_width(starget) && |
| 799 | scsi_device_wide(sdev)) { | ||
| 799 | i->f->set_width(starget, 1); | 800 | i->f->set_width(starget, 1); |
| 800 | 801 | ||
| 801 | if (spi_dv_device_compare_inquiry(sreq, buffer, | 802 | if (spi_dv_device_compare_inquiry(sreq, buffer, |
| @@ -811,14 +812,14 @@ spi_dv_device_internal(struct scsi_request *sreq, u8 *buffer) | |||
| 811 | return; | 812 | return; |
| 812 | 813 | ||
| 813 | /* device can't handle synchronous */ | 814 | /* device can't handle synchronous */ |
| 814 | if (!sdev->ppr && !sdev->sdtr) | 815 | if (!scsi_device_sync(sdev) && !scsi_device_dt(sdev)) |
| 815 | return; | 816 | return; |
| 816 | 817 | ||
| 817 | /* see if the device has an echo buffer. If it does we can | 818 | /* see if the device has an echo buffer. If it does we can |
| 818 | * do the SPI pattern write tests */ | 819 | * do the SPI pattern write tests */ |
| 819 | 820 | ||
| 820 | len = 0; | 821 | len = 0; |
| 821 | if (sdev->ppr) | 822 | if (scsi_device_dt(sdev)) |
| 822 | len = spi_dv_device_get_echo_buffer(sreq, buffer); | 823 | len = spi_dv_device_get_echo_buffer(sreq, buffer); |
| 823 | 824 | ||
| 824 | retry: | 825 | retry: |
| @@ -828,9 +829,11 @@ spi_dv_device_internal(struct scsi_request *sreq, u8 *buffer) | |||
| 828 | DV_SET(period, spi_min_period(starget)); | 829 | DV_SET(period, spi_min_period(starget)); |
| 829 | /* try QAS requests; this should be harmless to set if the | 830 | /* try QAS requests; this should be harmless to set if the |
| 830 | * target supports it */ | 831 | * target supports it */ |
| 831 | DV_SET(qas, 1); | 832 | if (scsi_device_qas(sdev)) |
| 833 | DV_SET(qas, 1); | ||
| 832 | /* Also try IU transfers */ | 834 | /* Also try IU transfers */ |
| 833 | DV_SET(iu, 1); | 835 | if (scsi_device_ius(sdev)) |
| 836 | DV_SET(iu, 1); | ||
| 834 | if (spi_min_period(starget) < 9) { | 837 | if (spi_min_period(starget) < 9) { |
| 835 | /* This u320 (or u640). Ignore the coupled parameters | 838 | /* This u320 (or u640). Ignore the coupled parameters |
| 836 | * like DT and IU, but set the optional ones */ | 839 | * like DT and IU, but set the optional ones */ |
