summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai2011-06-10 15:28:15 +0200
committerTakashi Iwai2011-06-10 15:28:15 +0200
commitc0a20263dbe1fc5f394913d71063c9cd8282c5db (patch)
treec41815b92ee389fb0185e94b2c9af9e7c1f6fd76
parentALSA: hda - Fix invalid unsol tag for some alc262 model quirks (diff)
downloadkernel-qcow2-linux-c0a20263dbe1fc5f394913d71063c9cd8282c5db.tar.gz
kernel-qcow2-linux-c0a20263dbe1fc5f394913d71063c9cd8282c5db.tar.xz
kernel-qcow2-linux-c0a20263dbe1fc5f394913d71063c9cd8282c5db.zip
ALSA: hda - Fix initialization of hp pins with master_mute in Realtek
Some Reatlek model quirks use master_mute bool switch for controlling the master-mute of outputs. For these cases, the initialization of HP pins/amps were forgotten during the transition to the common automute helper function in 3.0 development time, and resulted in the muted HP output as default. This patch fixes the issue by adjusting the HP output explicitly with master_mute switch. Tested-by: Michal Hocko <mhocko@suse.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_realtek.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index ca211c1cba03..43fcfbd32847 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1141,6 +1141,13 @@ static void update_speakers(struct hda_codec *codec)
struct alc_spec *spec = codec->spec;
int on;
+ /* Control HP pins/amps depending on master_mute state;
+ * in general, HP pins/amps control should be enabled in all cases,
+ * but currently set only for master_mute, just to be safe
+ */
+ do_automute(codec, ARRAY_SIZE(spec->autocfg.hp_pins),
+ spec->autocfg.hp_pins, spec->master_mute, true);
+
if (!spec->automute)
on = 0;
else
@@ -6201,11 +6208,6 @@ static const struct snd_kcontrol_new alc260_input_mixer[] = {
/* update HP, line and mono out pins according to the master switch */
static void alc260_hp_master_update(struct hda_codec *codec)
{
- struct alc_spec *spec = codec->spec;
-
- /* change HP pins */
- do_automute(codec, ARRAY_SIZE(spec->autocfg.hp_pins),
- spec->autocfg.hp_pins, spec->master_mute, true);
update_speakers(codec);
}