From: Alan Cox <alan@lxorguk.ukuu.org.uk>

Pretty much theoretical for non MMIO thankfully.  We _must_ use OUTBSYNC for
commands or they may be posted and thus ruin the 400nS required delay.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/ide/ide-iops.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN drivers/ide/ide-iops.c~ide-timing-violation-on-reset drivers/ide/ide-iops.c
--- 25/drivers/ide/ide-iops.c~ide-timing-violation-on-reset	2005-06-24 02:10:56.000000000 -0700
+++ 25-akpm/drivers/ide/ide-iops.c	2005-06-24 02:10:56.000000000 -0700
@@ -1181,7 +1181,8 @@ static ide_startstop_t do_reset1 (ide_dr
 		pre_reset(drive);
 		SELECT_DRIVE(drive);
 		udelay (20);
-		hwif->OUTB(WIN_SRST, IDE_COMMAND_REG);
+		hwif->OUTBSYNC(drive, WIN_SRST, IDE_COMMAND_REG);
+		ndelay(400);
 		hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
 		hwgroup->polling = 1;
 		__ide_set_handler(drive, &atapi_reset_pollfunc, HZ/20, NULL);
_