From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Aloni Subject: Re: ALC882 on Abit AW9D-MAX Date: Fri, 20 Apr 2007 13:49:47 +0300 Message-ID: <20070420104946.GA22826@localdomain> References: <20070412100959.GA8944@localdomain> <20070412211141.GA8625@localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from noname.neutralserver.com (noname.neutralserver.com [70.84.186.210]) by alsa0.perex.cz (Postfix) with ESMTP id A82C82464D for ; Fri, 20 Apr 2007 12:50:13 +0200 (CEST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Takashi Iwai Cc: alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org On Wed, Apr 18, 2007 at 02:29:47PM +0200, Takashi Iwai wrote: > At Fri, 13 Apr 2007 12:21:51 +0200, > I wrote: > > > > At Fri, 13 Apr 2007 00:11:41 +0300, > > Dan Aloni wrote: [...] > > > Okay, so based on the 2.6.21-rc6 codebase: > > > > > > position_fix=1 fixed the clicks. > > > > > > Concerning the speakers - I have found that if I swap the orange > > > and black - it works. > > > > I had a similar bug report once and it was also an 8-channel device. > > Could you try the patch below? > > Dan, did you try it? I just reverted my own changes and tried your patch - it didn't fix the problem. >>From what I figured, for my card (where cfg->line_outs == 4) the code from below should be like this: 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