diff options
Diffstat (limited to 'sys/dev/sound/pcm/dsp.c')
| -rw-r--r-- | sys/dev/sound/pcm/dsp.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 29fe27f94637..64088f95117c 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; |
