[alsa-devel] hda Regression: jack doesn't mute speaker
Ortwin Glück
odi at odi.ch
Fri Apr 17 19:28:23 CEST 2009
Takashi Iwai wrote:
> The problem is likely because hp_detect field isn't set on your
> machine because the headphone shares the same audio-out widget with
> the speaker out.
>
> Could you try the patch below?
Yes, this patch does the trick. The HP jack correctly mutes the speakers now.
Thanks a lot. I guess this will make it into mainline with the next rc?
Cheers,
Ortwin
>
> thanks,
>
> Takashi
>
> ---
> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
> index ce30b45..917bc5d 100644
> --- a/sound/pci/hda/patch_sigmatel.c
> +++ b/sound/pci/hda/patch_sigmatel.c
> @@ -3076,6 +3076,11 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
> unsigned int wid_caps;
>
> for (i = 0; i < num_outs && i < ARRAY_SIZE(chname); i++) {
> + if (type == AUTO_PIN_HP_OUT && !spec->hp_detect) {
> + wid_caps = get_wcaps(codec, pins[i]);
> + if (wid_caps & AC_WCAP_UNSOL_CAP)
> + spec->hp_detect = 1;
> + }
> nid = dac_nids[i];
> if (!nid)
> continue;
> @@ -3119,11 +3124,6 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
> err = create_controls_idx(codec, name, idx, nid, 3);
> if (err < 0)
> return err;
> - if (type == AUTO_PIN_HP_OUT && !spec->hp_detect) {
> - wid_caps = get_wcaps(codec, pins[i]);
> - if (wid_caps & AC_WCAP_UNSOL_CAP)
> - spec->hp_detect = 1;
> - }
> }
> }
> return 0;
More information about the Alsa-devel
mailing list