mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 07:26:47 +00:00
Do not wait so long for drive reset.
svn path=/trunk/; revision=26470
This commit is contained in:
parent
b25aaa3d59
commit
b6ec0ae75f
|
@ -418,10 +418,12 @@ NATIVE_MODE_CONTROLLER_INFORMATION const NativeModeAdapters[] = {
|
||||||
#define AtapiSoftReset(BaseIoAddress,DeviceNumber) \
|
#define AtapiSoftReset(BaseIoAddress,DeviceNumber) \
|
||||||
{\
|
{\
|
||||||
UCHAR statusByte; \
|
UCHAR statusByte; \
|
||||||
|
ULONG i = 1000*1000;\
|
||||||
ScsiPortWritePortUchar(&BaseIoAddress->DriveSelect,(UCHAR)(((DeviceNumber & 0x1) << 4) | 0xA0)); \
|
ScsiPortWritePortUchar(&BaseIoAddress->DriveSelect,(UCHAR)(((DeviceNumber & 0x1) << 4) | 0xA0)); \
|
||||||
ScsiPortStallExecution(500);\
|
ScsiPortStallExecution(500);\
|
||||||
ScsiPortWritePortUchar(&BaseIoAddress->Command, IDE_COMMAND_ATAPI_RESET); \
|
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)); \
|
ScsiPortWritePortUchar(&BaseIoAddress->DriveSelect,(UCHAR)((DeviceNumber << 4) | 0xA0)); \
|
||||||
WaitOnBusy( ((PIDE_REGISTERS_2)((PUCHAR)BaseIoAddress + 0x206)), statusByte); \
|
WaitOnBusy( ((PIDE_REGISTERS_2)((PUCHAR)BaseIoAddress + 0x206)), statusByte); \
|
||||||
ScsiPortStallExecution(500);\
|
ScsiPortStallExecution(500);\
|
||||||
|
|
Loading…
Reference in a new issue