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. ;-)