Browse Source

ALSA: cs46xx: Fix Duplicate front for CS4294 and CS4298 codecs

Currently, the Duplicate front control is enabled only for two specific
revisions of CS4294.

Enable it for all CS4294 and CS4298 codecs instead.

This fixes rear output on my VC-4620N sound card
(CS4620 + CS4298 rev.5).

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Ondrej Zary 9 years ago
parent
commit
eed273b785
1 changed files with 1 additions and 1 deletions
  1. 1 1
      sound/pci/cs46xx/cs46xx_lib.c

+ 1 - 1
sound/pci/cs46xx/cs46xx_lib.c

@@ -2528,7 +2528,7 @@ int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device)
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 	if (chip->nr_ac97_codecs == 1) {
 	if (chip->nr_ac97_codecs == 1) {
 		unsigned int id2 = chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]->id & 0xffff;
 		unsigned int id2 = chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]->id & 0xffff;
-		if (id2 == 0x592b || id2 == 0x592d) {
+		if ((id2 & 0xfff0) == 0x5920) {	/* CS4294 and CS4298 */
 			err = snd_ctl_add(card, snd_ctl_new1(&snd_cs46xx_front_dup_ctl, chip));
 			err = snd_ctl_add(card, snd_ctl_new1(&snd_cs46xx_front_dup_ctl, chip));
 			if (err < 0)
 			if (err < 0)
 				return err;
 				return err;