[PATCH] ALSA: wss_lib: fix AZT2320 probe.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.
>From 988ae22373fafa8a0059457eafc737a01c471fe4 Mon Sep 17 00:00:00 2001
From: Rene Herman <rene.herman@xxxxxxxxx>
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.

Signed-off-by: Rene Herman <rene.herman@xxxxxxxxx>
---
 sound/isa/wss/wss_lib.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c
index f2df77b..955db45 100644
--- a/sound/isa/wss/wss_lib.c
+++ b/sound/isa/wss/wss_lib.c
@@ -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);
 		}
-- 
1.5.5

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux