diff options
Diffstat (limited to 'sound/pci/hda/patch_cirrus.c')
| -rw-r--r-- | sound/pci/hda/patch_cirrus.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c index 72ebb8a36b1..0d9c58f1356 100644 --- a/sound/pci/hda/patch_cirrus.c +++ b/sound/pci/hda/patch_cirrus.c @@ -168,10 +168,10 @@ static void cs_automute(struct hda_codec *codec)  	snd_hda_gen_update_outputs(codec);  	if (spec->gpio_eapd_hp) { -		unsigned int gpio = spec->gen.hp_jack_present ? +		spec->gpio_data = spec->gen.hp_jack_present ?  			spec->gpio_eapd_hp : spec->gpio_eapd_speaker;  		snd_hda_codec_write(codec, 0x01, 0, -				    AC_VERB_SET_GPIO_DATA, gpio); +				    AC_VERB_SET_GPIO_DATA, spec->gpio_data);  	}  } @@ -506,6 +506,8 @@ static int patch_cs420x(struct hda_codec *codec)  	if (!spec)  		return -ENOMEM; +	spec->gen.automute_hook = cs_automute; +  	snd_hda_pick_fixup(codec, cs420x_models, cs420x_fixup_tbl,  			   cs420x_fixups);  	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); @@ -893,6 +895,8 @@ static int patch_cs4210(struct hda_codec *codec)  	if (!spec)  		return -ENOMEM; +	spec->gen.automute_hook = cs_automute; +  	snd_hda_pick_fixup(codec, cs421x_models, cs421x_fixup_tbl,  			   cs421x_fixups);  	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); |