[PATCH] [UBUNTU:sound/pci/ac97/] Don't erroneously attempt to create AC97 controls again

crimsun at fungus.sh.nu crimsun at fungus.sh.nu
Thu Jun 15 20:51:23 UTC 2006


Subject: [PATCH] [UBUNTU:sound/pci/ac97/] Don't erroneously attempt to create AC97 controls again

UpstreamStatus: Added in upstream alsa-kernel hg changeset 8d313e752df1
                http://hg-mirror.alsa-project.org/alsa-kernel?cmd=changeset;node=8d313e752df1c78b700d0aa696fd67312409fb0e;style=raw

Patch from Marcelo Tosatti by way of Jaya Kumar
<jayakumar.alsa at gmail.com> fixes the case where the erroneous creation
of an AD18xx-specific control is attempted, causing
snd_ac97_mixer_build() to bail (personally experienced and further
confirmed by separate AD1985 Dapper user in freenode/#ubuntu).

Signed-off-by: Daniel T Chen <crimsun at ubuntu.com>

---

 sound/pci/ac97/ac97_codec.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

5490918b5daa949d62e775bb3c1b2e537a6adc7f
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index b942772..507ba2a 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -1254,7 +1254,8 @@ static int snd_ac97_mixer_build(ac97_t *
 	ac97->regs[AC97_CENTER_LFE_MASTER] = 0x8080;
 
 	/* build center controls */
-	if (snd_ac97_try_volume_mix(ac97, AC97_CENTER_LFE_MASTER)) {
+	if ((snd_ac97_try_volume_mix(ac97, AC97_CENTER_LFE_MASTER)) 
+		&& !(ac97->flags & AC97_AD_MULTI)) {
 		if ((err = snd_ctl_add(card, snd_ac97_cnew(&snd_ac97_controls_center[0], ac97))) < 0)
 			return err;
 		if ((err = snd_ctl_add(card, kctl = snd_ac97_cnew(&snd_ac97_controls_center[1], ac97))) < 0)
@@ -1266,7 +1267,8 @@ static int snd_ac97_mixer_build(ac97_t *
 	}
 
 	/* build LFE controls */
-	if (snd_ac97_try_volume_mix(ac97, AC97_CENTER_LFE_MASTER+1)) {
+	if ((snd_ac97_try_volume_mix(ac97, AC97_CENTER_LFE_MASTER+1))
+		&& !(ac97->flags & AC97_AD_MULTI)) {
 		if ((err = snd_ctl_add(card, snd_ac97_cnew(&snd_ac97_controls_lfe[0], ac97))) < 0)
 			return err;
 		if ((err = snd_ctl_add(card, kctl = snd_ac97_cnew(&snd_ac97_controls_lfe[1], ac97))) < 0)
@@ -1278,7 +1280,8 @@ static int snd_ac97_mixer_build(ac97_t *
 	}
 
 	/* build surround controls */
-	if (snd_ac97_try_volume_mix(ac97, AC97_SURROUND_MASTER)) {
+	if ((snd_ac97_try_volume_mix(ac97, AC97_SURROUND_MASTER)) 
+		&& !(ac97->flags & AC97_AD_MULTI)) {
 		/* Surround Master (0x38) is with stereo mutes */
 		if ((err = snd_ac97_cmix_new_stereo(card, "Surround Playback", AC97_SURROUND_MASTER, 1, ac97)) < 0)
 			return err;
-- 
1.1.3


-- 
Daniel T. Chen            crimsun at ubuntu.com
GPG key:   www.sh.nu/~crimsun/pubkey.gpg.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20060615/edef0dcb/attachment.sig>


More information about the kernel-team mailing list