summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorJani Alinikula <janialinikula@gmail.com>2006-06-27 15:00:55 +0200
committerJaroslav Kysela <perex@suse.cz>2006-06-28 19:31:03 +0200
commitc83c0c470565a0aed2f6fcbaa6c80a98ef250586 (patch)
tree5f6810822c019af78dcb95f67565101cb97198c0 /sound/pci
parent[ALSA] Fix misuse of __list_add() in seq_ports.c (diff)
downloadlinux-c83c0c470565a0aed2f6fcbaa6c80a98ef250586.tar.xz
linux-c83c0c470565a0aed2f6fcbaa6c80a98ef250586.zip
[ALSA] Stereo controls for M-Audio Revolution cards
This patch adds stereo controls to revo cards by making the ak4xxx driver mixers configurable from the card driver. Signed-off-by: Jani Alinikula <janialinikula@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/ice1712/revo.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/sound/pci/ice1712/revo.c b/sound/pci/ice1712/revo.c
index b5754b32b802..fec9440cb310 100644
--- a/sound/pci/ice1712/revo.c
+++ b/sound/pci/ice1712/revo.c
@@ -87,12 +87,25 @@ static void revo_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate)
* initialize the chips on M-Audio Revolution cards
*/
+static unsigned int revo71_num_stereo_front[] = {2};
+static char *revo71_channel_names_front[] = {"PCM Playback Volume"};
+
+static unsigned int revo71_num_stereo_surround[] = {1, 1, 2, 2};
+static char *revo71_channel_names_surround[] = {"PCM Center Playback Volume", "PCM LFE Playback Volume",
+ "PCM Side Playback Volume", "PCM Rear Playback Volume"};
+
+static unsigned int revo51_num_stereo[] = {2, 1, 1, 2};
+static char *revo51_channel_names[] = {"PCM Playback Volume", "PCM Center Playback Volume",
+ "PCM LFE Playback Volume", "PCM Rear Playback Volume"};
+
static struct snd_akm4xxx akm_revo_front __devinitdata = {
.type = SND_AK4381,
.num_dacs = 2,
.ops = {
.set_rate_val = revo_set_rate_val
- }
+ },
+ .num_stereo = revo71_num_stereo_front,
+ .channel_names = revo71_channel_names_front
};
static struct snd_ak4xxx_private akm_revo_front_priv __devinitdata = {
@@ -113,7 +126,9 @@ static struct snd_akm4xxx akm_revo_surround __devinitdata = {
.num_dacs = 6,
.ops = {
.set_rate_val = revo_set_rate_val
- }
+ },
+ .num_stereo = revo71_num_stereo_surround,
+ .channel_names = revo71_channel_names_surround
};
static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = {
@@ -133,7 +148,9 @@ static struct snd_akm4xxx akm_revo51 __devinitdata = {
.num_dacs = 6,
.ops = {
.set_rate_val = revo_set_rate_val
- }
+ },
+ .num_stereo = revo51_num_stereo,
+ .channel_names = revo51_channel_names
};
static struct snd_ak4xxx_private akm_revo51_priv __devinitdata = {