[alsa-devel] [PATCH]alsa:patch_realtek.c Add support for the MacBookAir1, 1

Takashi Iwai tiwai at suse.de
Fri Jul 30 20:31:56 CEST 2010


Justin,

At Tue,  8 Jun 2010 10:45:40 -0700,
Justin P. Mattock wrote:
> 
> This patch adds support for the MacBookAir1,1 
> Note:I do not have this machine on hand only the
> codec#0 file for the machine.. located at
> https://bugs.launchpad.net/mactel-support/+bug/268301
> So please test if you have the appropriate equipment,
> and report any issues to the alsa devel list
> (alsa-devel at alsa-project.org).
> 
>  Signed-off-by: Justin P. Mattock <justinmattock at gmail.com>

Any positive/negative feedbacks to your patches?
I'd like to gather patches for 2.6.36 before too late.


thanks,

Takashi

> ---
>  Documentation/sound/alsa/HD-Audio-Models.txt |    1 +
>  sound/pci/hda/patch_realtek.c                |   59 +++++++++++++++++++++++++-
>  2 files changed, 58 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
> index 1d38b0d..d3838b5 100644
> --- a/Documentation/sound/alsa/HD-Audio-Models.txt
> +++ b/Documentation/sound/alsa/HD-Audio-Models.txt
> @@ -125,6 +125,7 @@ ALC882/883/885/888/889
>    macpro	MacPro support
>    mb5		Macbook 5,1
>    macmini3	Macmini 3,1
> +  mba11		MacBook Air 1,1
>    mba21		Macbook Air 2,1
>    mbp3		Macbook Pro rev3
>    imac24	iMac 24'' with jack detection
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index fc767b6..1dcf78c 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -209,6 +209,7 @@ enum {
>  	ALC882_ASUS_A7J,
>  	ALC882_ASUS_A7M,
>  	ALC885_MACPRO,
> +	ALC885_MBA11,
>  	ALC885_MBA21,
>  	ALC885_MBP3,
>  	ALC885_MB5,
> @@ -7444,6 +7445,13 @@ static struct snd_kcontrol_new alc885_mba21_mixer[] = {
>       { }
>  };
>  
> +/* MacBookAir1,1 not sure what/where things are(dont have the machine). */
> +
> +static struct snd_kcontrol_new alc885_mba11_mixer[] = {
> +      HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
> +      HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 0x02, HDA_OUTPUT),
> +     { }
> +};
>  
>  static struct snd_kcontrol_new alc885_mbp3_mixer[] = {
>  	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
> @@ -7929,6 +7937,40 @@ static struct hda_verb alc885_mba21_init_verbs[] = {
>  	{ }
>   };
>  
> +static struct hda_verb alc885_mba11_init_verbs[] = {
> +	/*Internal and HP 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)},
> +	/* Main Speaker */	
> +	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, (PIN_OUT | AC_PINCTL_VREF_50) },
> +	{0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> +	{0x14, AC_VERB_SET_CONNECT_SEL, 0x00},
> +	/* HP jack */
> +	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4},
> +	{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> +	{0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
> +	{0x15, AC_VERB_SET_UNSOLICITED_ENABLE, (ALC880_HP_EVENT | AC_USRSP_EN)},
> +	/* FIXME: Line in? (as well as  the mic). */
> +	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, AC_PINCTL_VREF_50},
> +	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
> +	/* 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In */
> +	{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
> +	{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
> +	{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
> +	{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
> +	/* 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In */
> +	{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
> +	{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
> +	{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
> +	{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
> +	/* 0x24 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In */
> +	{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
> +	{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
> +	{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
> +	{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
> +	{ }
> +};
>  
>  /* Macbook Pro rev3 */
>  static struct hda_verb alc885_mbp3_init_verbs[] = {
> @@ -9298,6 +9340,7 @@ static const char *alc882_models[ALC882_MODEL_LAST] = {
>  	[ALC885_MACPRO]		= "macpro",
>  	[ALC885_MB5]		= "mb5",
>  	[ALC885_MACMINI3]	= "macmini3",
> +	[ALC885_MBA11]		= "mba11",
>  	[ALC885_MBA21]		= "mba21",
>  	[ALC885_MBP3]		= "mbp3",
>  	[ALC885_IMAC24]		= "imac24",
> @@ -9478,7 +9521,7 @@ static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = {
>  	SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC885_MBP3),
>  	SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889A_MB31),
>  	SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_ASUS_A7M),
> -	SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC885_MBP3),
> +	SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC885_MBA11),
>  	SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC885_MBA21),
>  	SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889A_MB31),
>  	SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3),
> @@ -9542,7 +9585,19 @@ static struct alc_config_preset alc882_presets[] = {
>  		.input_mux = &alc882_capture_source,
>  		.dig_out_nid = ALC882_DIGOUT_NID,
>  	},
> -	   [ALC885_MBA21] = {
> +	[ALC885_MBA11] = {
> +		.mixers = { alc885_mba11_mixer },
> +		.init_verbs = { alc885_mba11_init_verbs, alc880_gpio1_init_verbs },
> +		.num_dacs = 2,
> +		.dac_nids = alc882_dac_nids,
> +		.channel_mode = alc885_mba21_ch_modes,
> +		.num_channel_mode = ARRAY_SIZE(alc885_mba21_ch_modes),
> +		.input_mux = &alc882_capture_source,
> +		.unsol_event = alc_automute_amp_unsol_event,
> +		.setup = alc885_mbp3_setup,
> +		.init_hook = alc_automute_amp,
> +	},
> +	[ALC885_MBA21] = {
>  			.mixers = { alc885_mba21_mixer },
>  			.init_verbs = { alc885_mba21_init_verbs, alc880_gpio1_init_verbs },
>  			.num_dacs = 2,
> -- 
> 1.7.1.rc1.21.gf3bd6
> 


More information about the Alsa-devel mailing list