Subject: kern/25210: Older CD drives can no longer play audio CDs
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <email@example.com>
Date: 04/17/2004 13:33:46
>Synopsis: Older CD drives can no longer play audio CDs
>Arrival-Date: Sat Apr 17 13:34:00 UTC 2004
>Originator: Valeriy Ushakov
NetBSD glip 2.0C NetBSD 2.0C (GLIP) #2: Fri Apr 9 15:29:17 MSD 2004 uwe@glip:/usr/src/sys/arch/i386/compile/GLIP i386
The CD in my Dell Latitude CP no longer can play audio CDs.
cd0 at atapibus0 drive 0: <CD-ROM CDR_U200, , 1.12> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 3, DMA mode 1
cd0(piixide0:1:0): using PIO mode 0, DMA mode 1 (using DMA data transfers)
Issuing cdplay play results in:
cd0(piixide0:1:0): Check Condition on CDB: 0x5a 08 0e 00 00 00 00 00 18 00
SENSE KEY: Illegal Request
ASC/ASCQ: Illegal Field in CDB
Get a machine with a CD drive old enough. Try to play an audio CD.
The quick workaround I used was to disable the use of SMS_DBD in sys/dev/scsipi/cd.c
Note that sd.c had a similar issue fixed by:
| revision 1.214
| date: 2003/12/23 13:12:25; author: pk; state: Exp; lines: +43 -21
| Some older devices do not understand the `disable block descriptors' bit in
| the mode sense request. So fall back on mode sense data including a block
| descriptor section.
| XXX this applies to the `page 4' case. The `page 5' didn't consider the
| possible presence of a block descriptor at all, though it did allow the
| device to return one. While that's fixed now, the `page 5' mode sense
| does not use the `disable block descriptors' bit.
| I'm not sure we should bother with this at all..