Disable ATA DMA for ATAPI devices for now. Apparently, certain revisions

of this controller, in combination with certain ATAPI devices and phases
of the moon, will cause DMA operations for ATAPI to fail.
This commit is contained in:
Nathan Whitehorn 2009-03-25 03:42:49 +00:00
parent 0cd9c215fa
commit 09b29530db

View File

@ -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;