Skip to content

Commit

Permalink
ALSA: hda - Fix phantom jacks on VT1708
Browse files Browse the repository at this point in the history
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@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
David Henningsson authored and Takashi Iwai committed Feb 5, 2013
1 parent 2ad779b commit f672f65
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions sound/pci/hda/patch_via.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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 */
Expand Down

0 comments on commit f672f65

Please sign in to comment.