[PATCH] ide: IDE timing violation on reset
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> Acked-by: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
@@ -1181,7 +1181,8 @@ static ide_startstop_t do_reset1 (ide_drive_t *drive, int do_not_try_atapi)
|
|||||||
pre_reset(drive);
|
pre_reset(drive);
|
||||||
SELECT_DRIVE(drive);
|
SELECT_DRIVE(drive);
|
||||||
udelay (20);
|
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->poll_timeout = jiffies + WAIT_WORSTCASE;
|
||||||
hwgroup->polling = 1;
|
hwgroup->polling = 1;
|
||||||
__ide_set_handler(drive, &atapi_reset_pollfunc, HZ/20, NULL);
|
__ide_set_handler(drive, &atapi_reset_pollfunc, HZ/20, NULL);
|
||||||
|
Reference in New Issue
Block a user