Skip to contentSkip to conversation

ALSA: wss_lib: fix AZT2320 probe.

PATCH New Rene Herman 1 participant 1 message Aug 5, 2008 Sound

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ALSA: wss_lib: fix AZT2320 probe.

Hi Takashi

The attached is needed and sufficient to get AZT2320 back in line. Trouble is with non-settable MIC gain bits on AZT2320 which fools snd_ad1848_probe() and makes snd-azt2320 fail to load after the wss_lib merge.

Krzysztof should ACK/NAK this -- he was busy there with CS4248 and might have other plans for it.

Krzysztof, do you? I'm rather itching to rewrite that function otherwise. It's horrible.

Rene.

Quoted 1 line

From 988ae22373fafa8a0059457eafc737a01c471fe4 Mon Sep 17 00:00:00 2001

From: Rene Herman <[email protected]>
Date: Tue, 5 Aug 2008 09:33:33 +0200
Subject: [PATCH] ALSA: wss_lib: fix AZT2320 probe.

After the transition from cs4321_lib to wss_lib, azt2320 probe visits snd_ad1848_probe during detection. It expects register 0 (LEFT_INPUT) to be able to retain the value 0xaa during detection but AZT2320 does not support MIC gain meaning it reads back as 0x8a instead.

---
 sound/isa/wss/wss_lib.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
sound/isa/wss/wss_lib.c +7 -5
index f2df77b..955db45 100644
@@ -1168,11 +1168,13 @@ static int snd_ad1848_probe(struct snd_wss *chip)
 				ad1847 = 1;
 				break;
 			}
-			if (snd_wss_in(chip, CS4231_LEFT_INPUT) == 0xaa &&
-			    rev == 0x45) {
-				spin_unlock_irqrestore(&chip->reg_lock, flags);
-				id = 1;
-				break;
+			if (rev == 0x45) {
+				rev = snd_wss_in(chip, CS4231_LEFT_INPUT);
+				if (rev == 0xaa || rev == 0x8a) {
+					spin_unlock_irqrestore(&chip->reg_lock, flags);
+					id = 1;
+					break;
+				}
 			}
 			spin_unlock_irqrestore(&chip->reg_lock, flags);
 		}
Signature · 1 line
1.5.5

_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel