No subject


Fri Apr 13 12:14:49 CEST 2007


  case 4:
      if ([Abit-AW9D-MAX ALC822 quirk]) {
           nid = cfg->line_out_pins[2];
           cfg->line_out_pins[2] = cfg->line_out_pins[3];
           cfg->line_out_pins[3] = nid;
      } else {
           nid = cfg->line_out_pins[1];
           cfg->line_out_pins[1] = cfg->line_out_pins[3];
           cfg->line_out_pins[3] = cfg->line_out_pins[2];
           cfg->line_out_pins[2] = nid;
      }
      break;

Explanation:

case 4 originally does {1<=3,3<=2,2<=1}, my working fix effectively 
adds {1<=2,2<=1}, which means we need to do {1<=1,3<=2,2<=3}, or just
{3<=2,2<=3}.

Right?

> > diff -r 3f196675e724 pci/hda/hda_codec.c
> > --- a/pci/hda/hda_codec.c	Fri Aug 04 19:08:03 2006 +0200
> > +++ b/pci/hda/hda_codec.c	Mon Aug 07 14:55:42 2006 +0200
> > @@ -2122,16 +2122,19 @@ int snd_hda_parse_pin_def_config(struct 
> >  	 */
> >  	switch (cfg->line_outs) {
> >  	case 3:
> > +	case 4:
> >  		nid = cfg->line_out_pins[1];
> >  		cfg->line_out_pins[1] = cfg->line_out_pins[2];
> >  		cfg->line_out_pins[2] = nid;
> >  		break;
> > +#if 0 /* seems wrong */
> >  	case 4:
> >  		nid = cfg->line_out_pins[1];
> >  		cfg->line_out_pins[1] = cfg->line_out_pins[3];
> >  		cfg->line_out_pins[3] = cfg->line_out_pins[2];
> >  		cfg->line_out_pins[2] = nid;
> >  		break;
> > +#endif
> >  	}

-- 
Dan Aloni
XIV LTD, http://www.xivstorage.com
da-x (at) monatomic.org, dan (at) xiv.co.il


More information about the Alsa-devel mailing list