Author: spetreolle
Date: Mon Oct 20 21:21:43 2014
New Revision: 64856
URL:
http://svn.reactos.org/svn/reactos?rev=64856&view=rev
Log:
[UNIATA]
Update to 0.45b1.
CORE-8280 #resolve
Modified:
trunk/reactos/drivers/storage/ide/uniata/id_dma.cpp
trunk/reactos/drivers/storage/ide/uniata/uniata_ver.h
Modified: trunk/reactos/drivers/storage/ide/uniata/id_dma.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/ide/uniata…
==============================================================================
--- trunk/reactos/drivers/storage/ide/uniata/id_dma.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/ide/uniata/id_dma.cpp [iso-8859-1] Mon Oct 20 21:21:43
2014
@@ -587,10 +587,8 @@
case ATA_PROMISE_ID:
if(ChipType == PRNEW) {
ULONG Channel = deviceExtension->Channel + lChannel;
+
if(chan->ChannelCtrlFlags & CTRFLAGS_LBA48) {
- AtapiWritePortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11,
- AtapiReadPortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11) |
- (Channel ? 0x08 : 0x02));
AtapiWritePortEx4(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),(Channel ? 0x24 : 0x20),
((Srb->SrbFlags & SRB_FLAGS_DATA_IN) ? 0x05000000 :
0x06000000) | (Srb->DataTransferLength >> 1)
);
@@ -659,10 +657,12 @@
case ATA_PROMISE_ID:
if(ChipType == PRNEW) {
ULONG Channel = deviceExtension->Channel + lChannel;
+/*
+ AtapiWritePortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11,
+ AtapiReadPortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11) &
+ ~(Channel ? 0x08 : 0x02));
+*/
if(chan->ChannelCtrlFlags & CTRFLAGS_LBA48) {
- AtapiWritePortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11,
- AtapiReadPortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11) &
- ~(Channel ? 0x08 : 0x02));
AtapiWritePortEx4(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),(Channel ? 0x24 : 0x20),
0
);
@@ -1555,10 +1555,13 @@
return;
break; }
- case ATA_PROMISE_ID:
+ case ATA_PROMISE_ID: {
/***********/
/* Promise */
/***********/
+
+ UCHAR sel66 = Channel ? 0x08: 0x02;
+
if(ChipType < PRTX) {
if (isAtapi) {
udmamode =
@@ -1566,12 +1569,29 @@
}
}
for(i=udmamode; i>=0; i--) {
+
+ if(ChipType == PRNEW) {
+ if(i>2) {
+ AtapiWritePortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11,
+ AtapiReadPortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11) |
+ sel66);
+ } else {
+ AtapiWritePortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11,
+ AtapiReadPortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11) &
+ ~sel66);
+ }
+ }
+
if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt,
ATA_UDMA0 + i)) {
promise_timing(deviceExtension, dev, (UCHAR)(ATA_UDMA + i)); //
???
return;
}
}
-
+ if(ChipType == PRNEW) {
+ AtapiWritePortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11,
+ AtapiReadPortEx1(chan,
(ULONGIO_PTR)(&deviceExtension->BaseIoAddressBM_0),0x11) &
+ ~sel66);
+ }
for(i=wdmamode; i>=0; i--) {
if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt,
ATA_WDMA0 + i)) {
promise_timing(deviceExtension, dev, (UCHAR)(ATA_WDMA0+i));
@@ -1587,7 +1607,7 @@
AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 +
apiomode);
promise_timing(deviceExtension, dev, ATA_PIO0 + apiomode);
return;
- break;
+ break; }
case ATA_ATI_ID:
KdPrint2((PRINT_PREFIX "ATI\n"));
Modified: trunk/reactos/drivers/storage/ide/uniata/uniata_ver.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/ide/uniata…
==============================================================================
--- trunk/reactos/drivers/storage/ide/uniata/uniata_ver.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/ide/uniata/uniata_ver.h [iso-8859-1] Mon Oct 20 21:21:43
2014
@@ -1,10 +1,10 @@
-#define UNIATA_VER_STR "45b"
-#define UNIATA_VER_DOT 0.45.2.0
+#define UNIATA_VER_STR "45b1"
+#define UNIATA_VER_DOT 0.45.2.1
#define UNIATA_VER_MJ 0
#define UNIATA_VER_MN 45
#define UNIATA_VER_SUB_MJ 2
-#define UNIATA_VER_SUB_MN 0
-#define UNIATA_VER_DOT_COMMA 0,45,2,0
-#define UNIATA_VER_DOT_STR "0.45.2.0"
+#define UNIATA_VER_SUB_MN 1
+#define UNIATA_VER_DOT_COMMA 0,45,2,1
+#define UNIATA_VER_DOT_STR "0.45.2.1"
#define UNIATA_VER_YEAR 2014
#define UNIATA_VER_YEAR_STR "2014"