From: Reimundo Heluani <rheluani@gmail.com>
To: alsa-devel <alsa-devel@alsa-project.org>
Subject: Re: Macbook Air 2,1 - no mic nor main speakers
Date: Mon, 22 Feb 2010 09:58:44 -0800 [thread overview]
Message-ID: <1266861524.5086.7.camel@vino> (raw)
In-Reply-To: <s5h4ol94rwn.wl%tiwai@suse.de>
On Mon, 2010-02-22 at 09:05 +0100, Takashi Iwai wrote:
> At Mon, 22 Feb 2010 00:02:13 -0800,
> >
> > The headphones are in 0x14 but I couldn't get them to shut the main
> > speakers off yet when the hp jack is connected. As soon as I understand
> > how the other examples in patch_realtek.c work and get this working I'll
> > send you a working patch.
>
> Then check rather whether the pin 0x18 is really the right pin for the
> speaker output. This can be checked easily via hda-verb or so.
> The speaker can be 0x15 and/or 0x1a, instead.
The patch below is the best I can do without loosing my day job :) with
this patch I get audio on main speaker letting it be 0x18. At the same
time if I put 0x14 to be the hp pin I get it to mute the main speaker
whenever I plug the jack, but I can't get audio from the hp.
The funny thing is that in mbp3 mode I get audio from hp but not from
main speaker. Interestingly enough, if I start with mbp3 mode and run
hda-analyzer, the switching pin_out in 0x14 decides whether or not
there's output in the hp and switching pin_out in 0x18 decides wether or
not there's output in the main speaker.
Cheers,
R.
--- patch_realtek.c.orig 2010-02-22 08:40:29.000000000 -0800
+++ patch_realtek.c 2010-02-22 09:49:13.000000000 -0800
@@ -205,6 +205,7 @@
ALC882_ASUS_A7J,
ALC882_ASUS_A7M,
ALC885_MACPRO,
+ ALC885_MBA21,
ALC885_MBP3,
ALC885_MB5,
ALC885_IMAC24,
@@ -6749,6 +6750,12 @@
{ 8, alc882_sixstack_ch8_init },
};
+/* Macbook Air I have no clue how it works yet */
+
+static struct hda_channel_mode alc885_mba21_ch_modes[1] = {
+ { 2, NULL },
+};
+
/*
* macbook pro ALC885 can switch LineIn to LineOut without losing Mic
*/
@@ -7021,6 +7028,16 @@
};
+
+static struct snd_kcontrol_new alc885_mba21_mixer[] = {
+ HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00,
HDA_OUTPUT),
+ HDA_BIND_MUTE ("Speaker Playback Switch", 0x0c, 0x02,
HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0e, 0x00,
HDA_OUTPUT),
+ HDA_BIND_MUTE ("Headphone Playback Switch", 0x0e, 0x02,
HDA_OUTPUT),
+ { }
+};
+
+
static struct snd_kcontrol_new alc885_mbp3_mixer[] = {
HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
HDA_BIND_MUTE ("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT),
@@ -7445,6 +7462,29 @@
{ }
};
+static struct hda_verb alc885_mba21_init_verbs[] = {
+ /*Internal Speaker Mixer*/
+ {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
+ {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+ {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
+ /*Internal Speaker Pin*/
+ {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, (PIN_OUT |
AC_PINCTL_VREF_50) },
+ {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x18, AC_VERB_SET_CONNECT_SEL, 0x00},
+ /* HP mixer */
+ {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
+ {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
+ {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
+ /* HP Pin: output 0 (0x0e) */
+ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
+ {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x14, AC_VERB_SET_CONNECT_SEL, 0x02},
+ {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
+
+ { }
+ };
+
+
/* Macbook Pro rev3 */
static struct hda_verb alc885_mbp3_init_verbs[] = {
/* Front mixer: unmute input/output amp left and right (volume = 0) */
@@ -7547,6 +7587,17 @@
spec->autocfg.speaker_pins[1] = 0x1a;
}
+/* Macbook Air don't know how this works */
+static void alc885_mba21_setup (struct hda_codec *codec)
+{
+ struct alc_spec *spec = codec->spec;
+
+ spec->autocfg.hp_pins[0] = 0x14;
+ spec->autocfg.speaker_pins[0] = 0x18;
+}
+
+
+
static void alc885_mbp3_setup(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
@@ -8738,6 +8789,7 @@
[ALC882_ASUS_A7M] = "asus-a7m",
[ALC885_MACPRO] = "macpro",
[ALC885_MB5] = "mb5",
+ [ALC885_MBA21] = "mba21",
[ALC885_MBP3] = "mbp3",
[ALC885_IMAC24] = "imac24",
[ALC883_3ST_2ch_DIG] = "3stack-2ch-dig",
@@ -8970,6 +9022,21 @@
.input_mux = &alc882_capture_source,
.dig_out_nid = ALC882_DIGOUT_NID,
},
+ [ALC885_MBA21] = {
+ .mixers = { alc885_mba21_mixer },
+ .init_verbs = { alc885_mba21_init_verbs,
alc880_gpio1_init_verbs },
+ .num_dacs = 2,
+ .dac_nids = alc882_dac_nids,
+ //.hp_nid = 0x04,
+ .channel_mode = alc885_mba21_ch_modes,
+ .num_channel_mode = ARRAY_SIZE(alc885_mba21_ch_modes),
+ .input_mux = &alc882_capture_source,
+ //.dig_out_nid = ALC882_DIGOUT_NID,
+ //.dig_in_nid = ALC882_DIGIN_NID,
+ .unsol_event = alc_automute_amp_unsol_event,
+ .setup = alc885_mba21_setup,
+ .init_hook = alc_automute_amp,
+ },
[ALC885_MBP3] = {
.mixers = { alc885_mbp3_mixer, alc882_chmode_mixer },
.init_verbs = { alc885_mbp3_init_verbs,
next prev parent reply other threads:[~2010-02-22 17:58 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-06 18:27 Macbook Air 2,1 - no mic nor main speakers Reimundo Heluani
2010-02-22 6:30 ` Reimundo Heluani
2010-02-22 7:55 ` Takashi Iwai
2010-02-22 8:02 ` Reimundo Heluani
2010-02-22 8:05 ` Takashi Iwai
2010-02-22 17:58 ` Reimundo Heluani [this message]
2010-02-23 2:12 ` Reimundo Heluani
2010-02-23 7:18 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1266861524.5086.7.camel@vino \
--to=rheluani@gmail.com \
--cc=alsa-devel@alsa-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).