28c28
< * $FreeBSD: head/sys/dev/ata/ata-dma.c 77905 2001-06-08 09:51:33Z sos $
---
> * $FreeBSD: head/sys/dev/ata/ata-dma.c 82053 2001-08-21 11:35:47Z sos $
56a57,59
> #define ATAPI_DEVICE(scp, device) \
> ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) || \
> (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
57a61
>
721,722d724
< case 0x4d33105a: /* Promise Ultra/FastTrak 33 controllers */
< case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
726,732c728,729
< /* the Promise can only do DMA on ATA disks not on ATAPI devices */
< if ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) ||
< (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
< break;
<
< if (udmamode >= 5 && (scp->chiptype == 0x4d30105a ||
< scp->chiptype == 0x0d30105a || scp->chiptype == 0x4d68105a) &&
---
> case 0x6268105a: /* Promise TX2v2 ATA100 controllers */
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 5 &&
746,748c743,746
< if (udmamode >= 4 &&
< (scp->chiptype == 0x4d38105a || scp->chiptype == 0x4d30105a ||
< scp->chiptype == 0x0d30105a || scp->chiptype == 0x4d68105a) &&
---
> /* FALLTHROUGH */
>
> case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 4 &&
762c760,763
< if (udmamode >= 2) {
---
> /* FALLTHROUGH */
>
> case 0x4d33105a: /* Promise Ultra/FastTrak 33 controllers */
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 2) {
775c776
< if (wdmamode >= 2 && apiomode >= 4) {
---
> if (!ATAPI_DEVICE(scp, device) && wdmamode >= 2 && apiomode >= 4) {
801,806c802,803
< /* no ATAPI devices for now */
< if ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) ||
< (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
< break;
<
< if (udmamode >=5 && pci_get_revid(parent) >= 0x03 &&
---
> if (!ATAPI_DEVICE(scp, device) &&
> udmamode >=5 && pci_get_revid(parent) >= 0x03 &&
820c817
< if (udmamode >=4 &&
---
> if (!ATAPI_DEVICE(scp, device) && udmamode >=4 &&
834c831
< if (udmamode >= 2) {
---
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 2) {
847c844
< if (wdmamode >= 2 && apiomode >= 4) {
---
> if (!ATAPI_DEVICE(scp, device) && wdmamode >= 2 && apiomode >= 4) {
1050a1048
> case 0x6268105a: /* Promise TX2v2 ATA 100 */
< * $FreeBSD: head/sys/dev/ata/ata-dma.c 77905 2001-06-08 09:51:33Z sos $
---
> * $FreeBSD: head/sys/dev/ata/ata-dma.c 82053 2001-08-21 11:35:47Z sos $
56a57,59
> #define ATAPI_DEVICE(scp, device) \
> ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) || \
> (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
57a61
>
721,722d724
< case 0x4d33105a: /* Promise Ultra/FastTrak 33 controllers */
< case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
726,732c728,729
< /* the Promise can only do DMA on ATA disks not on ATAPI devices */
< if ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) ||
< (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
< break;
<
< if (udmamode >= 5 && (scp->chiptype == 0x4d30105a ||
< scp->chiptype == 0x0d30105a || scp->chiptype == 0x4d68105a) &&
---
> case 0x6268105a: /* Promise TX2v2 ATA100 controllers */
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 5 &&
746,748c743,746
< if (udmamode >= 4 &&
< (scp->chiptype == 0x4d38105a || scp->chiptype == 0x4d30105a ||
< scp->chiptype == 0x0d30105a || scp->chiptype == 0x4d68105a) &&
---
> /* FALLTHROUGH */
>
> case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 4 &&
762c760,763
< if (udmamode >= 2) {
---
> /* FALLTHROUGH */
>
> case 0x4d33105a: /* Promise Ultra/FastTrak 33 controllers */
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 2) {
775c776
< if (wdmamode >= 2 && apiomode >= 4) {
---
> if (!ATAPI_DEVICE(scp, device) && wdmamode >= 2 && apiomode >= 4) {
801,806c802,803
< /* no ATAPI devices for now */
< if ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) ||
< (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
< break;
<
< if (udmamode >=5 && pci_get_revid(parent) >= 0x03 &&
---
> if (!ATAPI_DEVICE(scp, device) &&
> udmamode >=5 && pci_get_revid(parent) >= 0x03 &&
820c817
< if (udmamode >=4 &&
---
> if (!ATAPI_DEVICE(scp, device) && udmamode >=4 &&
834c831
< if (udmamode >= 2) {
---
> if (!ATAPI_DEVICE(scp, device) && udmamode >= 2) {
847c844
< if (wdmamode >= 2 && apiomode >= 4) {
---
> if (!ATAPI_DEVICE(scp, device) && wdmamode >= 2 && apiomode >= 4) {
1050a1048
> case 0x6268105a: /* Promise TX2v2 ATA 100 */