Author: fireball
Date: Thu May 28 16:13:17 2009
New Revision: 41173
URL:
http://svn.reactos.org/svn/reactos?rev=41173&view=rev
Log:
- Increase waiting time for DRQ removal inside AtapiInterrupt twice.
- Don't disable/enable IDE controller interrupts in AtapiSendCommand. This confuses
Virtual Box's controller (it consumes one interrupt without ever emitting it) and thus
sending any ATAPI command fails.
- Turn off ATAPI DMA raw read support by default. It seems to be incompatible with (at
least) Virtual Box IDE controller.
See issue #3645 for more details.
Modified:
trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp
trunk/reactos/drivers/storage/ide/uniata/id_init.cpp
Modified: trunk/reactos/drivers/storage/ide/uniata/id_ata.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/ide/uniata…
==============================================================================
--- 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] Thu May 28 16:13:17
2009
@@ -4305,7 +4305,7 @@
for (k = atapiDev ? 0 : 200; k; k--) {
GetStatus(chan, statusByte);
if (!(statusByte & IDE_STATUS_DRQ)) {
- AtapiStallExecution(50);
+ AtapiStallExecution(100);
} else {
break;
}
@@ -6365,7 +6365,7 @@
InterlockedExchange(&(chan->CheckIntr),
CHECK_INTR_IDLE);
- AtapiDisableInterrupts(deviceExtension, lChannel);
+ //AtapiDisableInterrupts(deviceExtension, lChannel);
// Write ATAPI packet command.
AtapiWritePort1(chan, IDX_IO1_o_Command, IDE_COMMAND_ATAPI_PACKET);
@@ -6400,7 +6400,7 @@
GetBaseStatus(chan, statusByte);
- AtapiEnableInterrupts(deviceExtension, lChannel);
+ //AtapiEnableInterrupts(deviceExtension, lChannel);
WriteBuffer(chan,
(PUSHORT)Srb->Cdb,
Modified: trunk/reactos/drivers/storage/ide/uniata/id_init.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/ide/uniata…
==============================================================================
--- trunk/reactos/drivers/storage/ide/uniata/id_init.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/ide/uniata/id_init.cpp [iso-8859-1] Thu May 28 16:13:17
2009
@@ -1279,7 +1279,7 @@
}
deviceExtension->opt_AtapiDmaZeroTransfer = FALSE;
deviceExtension->opt_AtapiDmaControlCmd = FALSE;
- deviceExtension->opt_AtapiDmaRawRead = TRUE;
+ deviceExtension->opt_AtapiDmaRawRead = FALSE;//TRUE; // Disabling that
for VirtualBox
deviceExtension->opt_AtapiDmaReadWrite = TRUE;
}