mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 19:26:42 +00:00
- 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. svn path=/trunk/; revision=41173
This commit is contained in:
@@ -4305,7 +4305,7 @@ continue_err:
|
||||
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 @@ make_reset:
|
||||
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 @@ make_reset:
|
||||
|
||||
GetBaseStatus(chan, statusByte);
|
||||
|
||||
AtapiEnableInterrupts(deviceExtension, lChannel);
|
||||
//AtapiEnableInterrupts(deviceExtension, lChannel);
|
||||
|
||||
WriteBuffer(chan,
|
||||
(PUSHORT)Srb->Cdb,
|
||||
|
||||
@@ -1279,7 +1279,7 @@ AtapiReadChipConfig(
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user