[alsa-devel] 2.6.38.4 broke my audio
Takashi Iwai
tiwai at suse.de
Wed Apr 27 21:35:35 CEST 2011
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 at 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 at 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 at 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 at 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 at 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 at suse.de>
> >> >> >> >> > > > Signed-off-by: Greg Kroah-Hartman <gregkh at 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:
More information about the Alsa-devel
mailing list