2.0.35- ioctl CDROMPLAYMSF + CD players behaviour

Julie Brandon (julie@merp.demon.co.uk)
Fri, 25 Sep 1998 01:52:05 +0100 (BST)


Hiyas,

Trying to track down if a problem is a problem with a CD-ROM drive,
the kernel, or 99% of CD-player programs out there-

With an IDE ATAPI CD-ROM (Creative Infra2400) on our 2nd EIDE port-

ioctl CDROMSTOP, followed by ioctl CDROMPLAYMSF
= works correctly!

BUT!

ioctl CDROMSTART, followed by ioctl CDROMPLAYMSF
= just plays the first track on the CD (on our set-up)

The former is used by the example 'cdtester' program (the source of
which coming from Documentation/cdrom/sbpcd) and hence works!

The latter _appears_ to be used by all the general cd-player programs
I've ever tried under Linux (and I've tried quite a few), and hence
for us at least doesn't work (and quite possibly for others).

Does anyone know if the state of the CD-ROM prior to calling
CDROMPLAYMSF (which in turn calls 'cdrom_play_lba_range' after
converting MSF to LBA)) is defined by ATAPI?

i.e. Should it matter if the CD-ROM is started, or stopped before
attempting to do an LBA play-range?

I tried hunting for the ATAPI specs as-per the comments detailed
in the comments in driver/block/ide-cd.c and then hunting the web
& FTP sites for them, but can't find them.

So!

Who is right, the various CD-player programs out there, or 'cdtester',
or are they both right & the CD-ROM is faulty?

If the state of the CD-ROM prior to LBA range playing *is* defined,
would it not be an idea to have the kernel require the CD-ROM to be
in this state state before executing the LBA play-range command, and
either return an error or force an appropriate change of state (i.e.
stopping or starting the CDROM -- perhaps the preferable solution
under such circumstances) before executing the LBA play-range?

-- 
Julie Brandon

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/