diff options
Diffstat (limited to 'sound/drivers/dummy.c')
-rw-r--r-- | sound/drivers/dummy.c | 20 |
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 | ||
451 | static int snd_dummy_volume_info(struct snd_kcontrol *kcontrol, | 455 | static 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 | ||
504 | static 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[] = { | |||
547 | DUMMY_VOLUME("Master Volume", 0, MIXER_ADDR_MASTER), | 553 | DUMMY_VOLUME("Master Volume", 0, MIXER_ADDR_MASTER), |
548 | DUMMY_CAPSRC("Master Capture Switch", 0, MIXER_ADDR_MASTER), | 554 | DUMMY_CAPSRC("Master Capture Switch", 0, MIXER_ADDR_MASTER), |
549 | DUMMY_VOLUME("Synth Volume", 0, MIXER_ADDR_SYNTH), | 555 | DUMMY_VOLUME("Synth Volume", 0, MIXER_ADDR_SYNTH), |
550 | DUMMY_CAPSRC("Synth Capture Switch", 0, MIXER_ADDR_MASTER), | 556 | DUMMY_CAPSRC("Synth Capture Switch", 0, MIXER_ADDR_SYNTH), |
551 | DUMMY_VOLUME("Line Volume", 0, MIXER_ADDR_LINE), | 557 | DUMMY_VOLUME("Line Volume", 0, MIXER_ADDR_LINE), |
552 | DUMMY_CAPSRC("Line Capture Switch", 0, MIXER_ADDR_MASTER), | 558 | DUMMY_CAPSRC("Line Capture Switch", 0, MIXER_ADDR_LINE), |
553 | DUMMY_VOLUME("Mic Volume", 0, MIXER_ADDR_MIC), | 559 | DUMMY_VOLUME("Mic Volume", 0, MIXER_ADDR_MIC), |
554 | DUMMY_CAPSRC("Mic Capture Switch", 0, MIXER_ADDR_MASTER), | 560 | DUMMY_CAPSRC("Mic Capture Switch", 0, MIXER_ADDR_MIC), |
555 | DUMMY_VOLUME("CD Volume", 0, MIXER_ADDR_CD), | 561 | DUMMY_VOLUME("CD Volume", 0, MIXER_ADDR_CD), |
556 | DUMMY_CAPSRC("CD Capture Switch", 0, MIXER_ADDR_MASTER) | 562 | DUMMY_CAPSRC("CD Capture Switch", 0, MIXER_ADDR_CD) |
557 | }; | 563 | }; |
558 | 564 | ||
559 | static int __init snd_card_dummy_new_mixer(struct snd_dummy *dummy) | 565 | static int __init snd_card_dummy_new_mixer(struct snd_dummy *dummy) |