Messages in this thread Patch in this message | | | Date | Wed, 27 Apr 2011 21:35:35 +0200 | From | Takashi Iwai <> | Subject | Re: 2.6.38.4 broke my audio |
| |
At Wed, 27 Apr 2011 23:17:20 +0700, Emmanuel Benisty wrote: > > [1 <text/plain; UTF-8 (quoted-printable)>] > On Wed, Apr 27, 2011 at 10:47 PM, Takashi Iwai <tiwai@suse.de> wrote: > > At Wed, 27 Apr 2011 21:57:32 +0700, > > Emmanuel Benisty wrote: > >> > >> On Wed, Apr 27, 2011 at 3:36 PM, Takashi Iwai <tiwai@suse.de> wrote: > >> > At Wed, 27 Apr 2011 08:15:28 +0700, > >> > Emmanuel Benisty wrote: > >> >> > >> >> [1 <text/plain; UTF-8 (quoted-printable)>] > >> >> On Tue, Apr 26, 2011 at 7:49 PM, Takashi Iwai <tiwai@suse.de> wrote: > >> >> > At Tue, 26 Apr 2011 08:42:59 +0700, > >> >> > Emmanuel Benisty wrote: > >> >> >> > >> >> >> On Tue, Apr 26, 2011 at 3:25 AM, Takashi Iwai <tiwai@suse.de> wrote: > >> >> >> > At Mon, 25 Apr 2011 10:34:09 -0700, > >> >> >> > Greg KH wrote: > >> >> >> >> > >> >> >> >> On Mon, Apr 25, 2011 at 11:25:29AM +0200, Takashi Iwai wrote: > >> >> >> >> > At Sun, 24 Apr 2011 17:01:26 -0700, > >> >> >> >> > Greg KH wrote: > >> >> >> >> > > > >> >> >> >> > > On Sun, Apr 24, 2011 at 11:30:37AM +0100, Andrew Clayton wrote: > >> >> >> >> > > > Hi guys. > >> >> >> >> > > > > >> >> >> >> > > > Just upgraded to .4 from .3 and found my audio was _really_ quiet. All > >> >> >> >> > > > the mixers looked sane. > >> >> >> >> > > > > >> >> >> >> > > > A quick check of the changelog and a revert of: > >> >> >> >> > > > > >> >> >> >> > > > commit 58541cc27531727f7120683a7cb123ee3ada4bd4 > >> >> >> >> > > > Author: Takashi Iwai <tiwai@suse.de> > >> >> >> >> > > > Date: Mon Mar 28 12:05:31 2011 +0200 > >> >> >> >> > > > > >> >> >> >> > > > ALSA: hda - Fix pin-config of Gigabyte mobo > >> >> >> >> > > > > >> >> >> >> > > > commit c6b358748e19ce7e230b0926ac42696bc485a562 upstream. > >> >> >> >> > > > > >> >> >> >> > > > Use pin-fix instead of the static quirk for Gigabyte mobos 1458:a002. > >> >> >> >> > > > > >> >> >> >> > > > Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=677256 > >> >> >> >> > > > Signed-off-by: Takashi Iwai <tiwai@suse.de> > >> >> >> >> > > > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> > >> >> >> >> > > > > >> >> >> >> > > > made it normal again. > >> >> >> >> > > > >> >> >> >> > > Takashi, do you have a fix for this, or should I revert this from the > >> >> >> >> > > .38 stable tree? It looks like we now have 2 reports of this problem. > >> >> >> >> > > >> >> >> >> > If we need to revert, I'll do it in the upstream first, as it must hit > >> >> >> >> > to 2.6.39, too. > >> >> >> >> > >> >> >> >> True. > >> >> >> >> > >> >> >> >> > But let me check this breakage first. I'll take a look at it more > >> >> >> >> > deeply tomorrow. > >> >> >> >> > >> >> >> >> Ok, that sounds good. > >> >> >> > > >> >> >> > Thanks. > >> >> >> > > >> >> >> > Andrew, could you give alsa-info.sh outputs on your machine? > >> >> >> > Preferably, the outputs both before and after the kernel update would > >> >> >> > be really helpful. > >> >> >> > >> >> >> In case it might help, mine are attached too. > >> >> > > >> >> > Thanks. But the output after update (alsa-info.txt.bad) looks weird. > >> >> > It contains unexpected pin-update for NID 0x15 (found in > >> >> > /sys/class/sound/hwC0D0/driver_pin_configs), and thus the mixer > >> >> > elements created don't match with the results on HD-audio emulator. > >> >> > > >> >> > Could you double-check whether you have no modification over 2.6.38.4 > >> >> > driver? > >> >> > >> >> Hi Takashi, > >> >> > >> >> To double check, I have rebuilt .3 and .4 straight from kernel.org > >> >> sources with the same config (which I attached, just in case). > >> >> alsa-info.sh outputs are attached. > >> > > >> > Thanks. The bad output still shows the strange pin-config for NID > >> > 0x15 while it's not found in the good output. > >> > > >> > Could you check the following? > >> > > >> > 1. Set model=auto option to snd-hda-intel module and boot 2.6.38.3. > >> > Get alsa-info.sh output. > >> > > >> > 2. Apply fix1.diff patch below to 2.6.38.4, and boot, get alsa-info.sh > >> > again. > >> > > >> > 3. Reviert fix1.diff, and apply fix2.diff to 2.6.38.4. The same > >> > procedure. > >> > > >> > The point to be checked is the widget 0x15. In a good case, it should > >> > have the pin config such as: > >> > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear > >> > > >> > In a bad case, the driver modifies this by some reason to > >> > Pin Default 0x99130112: [Fixed] Speaker at Int ATAPI > >> > >> Hi Takashi, > >> > >> alsa-info.sh outputs are attached. fix1 works, fix2 is still broken. > > > > Thanks. Hm, so it happens only with the patch. Puzzling. > > > > Could you check the messages triggered by the patch below? > > Does it include 0x15? > > attached is what it gives.
OK, so it's chained wrongly by some reason. Maybe using bool type causes a problem for some compiler?
Could you try the patch below instead? If it works as expected, you'll see _no_ Surround volume control.
And, what is your configuration, i.e. which output are you testing? The output from the speaker and/of from the headphone jack?
thanks,
Takashi
--- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index da7cdca..7dece87 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1689,7 +1689,7 @@ struct alc_model_fixup { struct alc_fixup { int type; - bool chained; + int chained; int chain_id; union { unsigned int sku; @@ -1738,6 +1738,7 @@ static void alc_apply_fixup(struct hda_codec *codec, int action) snd_printdd(KERN_INFO "hda_codec: %s: " "Apply sku override for %s\n", codec->chip_name, modelname); + printk(KERN_DEBUG "XXX hda_codec: sku\n"); spec->cdefine.sku_cfg = fix->v.sku; spec->cdefine.fixup = 1; break; @@ -1748,9 +1749,12 @@ static void alc_apply_fixup(struct hda_codec *codec, int action) snd_printdd(KERN_INFO "hda_codec: %s: " "Apply pincfg for %s\n", codec->chip_name, modelname); - for (; cfg->nid; cfg++) + printk(KERN_DEBUG "XXX hda_codec: pins\n"); + for (; cfg->nid; cfg++) { + printk(KERN_DEBUG "hda_codec: set pincfg 0x%02x to %08x\n", cfg->nid, cfg->val); snd_hda_codec_set_pincfg(codec, cfg->nid, cfg->val); + } break; case ALC_FIXUP_VERBS: if (action != ALC_FIXUP_ACT_PROBE || !fix->v.verbs) @@ -1758,6 +1762,7 @@ static void alc_apply_fixup(struct hda_codec *codec, int action) snd_printdd(KERN_INFO "hda_codec: %s: " "Apply fix-verbs for %s\n", codec->chip_name, modelname); + printk(KERN_DEBUG "XXX hda_codec: verbs\n"); add_verb(codec->spec, fix->v.verbs); break; case ALC_FIXUP_FUNC: @@ -1766,6 +1771,7 @@ static void alc_apply_fixup(struct hda_codec *codec, int action) snd_printdd(KERN_INFO "hda_codec: %s: " "Apply fix-func for %s\n", codec->chip_name, modelname); + printk(KERN_DEBUG "XXX hda_codec: func\n"); fix->v.func(codec, fix, action); break; default: -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |