diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2003-09-08 08:30:43 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2003-09-08 08:30:43 +0000 |
| commit | 9855ae3844f25718174646444b07239fdbd5e113 (patch) | |
| tree | be717e29cc231b8d06bd06e973b84305bcc30046 | |
| parent | 04a398293c8b100742adc47284a8ea15d406e671 (diff) | |
Notes
| -rw-r--r-- | sys/dev/ata/ata-all.c | 16 | ||||
| -rw-r--r-- | sys/sys/ata.h | 2 |
2 files changed, 10 insertions, 8 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 810e02e6ef19..010c2c2a7f76 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -832,14 +832,18 @@ ata_pmode(struct ata_params *ap) if (ap->apiomodes & 0x01) return ATA_PIO3; } - if ((ap->retired_piomode & ATA_RETIRED_PIO_MASK) == 2) + if (ap->mwdmamodes & 0x04) + return ATA_PIO4; + if (ap->mwdmamodes & 0x02) + return ATA_PIO3; + if (ap->mwdmamodes & 0x01) return ATA_PIO2; - if ((ap->retired_piomode & ATA_RETIRED_PIO_MASK) == 1) + if ((ap->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x200) + return ATA_PIO2; + if ((ap->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x100) return ATA_PIO1; - if ((ap->retired_piomode & ATA_RETIRED_PIO_MASK) == 0) + if ((ap->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x000) return ATA_PIO0; - if (ap->capabilities1 & ATA_SUPPORT_DMA) - return ATA_PIO4; return ATA_PIO0; } @@ -852,8 +856,6 @@ ata_wmode(struct ata_params *ap) return ATA_WDMA1; if (ap->mwdmamodes & 0x01) return ATA_WDMA0; - if (ap->capabilities1 & ATA_SUPPORT_DMA) - return ATA_WDMA2; return -1; } diff --git a/sys/sys/ata.h b/sys/sys/ata.h index e10b8b43ed03..30f8131095aa 100644 --- a/sys/sys/ata.h +++ b/sys/sys/ata.h @@ -72,7 +72,7 @@ struct ata_params { /*050*/ u_int16_t capabilities2; /*051*/ u_int16_t retired_piomode; /* PIO modes 0-2 */ -#define ATA_RETIRED_PIO_MASK 0x0003 +#define ATA_RETIRED_PIO_MASK 0x0300 /*052*/ u_int16_t retired_dmamode; /* DMA modes */ #define ATA_RETIRED_DMA_MASK 0x0003 |
