Skip to content

Commit

Permalink
scsi_transport_spi: use spi target settings instead of inquiry data f…
Browse files Browse the repository at this point in the history
…or DV

Right at the moment, we carefully set up the spi_support_xx in the
device configuration routines, but then we never actually use the
results: we rely on the inquiry strings.  If we're going to allow
overrides to the inquiry data, we have to rely on our own internal
settings.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
  • Loading branch information
James Bottomley authored and James Bottomley committed Jun 21, 2009
1 parent 598fa4b commit 9872b81
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions drivers/scsi/scsi_transport_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -833,7 +833,7 @@ spi_dv_device_internal(struct scsi_device *sdev, u8 *buffer)
return;
}

if (!scsi_device_wide(sdev)) {
if (!spi_support_wide(starget)) {
spi_max_width(starget) = 0;
max_width = 0;
}
Expand All @@ -860,7 +860,7 @@ spi_dv_device_internal(struct scsi_device *sdev, u8 *buffer)
return;

/* device can't handle synchronous */
if (!scsi_device_sync(sdev) && !scsi_device_dt(sdev))
if (!spi_support_sync(starget) && !spi_support_dt(starget))
return;

/* len == -1 is the signal that we need to ascertain the
Expand All @@ -876,13 +876,14 @@ spi_dv_device_internal(struct scsi_device *sdev, u8 *buffer)

/* try QAS requests; this should be harmless to set if the
* target supports it */
if (scsi_device_qas(sdev) && spi_max_qas(starget)) {
if (spi_support_qas(starget) && spi_max_qas(starget)) {
DV_SET(qas, 1);
} else {
DV_SET(qas, 0);
}

if (scsi_device_ius(sdev) && spi_max_iu(starget) && min_period < 9) {
if (spi_support_ius(starget) && spi_max_iu(starget) &&
min_period < 9) {
/* This u320 (or u640). Set IU transfers */
DV_SET(iu, 1);
/* Then set the optional parameters */
Expand All @@ -902,7 +903,7 @@ spi_dv_device_internal(struct scsi_device *sdev, u8 *buffer)
i->f->get_signalling(shost);
if (spi_signalling(shost) == SPI_SIGNAL_SE ||
spi_signalling(shost) == SPI_SIGNAL_HVD ||
!scsi_device_dt(sdev)) {
!spi_support_dt(starget)) {
DV_SET(dt, 0);
} else {
DV_SET(dt, 1);
Expand Down

0 comments on commit 9872b81

Please sign in to comment.