From: Alan Cox 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 Cc: Bartlomiej Zolnierkiewicz Signed-off-by: Andrew Morton --- 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); _