[PATCH 1/1] ALSA: hda: Fixup commit 79c944ad (caused codec initialization failure)
David Henningsson
david.henningsson at canonical.com
Tue Jul 27 00:10:34 CEST 2010
Commit 79c944ad caused codecs not to be detected in some cases,
found on several Realtek codecs.
Signed-off-by: David Henningsson <david.henningsson at 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);
+ function_id = param_val & 0xff;
switch (function_id) {
case AC_GRP_AUDIO_FUNCTION:
codec->afg = nid;
- codec->afg_function_id = function_id & 0xff;
- codec->afg_unsol = (function_id >> 8) & 1;
+ codec->afg_function_id = function_id;
+ codec->afg_unsol = (param_val >> 8) & 1;
break;
case AC_GRP_MODEM_FUNCTION:
codec->mfg = nid;
- codec->mfg_function_id = function_id & 0xff;
- codec->mfg_unsol = (function_id >> 8) & 1;
+ codec->mfg_function_id = function_id;
+ codec->mfg_unsol = (param_val >> 8) & 1;
break;
default:
break;
--
1.7.0.4
--------------040206080406060608060907--
More information about the Alsa-devel
mailing list