*BSD News Article 70175


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.EDU.AU!munnari.OZ.AU!spool.mu.edu!agate!theos.com!riscan.riscan.com!van.istar!ott.istar!istar.net!winternet.com!nntp.primenet.com!news.cais.net!news.mathworks.com!news2.mathworks.com!newscaster-1.mcast.net!cs.tu-berlin.de!uni-erlangen.de!news.tu-chemnitz.de!irz401!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: cd audio probs in FreeBSD
Date: 4 Jun 1996 20:59:48 GMT
Organization: Private BSD site, Dresden
Lines: 65
Message-ID: <4p2844$n21@uriah.heep.sax.de>
References: <DsAsHF.69F@ariel.cs.yorku.ca>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.6
X-Phone: +49-351-2012 669
X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F  93 21 E0 7D F9 12 D6 4E

(The comp.os.386bsd.* groups are dead, i've removed them from the
Newsgroups line.)

davidp@cs.yorku.ca (S DAVID PULLARA) wrote:

> localhost: {1} cdplay cd0
> CD>play 1 2
> cdplay: Invalid argument

> Anyone have any ideas as to what I might be doing wrong?
> I'd be grateful for suggestions you might have.

> Sony 4x cdrom (cdu-76s) (scsi)

Ah, that's the most important info!  The SONY's didn't work right in
2.1R.  Below is a fix.  (You've been reminding me: it still has to be
pulled into the -stable branch, it's only in -current yet.)

Index: /sys/scsi/cd.c
===================================================================
RCS file: /home/cvs/src/sys/scsi/cd.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -u -r1.54 -r1.55
--- cd.c	1995/12/20 12:02:43	1.54
+++ cd.c	1995/12/30 13:56:28	1.55
@@ -830,7 +830,7 @@
 			error = cd_get_mode(unit, &data, AUDIO_PAGE);
 			if (error)
 				break;
-			data.page.audio.port[LEFT_PORT].channels = LEFT_CHANNEL | RIGHT_CHANNEL | 4 | 8;
+			data.page.audio.port[LEFT_PORT].channels = LEFT_CHANNEL | RIGHT_CHANNEL;
 			data.page.audio.port[RIGHT_PORT].channels = LEFT_CHANNEL | RIGHT_CHANNEL;
 			data.page.audio.port[2].channels = 0;
 			data.page.audio.port[3].channels = 0;
@@ -839,7 +839,7 @@
 				break;
 		}
 		break;
-	case CDIOCSETSTERIO:
+	case CDIOCSETSTEREO:
 		{
 			struct cd_mode_data data;
 			error = cd_get_mode(unit, &data, AUDIO_PAGE);
@@ -1093,6 +1093,12 @@
 	scsi_cmd.byte2 |= SMS_PF;
 	scsi_cmd.length = sizeof(*data) & 0xff;
 	data->header.data_length = 0;
+	/*
+	 * SONY drives do not allow a mode select with a medium_type
+	 * value that has just been returned by a mode sense; use a
+	 * medium_type of 0 (Default) instead.
+	 */
+	data->header.medium_type = 0;
 	return (scsi_scsi_cmd(SCSI_LINK(&cd_switch, unit),
 		(struct scsi_generic *) &scsi_cmd,
 		sizeof(scsi_cmd),


-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)