mirror of
https://github.com/reactos/reactos.git
synced 2024-07-28 23:29:19 +00:00
[UNIATA]
Update to 0.45b. CORE-8280 svn path=/trunk/; revision=64855
This commit is contained in:
parent
8dfcb13a92
commit
1a453ba5b6
|
@ -1692,7 +1692,7 @@ IssueIdentify(
|
||||||
deviceExtension->FullIdentifyData.NVCache_Version
|
deviceExtension->FullIdentifyData.NVCache_Version
|
||||||
));
|
));
|
||||||
|
|
||||||
KdPrint2((PRINT_PREFIX "R-rate %#x\n",
|
KdPrint2((PRINT_PREFIX "R-rate %d\n",
|
||||||
deviceExtension->FullIdentifyData.NominalMediaRotationRate
|
deviceExtension->FullIdentifyData.NominalMediaRotationRate
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -5071,9 +5071,9 @@ continue_err:
|
||||||
if(AtaReq->retry < MAX_RETRIES) {
|
if(AtaReq->retry < MAX_RETRIES) {
|
||||||
//fallback_pio:
|
//fallback_pio:
|
||||||
if(!(deviceExtension->HwFlags & UNIATA_AHCI)) {
|
if(!(deviceExtension->HwFlags & UNIATA_AHCI)) {
|
||||||
AtaReq->Flags &= ~REQ_FLAG_DMA_OPERATION;
|
//AtaReq->Flags &= ~REQ_FLAG_DMA_OPERATION;
|
||||||
|
// Downrate will happen in AtapiDmaReinit(), try UDMA-2 for HDD only
|
||||||
AtaReq->Flags |= REQ_FLAG_FORCE_DOWNRATE;
|
AtaReq->Flags |= REQ_FLAG_FORCE_DOWNRATE;
|
||||||
// LunExt->DeviceFlags |= DFLAGS_FORCE_DOWNRATE;
|
|
||||||
}
|
}
|
||||||
AtaReq->ReqState = REQ_STATE_QUEUED;
|
AtaReq->ReqState = REQ_STATE_QUEUED;
|
||||||
goto reenqueue_req;
|
goto reenqueue_req;
|
||||||
|
@ -5093,6 +5093,7 @@ continue_err:
|
||||||
((error >> 4) == SCSI_SENSE_HARDWARE_ERROR)) {
|
((error >> 4) == SCSI_SENSE_HARDWARE_ERROR)) {
|
||||||
if(AtaReq->retry < MAX_RETRIES) {
|
if(AtaReq->retry < MAX_RETRIES) {
|
||||||
//fallback_pio:
|
//fallback_pio:
|
||||||
|
// Downrate will happen in AtapiDmaReinit(), use PIO immediately for ATAPI
|
||||||
AtaReq->Flags &= ~REQ_FLAG_DMA_OPERATION;
|
AtaReq->Flags &= ~REQ_FLAG_DMA_OPERATION;
|
||||||
AtaReq->Flags |= REQ_FLAG_FORCE_DOWNRATE;
|
AtaReq->Flags |= REQ_FLAG_FORCE_DOWNRATE;
|
||||||
// LunExt->DeviceFlags |= DFLAGS_FORCE_DOWNRATE;
|
// LunExt->DeviceFlags |= DFLAGS_FORCE_DOWNRATE;
|
||||||
|
@ -5449,6 +5450,7 @@ IntrPrepareResetController:
|
||||||
chan->ChannelCtrlFlags &= ~CTRFLAGS_DMA_OPERATION;
|
chan->ChannelCtrlFlags &= ~CTRFLAGS_DMA_OPERATION;
|
||||||
goto CompleteRequest;
|
goto CompleteRequest;
|
||||||
}
|
}
|
||||||
|
continue_read_drq:
|
||||||
// Ensure that this is a read command.
|
// Ensure that this is a read command.
|
||||||
if (srb->SrbFlags & SRB_FLAGS_DATA_IN) {
|
if (srb->SrbFlags & SRB_FLAGS_DATA_IN) {
|
||||||
|
|
||||||
|
@ -5489,7 +5491,6 @@ IntrPrepareResetController:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
KdPrint2((PRINT_PREFIX
|
KdPrint2((PRINT_PREFIX
|
||||||
"IdeIntr: Read %#x Dwords\n", wordCount/2));
|
"IdeIntr: Read %#x Dwords\n", wordCount/2));
|
||||||
|
@ -5581,6 +5582,12 @@ IntrPrepareResetController:
|
||||||
status = SRB_STATUS_SUCCESS;
|
status = SRB_STATUS_SUCCESS;
|
||||||
goto CompleteRequest;
|
goto CompleteRequest;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if(!atapiDev && !DataOverrun && (srb->SrbFlags & SRB_FLAGS_DATA_IN) &&
|
||||||
|
(statusByte == (IDE_STATUS_IDLE | IDE_STATUS_DRQ))) {
|
||||||
|
KdPrint2((PRINT_PREFIX " HDD read data ready \n"));
|
||||||
|
goto continue_read_drq;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6689,6 +6696,7 @@ IdeReadWrite(
|
||||||
// Adjust buffer address and words left count.
|
// Adjust buffer address and words left count.
|
||||||
AtaReq->WordsLeft -= wordCount;
|
AtaReq->WordsLeft -= wordCount;
|
||||||
AtaReq->DataBuffer += wordCount;
|
AtaReq->DataBuffer += wordCount;
|
||||||
|
AtaReq->WordsTransfered += wordCount;
|
||||||
|
|
||||||
// Wait for interrupt.
|
// Wait for interrupt.
|
||||||
return SRB_STATUS_PENDING;
|
return SRB_STATUS_PENDING;
|
||||||
|
|
|
@ -968,6 +968,12 @@ UniataAhciDetect(
|
||||||
KdPrint2((PRINT_PREFIX "\n"));
|
KdPrint2((PRINT_PREFIX "\n"));
|
||||||
|
|
||||||
/* get the number of HW channels */
|
/* get the number of HW channels */
|
||||||
|
|
||||||
|
/* CAP.NOP sometimes indicate the index of the last enabled
|
||||||
|
* port, at other times, that of the last possible port, so
|
||||||
|
* determining the maximum port number requires looking at
|
||||||
|
* both CAP.NOP and PI.
|
||||||
|
*/
|
||||||
PI = UniataAhciReadHostPort4(deviceExtension, IDX_AHCI_PI);
|
PI = UniataAhciReadHostPort4(deviceExtension, IDX_AHCI_PI);
|
||||||
deviceExtension->AHCI_PI = PI;
|
deviceExtension->AHCI_PI = PI;
|
||||||
KdPrint2((PRINT_PREFIX " AHCI PI %#x\n", PI));
|
KdPrint2((PRINT_PREFIX " AHCI PI %#x\n", PI));
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#define UNIATA_VER_STR "45a8"
|
#define UNIATA_VER_STR "45b"
|
||||||
#define UNIATA_VER_DOT 0.45.1.8
|
#define UNIATA_VER_DOT 0.45.2.0
|
||||||
#define UNIATA_VER_MJ 0
|
#define UNIATA_VER_MJ 0
|
||||||
#define UNIATA_VER_MN 45
|
#define UNIATA_VER_MN 45
|
||||||
#define UNIATA_VER_SUB_MJ 1
|
#define UNIATA_VER_SUB_MJ 2
|
||||||
#define UNIATA_VER_SUB_MN 8
|
#define UNIATA_VER_SUB_MN 0
|
||||||
#define UNIATA_VER_DOT_COMMA 0,45,1,8
|
#define UNIATA_VER_DOT_COMMA 0,45,2,0
|
||||||
#define UNIATA_VER_DOT_STR "0.45.1.8"
|
#define UNIATA_VER_DOT_STR "0.45.2.0"
|
||||||
#define UNIATA_VER_YEAR 2014
|
#define UNIATA_VER_YEAR 2014
|
||||||
#define UNIATA_VER_YEAR_STR "2014"
|
#define UNIATA_VER_YEAR_STR "2014"
|
||||||
|
|
Loading…
Reference in a new issue