Merge branch 'for-linus' of git://github.com/tiwai/sound
* 'for-linus' of git://github.com/tiwai/sound: ALSA: HDA: Add support for IDT 92HD93 ALSA: hda/realtek - Fix auto-mute with HP+LO configuration
This commit is contained in:
commit
0ad79ed34c
|
@ -168,7 +168,7 @@ struct alc_spec {
|
||||||
unsigned int auto_mic_valid_imux:1; /* valid imux for auto-mic */
|
unsigned int auto_mic_valid_imux:1; /* valid imux for auto-mic */
|
||||||
unsigned int automute:1; /* HP automute enabled */
|
unsigned int automute:1; /* HP automute enabled */
|
||||||
unsigned int detect_line:1; /* Line-out detection enabled */
|
unsigned int detect_line:1; /* Line-out detection enabled */
|
||||||
unsigned int automute_lines:1; /* automute line-out as well */
|
unsigned int automute_lines:1; /* automute line-out as well; NOP when automute_hp_lo isn't set */
|
||||||
unsigned int automute_hp_lo:1; /* both HP and LO available */
|
unsigned int automute_hp_lo:1; /* both HP and LO available */
|
||||||
|
|
||||||
/* other flags */
|
/* other flags */
|
||||||
|
@ -551,7 +551,7 @@ static void update_speakers(struct hda_codec *codec)
|
||||||
if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0] ||
|
if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0] ||
|
||||||
spec->autocfg.line_out_pins[0] == spec->autocfg.speaker_pins[0])
|
spec->autocfg.line_out_pins[0] == spec->autocfg.speaker_pins[0])
|
||||||
return;
|
return;
|
||||||
if (!spec->automute_lines || !spec->automute)
|
if (!spec->automute || (spec->automute_hp_lo && !spec->automute_lines))
|
||||||
on = 0;
|
on = 0;
|
||||||
else
|
else
|
||||||
on = spec->jack_present;
|
on = spec->jack_present;
|
||||||
|
@ -803,7 +803,7 @@ static int alc_automute_mode_get(struct snd_kcontrol *kcontrol,
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
if (!spec->automute)
|
if (!spec->automute)
|
||||||
val = 0;
|
val = 0;
|
||||||
else if (!spec->automute_lines)
|
else if (!spec->automute_hp_lo || !spec->automute_lines)
|
||||||
val = 1;
|
val = 1;
|
||||||
else
|
else
|
||||||
val = 2;
|
val = 2;
|
||||||
|
@ -824,7 +824,8 @@ static int alc_automute_mode_put(struct snd_kcontrol *kcontrol,
|
||||||
spec->automute = 0;
|
spec->automute = 0;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (spec->automute && !spec->automute_lines)
|
if (spec->automute &&
|
||||||
|
(!spec->automute_hp_lo || !spec->automute_lines))
|
||||||
return 0;
|
return 0;
|
||||||
spec->automute = 1;
|
spec->automute = 1;
|
||||||
spec->automute_lines = 0;
|
spec->automute_lines = 0;
|
||||||
|
|
|
@ -6573,6 +6573,7 @@ static const struct hda_codec_preset snd_hda_preset_sigmatel[] = {
|
||||||
{ .id = 0x111d76cc, .name = "92HD89F3", .patch = patch_stac92hd73xx },
|
{ .id = 0x111d76cc, .name = "92HD89F3", .patch = patch_stac92hd73xx },
|
||||||
{ .id = 0x111d76cd, .name = "92HD89F2", .patch = patch_stac92hd73xx },
|
{ .id = 0x111d76cd, .name = "92HD89F2", .patch = patch_stac92hd73xx },
|
||||||
{ .id = 0x111d76ce, .name = "92HD89F1", .patch = patch_stac92hd73xx },
|
{ .id = 0x111d76ce, .name = "92HD89F1", .patch = patch_stac92hd73xx },
|
||||||
|
{ .id = 0x111d76df, .name = "92HD93BXX", .patch = patch_stac92hd83xxx},
|
||||||
{ .id = 0x111d76e0, .name = "92HD91BXX", .patch = patch_stac92hd83xxx},
|
{ .id = 0x111d76e0, .name = "92HD91BXX", .patch = patch_stac92hd83xxx},
|
||||||
{ .id = 0x111d76e3, .name = "92HD98BXX", .patch = patch_stac92hd83xxx},
|
{ .id = 0x111d76e3, .name = "92HD98BXX", .patch = patch_stac92hd83xxx},
|
||||||
{ .id = 0x111d76e5, .name = "92HD99BXX", .patch = patch_stac92hd83xxx},
|
{ .id = 0x111d76e5, .name = "92HD99BXX", .patch = patch_stac92hd83xxx},
|
||||||
|
|
Loading…
Reference in New Issue