[ros-diffs] [cfinck] 44555: Document what r44552 is all about.

cfinck at svn.reactos.org cfinck at svn.reactos.org
Sat Dec 12 20:38:03 CET 2009


Author: cfinck
Date: Sat Dec 12 20:38:03 2009
New Revision: 44555

URL: http://svn.reactos.org/svn/reactos?rev=44555&view=rev
Log:
Document what r44552 is all about.

Modified:
    trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp

Modified: trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp?rev=44555&r1=44554&r2=44555&view=diff
==============================================================================
--- trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp [iso-8859-1] Sat Dec 12 20:38:03 2009
@@ -689,11 +689,17 @@
     SelectDrive(chan, DeviceNumber);
     AtapiStallExecution(10000);
     AtapiWritePort1(chan, IDX_IO1_o_Command, IDE_COMMAND_ATAPI_RESET);
+
+    // ReactOS modification: Already stop looping when we know that the drive has finished resetting.
+    // Not all controllers clear the IDE_STATUS_BUSY flag (e.g. not the VMware one), so ensure that
+    // the maximum waiting time (30 * i = 0.9 seconds) does not exceed the one of the original
+    // implementation. (which is around 1 second)
     while ((AtapiReadPort1(chan, IDX_IO1_i_Status) & IDE_STATUS_BUSY) &&
            i--)
     {
         AtapiStallExecution(30);
     }
+
     SelectDrive(chan, DeviceNumber);
     WaitOnBusy(chan);
     GetBaseStatus(chan, statusByte2);




More information about the Ros-diffs mailing list