freebsd-skq/sys/cam
Kenneth D. Merry 1087fd198e Fix a problem with the previous revision (1.42) that showed up with audio
CDs.

With audio CDs, you can't just do a READ(10) call on most drives without
first setting the blocksize with a mode select command.  The disklabel code
does a read of the first sector of the media to find a label if it exists.

This caused drives to return an error when an audio CD was in the drive,
due to the problem described above.

The solution is to read the table of contents on the CD, and only attempt
to read the disklabel if the first track is a data track.

This works on all the various CD and DVD media I have tried, but further
testing (especially with Video CDs and other mode 2 media) will be
needed to determine if this is a universal solution.
2000-11-04 02:05:25 +00:00
..
scsi Fix a problem with the previous revision (1.42) that showed up with audio 2000-11-04 02:05:25 +00:00
cam_ccb.h cam_ccb.h: 2000-07-18 19:47:14 +00:00
cam_debug.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
cam_extend.c Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
cam_extend.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
cam_periph.c Remove unused #includes 2000-10-30 08:08:00 +00:00
cam_periph.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
cam_queue.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cam_queue.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
cam_sim.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cam_sim.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
cam_xpt_periph.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
cam_xpt_sim.h Clean up the xpt_sim creation to mirror how HBA drivers perform this task. 2000-01-14 23:08:46 +00:00
cam_xpt.c Treat engine inquiry the same as path inquiry in xptioctl(). 2000-10-31 22:07:02 +00:00
cam_xpt.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
cam.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cam.h Various typo's. 2000-03-15 21:55:48 +00:00