Re: 3.1-rc5 is the worst

From: Takashi Iwai
Date: Tue Sep 13 2011 - 04:39:19 EST


At Mon, 12 Sep 2011 16:25:44 +0200,
Francis Moreau wrote:
>
> On Mon, Sep 12, 2011 at 3:14 PM, Francis Moreau <francis.moro@xxxxxxxxx> wrote:
> > Hello,
> >
> > On Mon, Sep 12, 2011 at 11:24 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
> >> At Sat, 10 Sep 2011 11:57:06 +0200,
> >> Francis Moreau wrote:
> >>>
> >>> Hello,
> >>>
> >>> Maybe the subject sounds rude so apologize since I just want to report
> >>> that 3.1-rc5 gives me bad impression.
> >>>
> >>> Of course it's all about my hw support which seems to get some
> >>> regressions (I attached lspci).
> >>>
> >>> 1/ I'm getting this now at each boot:
> >>>
> >>> Â [ Â 38.349671] hda_codec: too deep connection for 0x18
> >>> Â [ Â 38.349748] hda_codec: too deep connection for 0x18
> >>> Â [ Â 38.349842] hda_codec: too deep connection for 0x18
> >>> Â [ Â 38.349843] hda_codec: too deep connection for 0x18
> >>> Â [ Â 38.349844] hda_codec: too deep connection for 0x18
> >>> Â [ Â 38.349939] hda_codec: too deep connection for 0x18
> >>> Â <repeated 252 times>
> >>>
> >>> I've no idea what it does mean or it's simply a warning I can ignore
> >>> (and it that case it would be nice to limit it at least) or if it's
> >>> worse getting a fix before 3.1 is out would be great.
> >>
> >> Could you give alsa-info.sh outputs (run with --no-upload option)
> >> for both working and non-working kernels? Âlspci doesn't expose
> >> anything about codecs and other details.
> >>
> >
> > Here is the output from the working kernel (no "too deep connection
> > ..." warnings). kernel is 2.6.39.4.
> >
> > I can't give the output for the non-working kernel since I can't
> > reboot right now. I'll send it later.
> >
>
> Ok here's the output for the bad one.
>
> Let me know if you want something else.

Thanks!

The patch below should fix the problem. Give it a try.


Takashi

---
From: Takashi Iwai <tiwai@xxxxxxx>
Subject: [PATCH] ALSA: hda - Terminate the recursive connection search properly

The recursive search of widget connections in snd_hda_get_conn_index()
must be terminated at the pin and the audio-out widgets. Otherwise
you'll get "too deep connection" warnings unnecessarily.

Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
---
sound/pci/hda/hda_codec.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 3e7850c..f3aefef 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -579,9 +579,13 @@ int snd_hda_get_conn_index(struct hda_codec *codec, hda_nid_t mux,
return -1;
}
recursive++;
- for (i = 0; i < nums; i++)
+ for (i = 0; i < nums; i++) {
+ unsigned int type = get_wcaps_type(get_wcaps(codec, conn[i]));
+ if (type == AC_WID_PIN || type == AC_WID_AUD_OUT)
+ continue;
if (snd_hda_get_conn_index(codec, conn[i], nid, recursive) >= 0)
return i;
+ }
return -1;
}
EXPORT_SYMBOL_HDA(snd_hda_get_conn_index);
--
1.7.6.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/