aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2006-03-08 07:00:07 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-12 10:06:57 -0500
commit76744f429a178ad2df06b722e5e7bbbf1b5245ee (patch)
tree92406bc62b0316803746c57e2e461721bc454578 /drivers
parent986a25f96accc8272059ae8b3eb63055f58cadb0 (diff)
[SCSI] aic79xx: Avoid renegotiation on inquiry
Because of some quirk in the SCSI spec the aic79xx driver chose to force a renegotiation when sending an inquiry. This should better be handled by the upper layers if required at all. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c24
1 files changed, 0 insertions, 24 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 0fbd1ec58340..bcced0a417e6 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -1526,30 +1526,6 @@ ahd_linux_run_command(struct ahd_softc *ahd, struct ahd_linux_device *dev,
1526 if ((tstate->auto_negotiate & mask) != 0) { 1526 if ((tstate->auto_negotiate & mask) != 0) {
1527 scb->flags |= SCB_AUTO_NEGOTIATE; 1527 scb->flags |= SCB_AUTO_NEGOTIATE;
1528 scb->hscb->control |= MK_MESSAGE; 1528 scb->hscb->control |= MK_MESSAGE;
1529 } else if (cmd->cmnd[0] == INQUIRY
1530 && (tinfo->curr.offset != 0
1531 || tinfo->curr.width != MSG_EXT_WDTR_BUS_8_BIT
1532 || tinfo->curr.ppr_options != 0)
1533 && (tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ)==0) {
1534 /*
1535 * The SCSI spec requires inquiry
1536 * commands to complete without
1537 * reporting unit attention conditions.
1538 * Because of this, an inquiry command
1539 * that occurs just after a device is
1540 * reset will result in a data phase
1541 * with mismatched negotiated rates.
1542 * The core already forces a renegotiation
1543 * for reset events that are visible to
1544 * our controller or that we initiate,
1545 * but a third party device reset or a
1546 * hot-plug insertion can still cause this
1547 * issue. Therefore, we force a re-negotiation
1548 * for every inquiry command unless we
1549 * are async.
1550 */
1551 scb->flags |= SCB_NEGOTIATE;
1552 scb->hscb->control |= MK_MESSAGE;
1553 } 1529 }
1554 1530
1555 if ((dev->flags & (AHD_DEV_Q_TAGGED|AHD_DEV_Q_BASIC)) != 0) { 1531 if ((dev->flags & (AHD_DEV_Q_TAGGED|AHD_DEV_Q_BASIC)) != 0) {