[alsa-devel] [PATCH 1/2] ALSA: hda - Fix phantom jacks on VT1708

Takashi Iwai tiwai at suse.de
Tue Feb 5 12:27:59 CET 2013


At Tue,  5 Feb 2013 12:06:02 +0100,
David Henningsson wrote:
> 
> The VT1708 has no unsol event capability, and polling is set using
> the "Jack Detect" alsamixer control. In order not to create
> phantom Jack controls, temporary enable jackpoll during build_controls.
> 
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>

Applied both now.  Thanks.


Takashi

> ---
>  sound/pci/hda/patch_via.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> Sorry, the previous version of this patch the "int err" got lost.
> 
> diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
> index 9641c0e..e934c49 100644
> --- a/sound/pci/hda/patch_via.c
> +++ b/sound/pci/hda/patch_via.c
> @@ -661,6 +661,18 @@ static int via_init(struct hda_codec *codec)
>  	return 0;
>  }
>  
> +static int vt1708_build_controls(struct hda_codec *codec)
> +{
> +	/* In order not to create "Phantom Jack" controls,
> +	   temporary enable jackpoll */
> +	int err;
> +	int old_interval = codec->jackpoll_interval;
> +	codec->jackpoll_interval = msecs_to_jiffies(100);
> +	err = via_build_controls(codec);
> +	codec->jackpoll_interval = old_interval;
> +	return err;
> +}
> +
>  static int vt1708_build_pcms(struct hda_codec *codec)
>  {
>  	struct via_spec *spec = codec->spec;
> @@ -723,6 +735,7 @@ static int patch_vt1708(struct hda_codec *codec)
>  	spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs;
>  
>  	codec->patch_ops = via_patch_ops;
> +	codec->patch_ops.build_controls = vt1708_build_controls;
>  	codec->patch_ops.build_pcms = vt1708_build_pcms;
>  
>  	/* clear jackpoll_interval again; it's set dynamically */
> -- 
> 1.7.9.5
> 


More information about the Alsa-devel mailing list