CD-ripping using ioctl() does not work when DMA is disabled (ide-cd)
From: Johan Billing
Date: Mon Aug 30 2004 - 14:57:04 EST
In kernel 2.6.8, my old TEAC CD-532E-A CD-ROM is blacklisted and DMA is
automatically disabled. When I try to rip an audio CD using cdparanoia,
all I get is a silent wav file full of zeroes. I know that there was
some discussions about this on the list during the summer in conjunction
with the "dropping to single frame DMA" issue, but I think I have some
new information to add...
I investigated the cdparanoia source a bit and was able to pinpoint the
problem a bit more. cdparanoia uses the ioctl() interface with
CDROMREADAUDIO to read data from the CD and normally tries to read 6 or
8 frames at a time. The problem is that only the first read frame
contains valid data, the others are blank and only contain zeroes. If I
disable error correction and only read one frame at a time ("cdparanoia
-n1 -Z") it seems to work fine. If I defy the blacklist and turn DMA on
using "hdparm -d1", cdparanoia can read multiple frames without any
problems.
So in conclusion, this seems to be a problem that only occurs when
reading multiple frames using ioctl() with DMA off. I hope that this
will help find and fix the problem.
/Johan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/