Re: [CFT] Bus mastering support for IDE CDROM audio

Andrew Morton
2002-01-28T08:37:07Z

OK, Gents. Version three is at

http://www.zip.com.au/~akpm/linux/2.4/2.4.18-pre7/ide-akpm-3.patch

This attempts to overcome the situation where a drive/controller
doesn't want to perform multiframe DMA, but is happy performing
single-frame DMA.

So:

- We start out trying to perform multiframe DMA. If we get
a DMA error, we fall back to single-frame DMA.

- If we get a DMA error in single frame mode, we fall back
to multi-frame PIO.

At no stage does a packet-mode DMA error turn off drive-level
DMA. This is because some devices seem to perform ordinary
ATA DMA OK, but screw up packet DMA.

The kernel internally retries the requests when it performs fallback,
so userspace shouldn't see any disruption as the kernel works
out what to do.

Once the drive has fallen back to single-frame (or PIO mode) for
packet reads, the only way to get it back to a higher level is
a reboot.

-