[alsa-devel] [PATCH] ALSA: hda: Fixup commit 79c944ad (caused codec initialization failure)

Takashi Iwai tiwai at suse.de
Tue Jul 27 07:36:03 CEST 2010


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 at 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 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
> 


More information about the Alsa-devel mailing list