[alsa-devel] Fwd: No sound with ATI SB450

Takashi Iwai tiwai at suse.de
Mon Apr 23 16:32:37 CEST 2007


At Tue, 24 Apr 2007 00:12:46 +1000,
Ben DiDonc wrote:
> 
> Here are the two codec files:
> codec#3-working-14rc1 was obtained after loading snd-hda-intel with
> probe_mask=8 and model=auto
> the other was obtained after loading the module without special parameters

Thanks.  Let's cut out bugs step by step.

The probing problem with the latest driver might be fixed by the patch
below.  Could you try it and load without probe_mask option?

Also, what output did you test actually?  Is the output from the
built-in speaker (if any), the output from HP-jack or both?


Takashi

diff -r aed6a15c9398 pci/hda/hda_intel.c
--- a/pci/hda/hda_intel.c	Mon Apr 23 11:54:41 2007 +0200
+++ b/pci/hda/hda_intel.c	Mon Apr 23 16:18:35 2007 +0200
@@ -979,7 +979,7 @@ static int __devinit azx_codec_create(st
 static int __devinit azx_codec_create(struct azx *chip, const char *model)
 {
 	struct hda_bus_template bus_temp;
-	int c, codecs, err;
+	int c, codecs, audio_codecs, err;
 
 	memset(&bus_temp, 0, sizeof(bus_temp));
 	bus_temp.private_data = chip;
@@ -991,16 +991,19 @@ static int __devinit azx_codec_create(st
 	if ((err = snd_hda_bus_new(chip->card, &bus_temp, &chip->bus)) < 0)
 		return err;
 
-	codecs = 0;
+	codecs = audio_codecs = 0;
 	for (c = 0; c < AZX_MAX_CODECS; c++) {
 		if ((chip->codec_mask & (1 << c)) & probe_mask) {
-			err = snd_hda_codec_new(chip->bus, c, NULL);
+			struct hda_codec *codec;
+			err = snd_hda_codec_new(chip->bus, c, &codec);
 			if (err < 0)
 				continue;
 			codecs++;
+			if (codec->afg)
+				audio_codecs++;
 		}
 	}
-	if (!codecs) {
+	if (!audio_codecs) {
 		/* probe additional slots if no codec is found */
 		for (; c < azx_max_codecs[chip->driver_type]; c++) {
 			if ((chip->codec_mask & (1 << c)) & probe_mask) {


More information about the Alsa-devel mailing list