summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/scsi/cd.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/scsi/cd.c b/sys/scsi/cd.c
index 49b2efe..0bc4cb9 100644
--- a/sys/scsi/cd.c
+++ b/sys/scsi/cd.c
@@ -14,7 +14,7 @@
*
* Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
*
- * $Id: cd.c,v 1.53 1995/12/14 09:54:18 phk Exp $
+ * $Id: cd.c,v 1.54 1995/12/20 12:02:43 dufault Exp $
*/
#define SPLCD splbio
@@ -830,7 +830,7 @@ cd_ioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p,
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 @@ cd_ioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p,
break;
}
break;
- case CDIOCSETSTERIO:
+ case CDIOCSETSTEREO:
{
struct cd_mode_data data;
error = cd_get_mode(unit, &data, AUDIO_PAGE);
@@ -1093,6 +1093,12 @@ cd_set_mode(unit, data)
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),
OpenPOWER on IntegriCloud