diff options
Diffstat (limited to 'sound/i2c')
-rw-r--r-- | sound/i2c/other/ak4xxx-adda.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sound/i2c/other/ak4xxx-adda.c b/sound/i2c/other/ak4xxx-adda.c index dc7cc2001b74..7d562f084207 100644 --- a/sound/i2c/other/ak4xxx-adda.c +++ b/sound/i2c/other/ak4xxx-adda.c | |||
@@ -598,6 +598,31 @@ int snd_akm4xxx_build_controls(struct snd_akm4xxx *ak) | |||
598 | if (err < 0) | 598 | if (err < 0) |
599 | goto __error; | 599 | goto __error; |
600 | } | 600 | } |
601 | |||
602 | if (ak->type == SND_AK5365) { | ||
603 | memset(ctl, 0, sizeof(*ctl)); | ||
604 | if (ak->channel_names == NULL) | ||
605 | strcpy(ctl->id.name, "Capture Volume"); | ||
606 | else | ||
607 | strcpy(ctl->id.name, ak->channel_names[0]); | ||
608 | ctl->id.index = ak->idx_offset * 2; | ||
609 | ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; | ||
610 | ctl->count = 1; | ||
611 | ctl->info = snd_akm4xxx_stereo_volume_info; | ||
612 | ctl->get = snd_akm4xxx_stereo_volume_get; | ||
613 | ctl->put = snd_akm4xxx_stereo_volume_put; | ||
614 | /* Registers 4 & 5 (see AK5365 data sheet, pages 34 and 35): | ||
615 | * valid values are from 0x00 (mute) to 0x98 (+12dB). */ | ||
616 | ctl->private_value = | ||
617 | AK_COMPOSE(0, 4, 0, 0x98); | ||
618 | ctl->private_data = ak; | ||
619 | err = snd_ctl_add(ak->card, | ||
620 | snd_ctl_new(ctl, SNDRV_CTL_ELEM_ACCESS_READ| | ||
621 | SNDRV_CTL_ELEM_ACCESS_WRITE)); | ||
622 | if (err < 0) | ||
623 | goto __error; | ||
624 | } | ||
625 | |||
601 | if (ak->type == SND_AK4355 || ak->type == SND_AK4358) | 626 | if (ak->type == SND_AK4355 || ak->type == SND_AK4358) |
602 | num_emphs = 1; | 627 | num_emphs = 1; |
603 | else | 628 | else |