aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2005-08-04 09:16:59 +0200
committerJames Bottomley <jejb@mulgrave.(none)>2005-08-04 17:39:55 -0500
commit52b5cfb355b2b3274979d25490f190d478ab1fad (patch)
tree7e4cf471d0db37af60e13f9461ff5008caeeceec
parent88ff29a4a5a8c4e0ecf375f783be071d1e7e264d (diff)
[SCSI] aic79xx: fixup DT setting
this patch is just a cross-port of the fixup for aic7xxx DT settings. As the same restrictions apply for aic79xx also (DT requires wide transfers) the dt setting routine should be modified equivalently. And an invalid period setting will be caught by ahd_find_syncrate() anyway. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 982a74a145f..40f32bb2397 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -2440,6 +2440,7 @@ static void ahd_linux_set_dt(struct scsi_target *starget, int dt)
unsigned int ppr_options = tinfo->goal.ppr_options
& ~MSG_EXT_PPR_DT_REQ;
unsigned int period = tinfo->goal.period;
+ unsigned int width = tinfo->goal.width;
unsigned long flags;
#ifdef AHD_DEBUG
@@ -2449,8 +2450,8 @@ static void ahd_linux_set_dt(struct scsi_target *starget, int dt)
#endif
if (dt) {
ppr_options |= MSG_EXT_PPR_DT_REQ;
- if (period > 9)
- period = 9; /* at least 12.5ns for DT */
+ if (!width)
+ ahd_linux_set_width(starget, 1);
} else {
if (period <= 9)
period = 10; /* If resetting DT, period must be >= 25ns */