From c577ef82d5506a2fac682f36a5b94e2fb222ff85 Mon Sep 17 00:00:00 2001 From: Stelian Pop Date: Thu, 30 Jul 2009 14:44:27 +0200 Subject: [PATCH] --- yaml --- r: 157832 b: refs/heads/master c: 3a38516750e176a18f76d605b401fbab2c72d648 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/pci/hda/patch_cirrus.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 436ad12e4760..a9cb861e12fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 63b2413b2ff446e30286c2bd775fd10b12d188c6 +refs/heads/master: 3a38516750e176a18f76d605b401fbab2c72d648 diff --git a/trunk/sound/pci/hda/patch_cirrus.c b/trunk/sound/pci/hda/patch_cirrus.c index f5527380a245..8ba306856d38 100644 --- a/trunk/sound/pci/hda/patch_cirrus.c +++ b/trunk/sound/pci/hda/patch_cirrus.c @@ -832,6 +832,11 @@ static void cs_automute(struct hda_codec *codec) AC_VERB_SET_PIN_WIDGET_CONTROL, hp_present ? 0 : PIN_OUT); } + if (spec->board_config == CS420X_MBP55) { + unsigned int gpio = hp_present ? 0x02 : 0x08; + snd_hda_codec_write(codec, 0x01, 0, + AC_VERB_SET_GPIO_DATA, gpio); + } } static void cs_automic(struct hda_codec *codec) @@ -1133,10 +1138,10 @@ static int patch_cs420x(struct hda_codec *codec) switch (spec->board_config) { case CS420X_MBP55: - /* GPIO3 = EAPD? */ - spec->gpio_mask = 0x08; - spec->gpio_dir = 0x08; - spec->gpio_data = 0x08; + /* GPIO1 = headphones */ + /* GPIO3 = speakers */ + spec->gpio_mask = 0x0a; + spec->gpio_dir = 0x0a; break; }