From b6ec0ae75f4d10760e9e375492d17d07f19d1d77 Mon Sep 17 00:00:00 2001 From: Dmitry Gorbachev Date: Mon, 23 Apr 2007 04:54:13 +0000 Subject: [PATCH] Do not wait so long for drive reset. svn path=/trunk/; revision=26470 --- reactos/drivers/storage/ide/atapi/atapi.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reactos/drivers/storage/ide/atapi/atapi.h b/reactos/drivers/storage/ide/atapi/atapi.h index 148c94fdd02..22720a69ff7 100644 --- a/reactos/drivers/storage/ide/atapi/atapi.h +++ b/reactos/drivers/storage/ide/atapi/atapi.h @@ -418,10 +418,12 @@ NATIVE_MODE_CONTROLLER_INFORMATION const NativeModeAdapters[] = { #define AtapiSoftReset(BaseIoAddress,DeviceNumber) \ {\ UCHAR statusByte; \ + ULONG i = 1000*1000;\ ScsiPortWritePortUchar(&BaseIoAddress->DriveSelect,(UCHAR)(((DeviceNumber & 0x1) << 4) | 0xA0)); \ ScsiPortStallExecution(500);\ ScsiPortWritePortUchar(&BaseIoAddress->Command, IDE_COMMAND_ATAPI_RESET); \ - ScsiPortStallExecution(1000*1000);\ + while ((ScsiPortReadPortUchar(&BaseIoAddress->Command) & IDE_STATUS_BUSY) && i--)\ + ScsiPortStallExecution(30);\ ScsiPortWritePortUchar(&BaseIoAddress->DriveSelect,(UCHAR)((DeviceNumber << 4) | 0xA0)); \ WaitOnBusy( ((PIDE_REGISTERS_2)((PUCHAR)BaseIoAddress + 0x206)), statusByte); \ ScsiPortStallExecution(500);\