summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2014-09-06 15:24:48 +0000
committerAlexander Motin <mav@FreeBSD.org>2014-09-06 15:24:48 +0000
commit8a4343de258a6766dbe151d13b5fc047959fbae2 (patch)
treee5a350db73b97502bc7aacc3bdefdf916828f614 /sys/dev
parent0742873d1ae0977f42623c6b8010d6b30c8fc3b2 (diff)
Notes
Diffstat (limited to 'sys/dev')
-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 8f9a5fb3a7f3..7a349071e418 100644
--- a/sys/dev/sound/pcm/mixer.c
+++ b/sys/dev/sound/pcm/mixer.c
@@ -1222,6 +1222,15 @@ mixer_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode,
return (ret);
}
+static void
+mixer_mixerinfo(struct snd_mixer *m, mixer_info *mi)
+{
+ bzero((void *)mi, sizeof(*mi));
+ strlcpy(mi->id, m->name, sizeof(mi->id));
+ strlcpy(mi->name, device_get_desc(m->dev), sizeof(mi->name));
+ mi->modify_counter = m->modify_counter;
+}
+
/*
* XXX Make sure you can guarantee concurrency safety before calling this
* function, be it through Giant, PCM_*, etc !
@@ -1280,6 +1289,10 @@ mixer_ioctl_cmd(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode,
*arg_i = SOUND_VERSION;
ret = 0;
goto done;
+ case SOUND_MIXER_INFO:
+ mixer_mixerinfo(m, (mixer_info *)arg);
+ ret = 0;
+ goto done;
}
if ((cmd & ~0xff) == MIXER_WRITE(0)) {
if (j == SOUND_MIXER_RECSRC)