diff --git a/sys/powerpc/powermac/ata_macio.c b/sys/powerpc/powermac/ata_macio.c index 482f76e0b77..320e86e3381 100644 --- a/sys/powerpc/powermac/ata_macio.c +++ b/sys/powerpc/powermac/ata_macio.c @@ -259,6 +259,10 @@ ata_macio_setmode(device_t parent, device_t dev) mode = ata_limit_mode(dev, mode, sc->max_mode); + /* XXX Some controllers don't work correctly with ATAPI DMA */ + if (atadev->param.config & ATA_PROTO_ATAPI) + mode = ata_limit_mode(dev, mode, ATA_PIO_MAX); + if (ata_controlcmd(dev, ATA_SETFEATURES, ATA_SF_SETXFER, 0, mode)) return;