[alsa-devel] [PATCH v2] ALSA: hda - Don't send invalid volume knob command on IDT 92hd75bxx

Takashi Iwai tiwai at suse.de
Thu Aug 16 14:16:47 CEST 2012


At Thu, 16 Aug 2012 14:11:09 +0200,
David Henningsson wrote:
> 
> Instead of blindly initializing a volume knob widget, first check
> that there actually is a volume knob widget.
> 
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>

Thanks, applied.


Takashi

> ---
>  sound/pci/hda/patch_sigmatel.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
> index 94040cc..ea5775a 100644
> --- a/sound/pci/hda/patch_sigmatel.c
> +++ b/sound/pci/hda/patch_sigmatel.c
> @@ -4272,7 +4272,8 @@ static int stac92xx_init(struct hda_codec *codec)
>  	unsigned int gpio;
>  	int i;
>  
> -	snd_hda_sequence_write(codec, spec->init);
> +	if (spec->init)
> +		snd_hda_sequence_write(codec, spec->init);
>  
>  	/* power down adcs initially */
>  	if (spec->powerdown_adcs)
> @@ -5748,7 +5749,6 @@ again:
>  		/* fallthru */
>  	case 0x111d76b4: /* 6 Port without Analog Mixer */
>  	case 0x111d76b5:
> -		spec->init = stac92hd71bxx_core_init;
>  		codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
>  		spec->num_dmics = stac92xx_connected_ports(codec,
>  					stac92hd71bxx_dmic_nids,
> @@ -5773,7 +5773,6 @@ again:
>  			spec->stream_delay = 40; /* 40 milliseconds */
>  
>  		/* disable VSW */
> -		spec->init = stac92hd71bxx_core_init;
>  		unmute_init++;
>  		snd_hda_codec_set_pincfg(codec, 0x0f, 0x40f000f0);
>  		snd_hda_codec_set_pincfg(codec, 0x19, 0x40f000f3);
> @@ -5788,7 +5787,6 @@ again:
>  
>  		/* fallthru */
>  	default:
> -		spec->init = stac92hd71bxx_core_init;
>  		codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
>  		spec->num_dmics = stac92xx_connected_ports(codec,
>  					stac92hd71bxx_dmic_nids,
> @@ -5796,6 +5794,9 @@ again:
>  		break;
>  	}
>  
> +	if (get_wcaps_type(get_wcaps(codec, 0x28)) == AC_WID_VOL_KNB)
> +		spec->init = stac92hd71bxx_core_init;
> +
>  	if (get_wcaps(codec, 0xa) & AC_WCAP_IN_AMP)
>  		snd_hda_sequence_write_cache(codec, unmute_init);
>  
> -- 
> 1.7.9.5
> 


More information about the Alsa-devel mailing list