summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-dma.c
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2001-10-06 11:07:04 +0000
committersos <sos@FreeBSD.org>2001-10-06 11:07:04 +0000
commit910868a68fad084aa307651c4ce629496e4cbc77 (patch)
tree19e354ace73ab242b6d780a15f7f18ee6c43ada9 /sys/dev/ata/ata-dma.c
parentdb02c4b19d46abd5825669969370c0bb0e5bf4da (diff)
downloadFreeBSD-src-910868a68fad084aa307651c4ce629496e4cbc77.zip
FreeBSD-src-910868a68fad084aa307651c4ce629496e4cbc77.tar.gz
Update with latest ATA/ATAPI ver 6 rev 2 items.
Diffstat (limited to 'sys/dev/ata/ata-dma.c')
-rw-r--r--sys/dev/ata/ata-dma.c116
1 files changed, 58 insertions, 58 deletions
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c
index a578ea9..12a2e2a 100644
--- a/sys/dev/ata/ata-dma.c
+++ b/sys/dev/ata/ata-dma.c
@@ -103,7 +103,7 @@ ata_dmainit(struct ata_softc *scp, int device,
/* DMA engine address alignment is usually 1 word (2 bytes) */
scp->alignment = 0x1;
- if (udmamode > 2 && !ATA_PARAM(scp, device)->cblid) {
+ if (udmamode > 2 && !ATA_PARAM(scp, device)->hwres_cblid) {
ata_printf(scp, device,
"DMA limited to UDMA33, non-ATA66 compliant cable\n");
udmamode = 2;
@@ -119,7 +119,7 @@ ata_dmainit(struct ata_softc *scp, int device,
word54 = pci_read_config(parent, 0x54, 2);
if (word54 & (0x10 << devno)) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER,ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -149,7 +149,7 @@ ata_dmainit(struct ata_softc *scp, int device,
word54 = pci_read_config(parent, 0x54, 2);
if (word54 & (0x10 << devno)) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER,ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -178,7 +178,7 @@ ata_dmainit(struct ata_softc *scp, int device,
if (udmamode >= 2) {
int32_t mask48, new48;
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting UDMA2 on Intel chip\n",
@@ -218,7 +218,7 @@ ata_dmainit(struct ata_softc *scp, int device,
pci_write_config(parent, 0x40, new40, 4);
pci_write_config(parent, 0x44, new44, 4);
}
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting WDMA2 on Intel chip\n",
@@ -267,7 +267,7 @@ ata_dmainit(struct ata_softc *scp, int device,
((word40 >> (device == ATA_MASTER ? 0 : 4)) & 1) == 1))
break;
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -289,7 +289,7 @@ ata_dmainit(struct ata_softc *scp, int device,
break;
}
if (udmamode >= 5 && pci_get_revid(parent) >= 0xC4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -310,7 +310,7 @@ ata_dmainit(struct ata_softc *scp, int device,
}
}
if (udmamode >= 4 && pci_get_revid(parent) >= 0xC2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -331,7 +331,7 @@ ata_dmainit(struct ata_softc *scp, int device,
}
}
if (udmamode >= 2 && pci_get_revid(parent) >= 0x20) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -356,7 +356,7 @@ ata_dmainit(struct ata_softc *scp, int device,
~(0x0008 << (devno << 2)), 2);
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -377,7 +377,7 @@ ata_dmainit(struct ata_softc *scp, int device,
case 0x74111022: /* AMD 766 */
if (udmamode >= 5) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -393,7 +393,7 @@ ata_dmainit(struct ata_softc *scp, int device,
case 0x74091022: /* AMD 756 */
if (udmamode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -411,7 +411,7 @@ ata_dmainit(struct ata_softc *scp, int device,
if (ata_find_dev(parent, 0x06861106, 0x40) ||
ata_find_dev(parent, 0x30741106, 0)) { /* 82C686b */
if (udmamode >= 5) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -424,7 +424,7 @@ ata_dmainit(struct ata_softc *scp, int device,
}
}
if (udmamode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -437,7 +437,7 @@ ata_dmainit(struct ata_softc *scp, int device,
}
}
if (udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -453,7 +453,7 @@ ata_dmainit(struct ata_softc *scp, int device,
else if (ata_find_dev(parent, 0x06861106, 0) || /* 82C686a */
ata_find_dev(parent, 0x05961106, 0x12)) { /* 82C596b */
if (udmamode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -466,7 +466,7 @@ ata_dmainit(struct ata_softc *scp, int device,
}
}
if (udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -483,7 +483,7 @@ ata_dmainit(struct ata_softc *scp, int device,
ata_find_dev(parent, 0x05861106, 0x03)) { /* 82C586b */
via_82c586:
if (udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting UDMA2 on %s chip\n",
@@ -498,7 +498,7 @@ via_82c586:
}
}
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting WDMA2 on %s chip\n",
@@ -516,7 +516,7 @@ via_82c586:
case 0x55131039: /* SiS 5591 */
if (udmamode >= 2 && pci_get_revid(parent) > 0xc1) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -529,7 +529,7 @@ via_82c586:
}
}
if (wdmamode >=2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -548,7 +548,7 @@ via_82c586:
if (udmamode >= 5) {
u_int8_t umode;
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting UDMA5 on CMD chip\n",
@@ -568,7 +568,7 @@ via_82c586:
if (udmamode >= 4) {
u_int8_t umode;
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting UDMA4 on CMD chip\n",
@@ -585,7 +585,7 @@ via_82c586:
if (udmamode >= 2) {
u_int8_t umode;
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting UDMA2 on CMD chip\n",
@@ -607,7 +607,7 @@ via_82c586:
case 0x06461095: /* CMD 646 ATA controller */
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting WDMA2 on CMD chip\n",
@@ -625,7 +625,7 @@ via_82c586:
case 0xc6931080: /* Cypress 82c693 ATA controller */
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -643,7 +643,7 @@ via_82c586:
case 0x01021078: /* Cyrix 5530 ATA33 controller */
scp->alignment = 0xf; /* DMA engine requires 16 byte alignment */
if (udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting UDMA2 on Cyrix chip\n",
@@ -655,7 +655,7 @@ via_82c586:
}
}
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting WDMA2 on Cyrix chip\n",
@@ -666,20 +666,20 @@ via_82c586:
return;
}
}
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
- ata_pio2mode(apiomode), ATA_C_F_SETXFER,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
+ ATA_PIO0 + apiomode, ATA_C_F_SETXFER,
ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting %s on Cyrix chip\n",
(error) ? "failed" : "success",
- ata_mode2str(ata_pio2mode(apiomode)));
- cyrix_timing(scp, devno, ata_pio2mode(apiomode));
- scp->mode[ATA_DEV(device)] = ata_pio2mode(apiomode);
+ ata_mode2str(ATA_PIO0 + apiomode));
+ cyrix_timing(scp, devno, ATA_PIO0 + apiomode);
+ scp->mode[ATA_DEV(device)] = ATA_PIO0 + apiomode;
return;
case 0x02111166: /* ServerWorks ROSB4 ATA33 controller */
if (udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -700,7 +700,7 @@ via_82c586:
}
}
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -727,7 +727,7 @@ via_82c586:
case 0x6268105a: /* Promise TX2v2 ATA100 controllers */
ATA_OUTB(scp->r_bmio, ATA_BMDEVSPEC_0, 0x0b);
if (udmamode >= 4 && !(ATA_INB(scp->r_bmio, ATA_BMDEVSPEC_1) & 0x04)) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA + max(udmamode, 5), ATA_C_F_SETXFER,
ATA_WAIT_READY);
if (bootverbose)
@@ -740,7 +740,7 @@ via_82c586:
}
}
if (udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting %s on Promise chip\n",
@@ -751,7 +751,7 @@ via_82c586:
}
}
if (wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting %s on Promise chip\n",
@@ -767,7 +767,7 @@ via_82c586:
case 0x0d30105a: /* Promise OEM ATA100 controllers */
if (!ATAPI_DEVICE(scp, device) && udmamode >= 5 &&
!(pci_read_config(parent, 0x50, 2)&(scp->channel ? 1<<11 : 1<<10))){
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -784,7 +784,7 @@ via_82c586:
case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
if (!ATAPI_DEVICE(scp, device) && udmamode >= 4 &&
!(pci_read_config(parent, 0x50, 2)&(scp->channel ? 1<<11 : 1<<10))){
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -800,7 +800,7 @@ via_82c586:
case 0x4d33105a: /* Promise Ultra/FastTrak 33 controllers */
if (!ATAPI_DEVICE(scp, device) && udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -813,7 +813,7 @@ via_82c586:
}
}
if (!ATAPI_DEVICE(scp, device) && wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -825,23 +825,23 @@ via_82c586:
return;
}
}
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
- ata_pio2mode(apiomode),
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
+ ATA_PIO0 + apiomode,
ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
"%s setting PIO%d on Promise chip\n",
(error) ? "failed" : "success",
(apiomode >= 0) ? apiomode : 0);
- promise_timing(scp, devno, ata_pio2mode(apiomode));
- scp->mode[ATA_DEV(device)] = ata_pio2mode(apiomode);
+ promise_timing(scp, devno, ATA_PIO0 + apiomode);
+ scp->mode[ATA_DEV(device)] = ATA_PIO0 + apiomode;
return;
case 0x00041103: /* HighPoint HPT366/368/370 controllers */
if (!ATAPI_DEVICE(scp, device) &&
udmamode >=5 && pci_get_revid(parent) >= 0x03 &&
!(pci_read_config(parent, 0x5a, 1) & (scp->channel ? 0x01:0x02))) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -855,7 +855,7 @@ via_82c586:
}
if (!ATAPI_DEVICE(scp, device) && udmamode >=4 &&
!(pci_read_config(parent, 0x5a, 1) & (scp->channel ? 0x01:0x02))) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -868,7 +868,7 @@ via_82c586:
}
}
if (!ATAPI_DEVICE(scp, device) && udmamode >= 2) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -881,7 +881,7 @@ via_82c586:
}
}
if (!ATAPI_DEVICE(scp, device) && wdmamode >= 2 && apiomode >= 4) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -893,15 +893,15 @@ via_82c586:
return;
}
}
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
- ata_pio2mode(apiomode),
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
+ ATA_PIO0 + apiomode,
ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting PIO%d on HighPoint chip\n",
(error) ? "failed" : "success",
(apiomode >= 0) ? apiomode : 0);
- hpt_timing(scp, devno, ata_pio2mode(apiomode));
- scp->mode[ATA_DEV(device)] = ata_pio2mode(apiomode);
+ hpt_timing(scp, devno, ATA_PIO0 + apiomode);
+ scp->mode[ATA_DEV(device)] = ATA_PIO0 + apiomode;
return;
default: /* unknown controller chip */
@@ -922,7 +922,7 @@ via_82c586:
/* well, we have no support for this, but try anyways */
if ((wdmamode >= 2 && apiomode >= 4) && scp->r_bmio) {
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0,
ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device,
@@ -934,13 +934,13 @@ via_82c586:
}
}
}
- error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
- ata_pio2mode(apiomode), ATA_C_F_SETXFER,ATA_WAIT_READY);
+ error = ata_command(scp, device, ATA_C_SETFEATURES, 0, ATA_PIO0 + apiomode,
+ ATA_C_F_SETXFER,ATA_WAIT_READY);
if (bootverbose)
ata_printf(scp, device, "%s setting PIO%d on generic chip\n",
(error) ? "failed" : "success", apiomode < 0 ? 0 : apiomode);
if (!error)
- scp->mode[ATA_DEV(device)] = ata_pio2mode(apiomode);
+ scp->mode[ATA_DEV(device)] = ATA_PIO0 + apiomode;
else {
if (bootverbose)
ata_printf(scp, device, "using PIO mode set by BIOS\n");
OpenPOWER on IntegriCloud