mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 08:15:41 +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:
parent
b231782314
commit
b5000fe04d
2 changed files with 4 additions and 4 deletions
|
@ -4305,7 +4305,7 @@ continue_err:
|
||||||
for (k = atapiDev ? 0 : 200; k; k--) {
|
for (k = atapiDev ? 0 : 200; k; k--) {
|
||||||
GetStatus(chan, statusByte);
|
GetStatus(chan, statusByte);
|
||||||
if (!(statusByte & IDE_STATUS_DRQ)) {
|
if (!(statusByte & IDE_STATUS_DRQ)) {
|
||||||
AtapiStallExecution(50);
|
AtapiStallExecution(100);
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -6365,7 +6365,7 @@ make_reset:
|
||||||
InterlockedExchange(&(chan->CheckIntr),
|
InterlockedExchange(&(chan->CheckIntr),
|
||||||
CHECK_INTR_IDLE);
|
CHECK_INTR_IDLE);
|
||||||
|
|
||||||
AtapiDisableInterrupts(deviceExtension, lChannel);
|
//AtapiDisableInterrupts(deviceExtension, lChannel);
|
||||||
|
|
||||||
// Write ATAPI packet command.
|
// Write ATAPI packet command.
|
||||||
AtapiWritePort1(chan, IDX_IO1_o_Command, IDE_COMMAND_ATAPI_PACKET);
|
AtapiWritePort1(chan, IDX_IO1_o_Command, IDE_COMMAND_ATAPI_PACKET);
|
||||||
|
@ -6400,7 +6400,7 @@ make_reset:
|
||||||
|
|
||||||
GetBaseStatus(chan, statusByte);
|
GetBaseStatus(chan, statusByte);
|
||||||
|
|
||||||
AtapiEnableInterrupts(deviceExtension, lChannel);
|
//AtapiEnableInterrupts(deviceExtension, lChannel);
|
||||||
|
|
||||||
WriteBuffer(chan,
|
WriteBuffer(chan,
|
||||||
(PUSHORT)Srb->Cdb,
|
(PUSHORT)Srb->Cdb,
|
||||||
|
|
|
@ -1279,7 +1279,7 @@ AtapiReadChipConfig(
|
||||||
}
|
}
|
||||||
deviceExtension->opt_AtapiDmaZeroTransfer = FALSE;
|
deviceExtension->opt_AtapiDmaZeroTransfer = FALSE;
|
||||||
deviceExtension->opt_AtapiDmaControlCmd = FALSE;
|
deviceExtension->opt_AtapiDmaControlCmd = FALSE;
|
||||||
deviceExtension->opt_AtapiDmaRawRead = TRUE;
|
deviceExtension->opt_AtapiDmaRawRead = FALSE;//TRUE; // Disabling that for VirtualBox
|
||||||
deviceExtension->opt_AtapiDmaReadWrite = TRUE;
|
deviceExtension->opt_AtapiDmaReadWrite = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue