summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/sound/pcm/dsp.c10
-rw-r--r--sys/sys/soundcard.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c
index 3990866..c7d4850 100644
--- a/sys/dev/sound/pcm/dsp.c
+++ b/sys/dev/sound/pcm/dsp.c
@@ -509,6 +509,16 @@ dsp_ioctl(snddev_info *d, int chan, u_long cmd, caddr_t arg)
*arg_i |= PCM_ENABLE_INPUT;
break;
+ case SNDCTL_DSP_GETODELAY:
+ if (wrch) {
+ snd_dbuf *b = &wrch->buffer;
+ if (b->dl)
+ chn_dmaupdate(wrch);
+ *arg = b->total;
+ } else
+ ret = EINVAL;
+ break;
+
case SNDCTL_DSP_MAPINBUF:
case SNDCTL_DSP_MAPOUTBUF:
case SNDCTL_DSP_SETSYNCRO:
diff --git a/sys/sys/soundcard.h b/sys/sys/soundcard.h
index 1649f8a..f6f577a 100644
--- a/sys/sys/soundcard.h
+++ b/sys/sys/soundcard.h
@@ -798,6 +798,7 @@ typedef struct buffmem_desc {
#define SNDCTL_DSP_MAPINBUF _IOR ('P', 19, buffmem_desc)
#define SNDCTL_DSP_MAPOUTBUF _IOR ('P', 20, buffmem_desc)
#define SNDCTL_DSP_SETSYNCRO _IO ('P', 21)
+#define SNDCTL_DSP_GETODELAY _IOR ('P', 23, int)
/*
* I guess these are the readonly version of the same
OpenPOWER on IntegriCloud