aboutsummaryrefslogtreecommitdiffstats
path: root/sound/drivers/dummy.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/drivers/dummy.c')
-rw-r--r--sound/drivers/dummy.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
index ffeafaf2ecca..42001efa9f3e 100644
--- a/sound/drivers/dummy.c
+++ b/sound/drivers/dummy.c
@@ -29,6 +29,7 @@
29#include <linux/moduleparam.h> 29#include <linux/moduleparam.h>
30#include <sound/core.h> 30#include <sound/core.h>
31#include <sound/control.h> 31#include <sound/control.h>
32#include <sound/tlv.h>
32#include <sound/pcm.h> 33#include <sound/pcm.h>
33#include <sound/rawmidi.h> 34#include <sound/rawmidi.h>
34#include <sound/initval.h> 35#include <sound/initval.h>
@@ -285,7 +286,7 @@ static struct snd_pcm_hardware snd_card_dummy_playback =
285 .channels_max = USE_CHANNELS_MAX, 286 .channels_max = USE_CHANNELS_MAX,
286 .buffer_bytes_max = MAX_BUFFER_SIZE, 287 .buffer_bytes_max = MAX_BUFFER_SIZE,
287 .period_bytes_min = 64, 288 .period_bytes_min = 64,
288 .period_bytes_max = MAX_BUFFER_SIZE, 289 .period_bytes_max = MAX_PERIOD_SIZE,
289 .periods_min = USE_PERIODS_MIN, 290 .periods_min = USE_PERIODS_MIN,
290 .periods_max = USE_PERIODS_MAX, 291 .periods_max = USE_PERIODS_MAX,
291 .fifo_size = 0, 292 .fifo_size = 0,
@@ -443,10 +444,13 @@ static int __init snd_card_dummy_pcm(struct snd_dummy *dummy, int device, int su
443} 444}
444 445
445#define DUMMY_VOLUME(xname, xindex, addr) \ 446#define DUMMY_VOLUME(xname, xindex, addr) \
446{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \ 447{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
448 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_TLV_READ, \
449 .name = xname, .index = xindex, \
447 .info = snd_dummy_volume_info, \ 450 .info = snd_dummy_volume_info, \
448 .get = snd_dummy_volume_get, .put = snd_dummy_volume_put, \ 451 .get = snd_dummy_volume_get, .put = snd_dummy_volume_put, \
449 .private_value = addr } 452 .private_value = addr, \
453 .tlv = { .p = db_scale_dummy } }
450 454
451static int snd_dummy_volume_info(struct snd_kcontrol *kcontrol, 455static int snd_dummy_volume_info(struct snd_kcontrol *kcontrol,
452 struct snd_ctl_elem_info *uinfo) 456 struct snd_ctl_elem_info *uinfo)
@@ -497,6 +501,8 @@ static int snd_dummy_volume_put(struct snd_kcontrol *kcontrol,
497 return change; 501 return change;
498} 502}
499 503
504static DECLARE_TLV_DB_SCALE(db_scale_dummy, -4500, 30, 0);
505
500#define DUMMY_CAPSRC(xname, xindex, addr) \ 506#define DUMMY_CAPSRC(xname, xindex, addr) \
501{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \ 507{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
502 .info = snd_dummy_capsrc_info, \ 508 .info = snd_dummy_capsrc_info, \
@@ -547,13 +553,13 @@ static struct snd_kcontrol_new snd_dummy_controls[] = {
547DUMMY_VOLUME("Master Volume", 0, MIXER_ADDR_MASTER), 553DUMMY_VOLUME("Master Volume", 0, MIXER_ADDR_MASTER),
548DUMMY_CAPSRC("Master Capture Switch", 0, MIXER_ADDR_MASTER), 554DUMMY_CAPSRC("Master Capture Switch", 0, MIXER_ADDR_MASTER),
549DUMMY_VOLUME("Synth Volume", 0, MIXER_ADDR_SYNTH), 555DUMMY_VOLUME("Synth Volume", 0, MIXER_ADDR_SYNTH),
550DUMMY_CAPSRC("Synth Capture Switch", 0, MIXER_ADDR_MASTER), 556DUMMY_CAPSRC("Synth Capture Switch", 0, MIXER_ADDR_SYNTH),
551DUMMY_VOLUME("Line Volume", 0, MIXER_ADDR_LINE), 557DUMMY_VOLUME("Line Volume", 0, MIXER_ADDR_LINE),
552DUMMY_CAPSRC("Line Capture Switch", 0, MIXER_ADDR_MASTER), 558DUMMY_CAPSRC("Line Capture Switch", 0, MIXER_ADDR_LINE),
553DUMMY_VOLUME("Mic Volume", 0, MIXER_ADDR_MIC), 559DUMMY_VOLUME("Mic Volume", 0, MIXER_ADDR_MIC),
554DUMMY_CAPSRC("Mic Capture Switch", 0, MIXER_ADDR_MASTER), 560DUMMY_CAPSRC("Mic Capture Switch", 0, MIXER_ADDR_MIC),
555DUMMY_VOLUME("CD Volume", 0, MIXER_ADDR_CD), 561DUMMY_VOLUME("CD Volume", 0, MIXER_ADDR_CD),
556DUMMY_CAPSRC("CD Capture Switch", 0, MIXER_ADDR_MASTER) 562DUMMY_CAPSRC("CD Capture Switch", 0, MIXER_ADDR_CD)
557}; 563};
558 564
559static int __init snd_card_dummy_new_mixer(struct snd_dummy *dummy) 565static int __init snd_card_dummy_new_mixer(struct snd_dummy *dummy)