At Tue, 24 Apr 2007 10:15:30 +1000, Ben DiDonc wrote: > > Takashi, > I applied your patch (to alsa-driver-hg-20070421) and modprobe'd > snd_hda_intel without probe_mask, but with model=auto. It worked and > detected the ALC861 codec straight away, just like it did with > probe_mask=8. OK, then I'll apply the patch to the upstream. > I max'ed all playback and capture volumes , ran arecord > | aplay ,which worked fine. The laptop I have (toshiba A100) only has > builtin speakers and a headphone jack for output (and a mic jack for > input). There are no other jacks. I tried both the speakers and > headphones, both worked (the speakers are muted when the headphone is > connected). Interesting. It means that this has obviously a different hardware design from the pre-defined one in the current driver code. > Next I modprobe'd again snd_hda_intel without any parameters this > time, and it worked fine too. the codec was detected and both playback > and capture worked fine. The current code has a check of headphone pin, so either with or without headphone, model=toshiba works. Takashi > On 4/24/07, Takashi Iwai <tiwai@xxxxxxx> wrote: > > 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) { > > > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel