At Tue, 27 Jul 2010 00:20:53 +0200, David Henningsson wrote:
[1 <text/plain; ISO-8859-1 (7bit)>] A recent commit in current HEAD (79c944ad) caused codecs not to be detected in some cases, found on several Realtek codecs.
Please apply the attached fix for that problem.
Ah, I forgot about this being committed to topic/misc branch since Jaroslav's branch contains more other stuff than HD-audio.
Applied now. Thanks for tracking down.
Takashi
-- David Henningsson, Canonical Ltd. http://launchpad.net/~diwic [2 0002-ALSA-hda-Fixup-commit-79c944ad-caused-codec-initiali.patch <text/x-patch (7bit)>]
From 107d4057bed5037977b8b4c27ada11f14526e8cb Mon Sep 17 00:00:00 2001
From: David Henningsson david.henningsson@canonical.com Date: Tue, 27 Jul 2010 00:10:34 +0200 Subject: [PATCH 1/1] ALSA: hda: Fixup commit 79c944ad (caused codec initialization failure)
Commit 79c944ad caused codecs not to be detected in some cases, found on several Realtek codecs.
Signed-off-by: David Henningsson david.henningsson@canonical.com
sound/pci/hda/hda_codec.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 8cd5da8..710f61a 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -724,23 +724,24 @@ static int get_codec_name(struct hda_codec *codec) */ static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec) {
- int i, total_nodes, function_id;
int i, total_nodes, function_id, param_val; hda_nid_t nid;
total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid); for (i = 0; i < total_nodes; i++, nid++) {
function_id = snd_hda_param_read(codec, nid,
param_val = snd_hda_param_read(codec, nid, AC_PAR_FUNCTION_TYPE);
switch (function_id) { case AC_GRP_AUDIO_FUNCTION: codec->afg = nid;function_id = param_val & 0xff;
codec->afg_function_id = function_id & 0xff;
codec->afg_unsol = (function_id >> 8) & 1;
codec->afg_function_id = function_id;
case AC_GRP_MODEM_FUNCTION: codec->mfg = nid;codec->afg_unsol = (param_val >> 8) & 1; break;
codec->mfg_function_id = function_id & 0xff;
codec->mfg_unsol = (function_id >> 8) & 1;
codec->mfg_function_id = function_id;
default: break;codec->mfg_unsol = (param_val >> 8) & 1; break;
-- 1.7.0.4