summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pcm/mixer.c
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2000-03-20 15:21:50 +0000
committercg <cg@FreeBSD.org>2000-03-20 15:21:50 +0000
commit2a1e86107da4228384ff5e206f3bd033a6913ee7 (patch)
treef6f86fe0505bffc5669a2a472ab0990ef68bf164 /sys/dev/sound/pcm/mixer.c
parentff3f6ce52c0295efd20a1710932a3798445329c2 (diff)
downloadFreeBSD-src-2a1e86107da4228384ff5e206f3bd033a6913ee7.zip
FreeBSD-src-2a1e86107da4228384ff5e206f3bd033a6913ee7.tar.gz
add a function to reinitialize the mixer, to be called by drivers on
resuming after suspend
Diffstat (limited to 'sys/dev/sound/pcm/mixer.c')
-rw-r--r--sys/dev/sound/pcm/mixer.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/dev/sound/pcm/mixer.c b/sys/dev/sound/pcm/mixer.c
index 2a00a12..b1f28e0 100644
--- a/sys/dev/sound/pcm/mixer.c
+++ b/sys/dev/sound/pcm/mixer.c
@@ -62,6 +62,19 @@ mixer_init(snddev_info *d, snd_mixer *m, void *devinfo)
}
int
+mixer_reinit(snddev_info *d)
+{
+ int i;
+ if (d == NULL) return -1;
+ if (d->mixer.init != NULL && d->mixer.init(&d->mixer) == 0) {
+ for (i = 0; i < SOUND_MIXER_NRDEVICES; i++)
+ mixer_set(d, i, d->mixer.level[i]);
+ mixer_setrecsrc(d, d->mixer.recsrc);
+ return 0;
+ } else return -1;
+}
+
+int
mixer_set(snddev_info *d, unsigned dev, unsigned lev)
{
if (d == NULL || d->mixer.set == NULL) return -1;
OpenPOWER on IntegriCloud