From: Anton Blanchard <anton@samba.org>

The sym-do-160 patch should really disappear from your patchset, Mike
Anderson came up with the real fix.

Willy: are you OK with this patch?



 drivers/scsi/sym53c8xx_2/sym_hipd.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff -puN drivers/scsi/sym53c8xx_2/sym_hipd.c~sym-speed-fix drivers/scsi/sym53c8xx_2/sym_hipd.c
--- 25/drivers/scsi/sym53c8xx_2/sym_hipd.c~sym-speed-fix	2003-12-30 16:44:51.000000000 -0800
+++ 25-akpm/drivers/scsi/sym53c8xx_2/sym_hipd.c	2003-12-30 16:44:51.000000000 -0800
@@ -1058,12 +1058,10 @@ static int sym_prepare_setting(hcb_p np,
 		 *  and BUS width.
 		 */
 		if (np->features & FE_ULTRA3) {
-			if (tp->tinfo.user.period <= 9	&&
-			    tp->tinfo.user.width == BUS_16_BIT) {
-				tp->tinfo.user.options |= PPR_OPT_DT;
-				tp->tinfo.user.offset   = np->maxoffs_dt;
-				tp->tinfo.user.spi_version = 3;
-			}
+			tp->tinfo.user.options |= PPR_OPT_DT;
+			tp->tinfo.user.period = np->minsync_dt;
+			tp->tinfo.user.offset = np->maxoffs_dt;
+			tp->tinfo.user.spi_version = 3;
 		}
 
 		if (!tp->usrtags)
@@ -2126,9 +2124,15 @@ sym_setsync(hcb_p np, int target,
 
 	sym_settrans(np, target, 0, ofs, per, wide, div, fak);
 
-	tp->tinfo.goal.period	= tp->tinfo.curr.period  = per;
-	tp->tinfo.goal.offset	= tp->tinfo.curr.offset  = ofs;
-	tp->tinfo.goal.options	= tp->tinfo.curr.options = 0;
+	tp->tinfo.curr.period  = per;
+	tp->tinfo.curr.offset  = ofs;
+	tp->tinfo.curr.options = 0;
+
+	if (!(tp->tinfo.goal.options & PPR_OPT_MASK)) {
+		tp->tinfo.goal.period	= per;
+		tp->tinfo.goal.offset	= ofs;
+		tp->tinfo.goal.options	= 0;
+	}
 
 	sym_xpt_async_nego_sync(np, target);
 }

_