[alsa-devel] [HDA Intel/STAC92xx] Alsa 1.0.14: error in stac92xx_auto_fill_dac_nid

Takashi Iwai tiwai at suse.de
Mon Jul 2 19:20:45 CEST 2007


At Mon, 2 Jul 2007 16:58:40 +0200,
Jan de Mooij wrote:
> 
> I applied the patch and it seems to work fine now :) Should we submit
> a patch for kernel 2.6.22?

Thanks for checking.  I applied it to HG tree now.
Not sure whether it gets merged to 2.6.22 since I have no control over
alsa git tree...


Takashi

> 
> Thanks,
> 
> Jan
> 
> 
> On 7/2/07, Takashi Iwai <tiwai at suse.de> wrote:
> > At Mon, 02 Jul 2007 16:11:21 +0200,
> > I wrote:
> > >
> > > At Sat, 30 Jun 2007 15:26:16 +0200,
> > > Jan de Mooij wrote:
> > > >
> > > > I recompiled alsa-driver with --with-debug=full, and I attached the
> > > > files you asked for. In the dmesg file, alsa output starts on line
> > > > 453.
> > > >
> > > > Thanks for your help. Please let me know if you need more information.
> > >
> > > The output from kernel looks good.  So I wonder where the value 0x15
> > > came from at all.  Could you trace it, e.g. by adding printk's
> > > appropriately in stac92xx_auto_fill_dac_nids()?
> >
> > After a further code-looking, I found a problematic part.
> > Could you try the patch below?
> >
> >
> > Takashi
> >
> > diff -r 054dc7195722 pci/hda/patch_sigmatel.c
> > --- a/pci/hda/patch_sigmatel.c  Mon Jul 02 16:03:12 2007 +0200
> > +++ b/pci/hda/patch_sigmatel.c  Mon Jul 02 16:15:39 2007 +0200
> > @@ -1228,7 +1228,7 @@ static int is_in_dac_nids(struct sigmate
> >   * and 9202/925x. For those, dac_nids[] must be hard-coded.
> >   */
> >  static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec,
> > -                                      const struct auto_pin_cfg *cfg)
> > +                                      struct auto_pin_cfg *cfg)
> >  {
> >         struct sigmatel_spec *spec = codec->spec;
> >         int i, j, conn_len = 0;
> > @@ -1253,6 +1253,13 @@ static int stac92xx_auto_fill_dac_nids(s
> >                 }
> >
> >                 if (j == conn_len) {
> > +                       if (spec->multiout.num_dacs > 0) {
> > +                               /* we have already working output pins,
> > +                                * so let's drop the broken ones again
> > +                                */
> > +                               cfg->line_outs = spec->multiout.num_dacs;
> > +                               break;
> > +                       }
> >                         /* error out, no available DAC found */
> >                         snd_printk(KERN_ERR
> >                                    "%s: No available DAC for pin 0x%x\n",
> >
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list