aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorAlexander Leidinger <netchild@FreeBSD.org>2004-07-02 15:31:44 +0000
committerAlexander Leidinger <netchild@FreeBSD.org>2004-07-02 15:31:44 +0000
commita92c890fd179386f34a4d4a91993c1eedb8ae056 (patch)
tree53f37d81502aa7a7aad9b21b4c91c28a5f59e77d /sys/dev
parenta5a5d84784f44fe6e9e25b6ec71968e257202837 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/sound/pcm/dsp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c
index 29fe27f946377..64088f95117c0 100644
--- a/sys/dev/sound/pcm/dsp.c
+++ b/sys/dev/sound/pcm/dsp.c
@@ -1006,6 +1006,15 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, struct thread *
}
break;
+ case SNDCTL_DSP_SETDUPLEX:
+ /*
+ * switch to full-duplex mode if card is in half-duplex
+ * mode and is able to work in full-duplex mode
+ */
+ if (rdch && wrch && (dsp_get_flags(i_dev) & SD_F_SIMPLEX))
+ dsp_set_flags(i_dev, dsp_get_flags(i_dev)^SD_F_SIMPLEX);
+ break;
+
case SNDCTL_DSP_MAPINBUF:
case SNDCTL_DSP_MAPOUTBUF:
case SNDCTL_DSP_SETSYNCRO:
@@ -1015,6 +1024,7 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, struct thread *
case SOUND_PCM_WRITE_FILTER:
case SOUND_PCM_READ_FILTER:
/* dunno what these do, don't sound important */
+
default:
DEB(printf("default ioctl fn 0x%08lx fail\n", cmd));
ret = EINVAL;