[alsa-devel] [PATCH] Acer Inspire 6530G model for Realtek ALC888

Takashi Iwai tiwai at suse.de
Sun Jun 21 11:03:19 CEST 2009


At Sun, 21 Jun 2009 00:40:10 +0100 (BST),
Tony Vroon wrote:
> 
> The selected 4930G model seemed to keep the subwoofer 'tuba' 
> function from operating correctly. Removing the existing PCI 
> ID match made this work again, but it was mapped to 'Side' 
> instead of to LFE as one would expect.
> This attempts to enable all functionality and keep the amount 
> of available mixer sliders low. Any slider that had no audible 
> effect on the output audio has been removed, and as such EAPD 
> is not currently enabled.
> 
> Signed-off-by: Tony Vroon <tony at linx.net>

Thanks, applied now.


Takashi

> 
> --- linux-2.6.30-git14/sound/pci/hda/patch_realtek.c.orig	2009-06-20 21:55:53.000000000 +0100
> +++ linux-2.6.30-git14/sound/pci/hda/patch_realtek.c	2009-06-21 00:19:53.000000000 +0100
> @@ -224,6 +224,7 @@
>  	ALC883_ACER,
>  	ALC883_ACER_ASPIRE,
>  	ALC888_ACER_ASPIRE_4930G,
> +	ALC888_ACER_ASPIRE_6530G,
>  	ALC888_ACER_ASPIRE_8930G,
>  	ALC883_MEDION,
>  	ALC883_MEDION_MD2,
> @@ -1471,6 +1472,25 @@
>  };
>  
>  /*
> + * ALC888 Acer Aspire 6530G model
> + */
> +
> +static struct hda_verb alc888_acer_aspire_6530g_verbs[] = {
> +/* Bias voltage on for external mic port */
> +	{0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN | PIN_VREF80},
> +/* Enable unsolicited event for HP jack */
> +	{0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
> +/* Enable speaker output */
> +	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
> +	{0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> +/* Enable headphone output */
> +	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | PIN_HP},
> +	{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> +	{0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
> +	{ }
> +};
> +
> +/*
>   * ALC889 Acer Aspire 8930G model
>   */
>  
> @@ -1544,6 +1564,25 @@
>  	}
>  };
>  
> +static struct hda_input_mux alc888_acer_aspire_6530_sources[2] = {
> +	/* Interal mic only available on one ADC */
> +	{
> +		.num_items = 3,
> +		.items = {
> +			{ "Ext Mic", 0x0 },
> +			{ "CD", 0x4 },
> +			{ "Int Mic", 0xb },
> +		},
> +	},
> +	{
> +		.num_items = 2,
> +		.items = {
> +			{ "Ext Mic", 0x0 },
> +			{ "CD", 0x4 },
> +		},
> +	}
> +};
> +
>  static struct hda_input_mux alc889_capture_sources[3] = {
>  	/* Digital mic only available on first "ADC" */
>  	{
> @@ -8153,6 +8192,19 @@
>  	{ } /* end */
>  };
>  
> +static struct snd_kcontrol_new alc888_acer_aspire_6530_mixer[] = {
> +	HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
> +	HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT),
> +	HDA_CODEC_VOLUME("LFE Playback Volume", 0x0f, 0x0, HDA_OUTPUT),
> +	HDA_BIND_MUTE("LFE Playback Switch", 0x0f, 2, HDA_INPUT),
> +	HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT),
> +	HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT),
> +	HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
> +	HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT),
> +	HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
> +	{ } /* end */
> +};
> +
>  static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = {
>  	HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
>  	HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT),
> @@ -9021,7 +9073,7 @@
>  	SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G",
>  		ALC888_ACER_ASPIRE_4930G),
>  	SND_PCI_QUIRK(0x1025, 0x0166, "Acer Aspire 6530G",
> -		ALC888_ACER_ASPIRE_4930G),
> +		ALC888_ACER_ASPIRE_6530G),
>  	/* default Acer -- disabled as it causes more problems.
>  	 *    model=auto should work fine now
>  	 */
> @@ -9255,6 +9307,24 @@
>  		.unsol_event = alc_automute_amp_unsol_event,
>  		.init_hook = alc888_acer_aspire_4930g_init_hook,
>  	},
> +	[ALC888_ACER_ASPIRE_6530G] = {
> +		.mixers = { alc888_acer_aspire_6530_mixer },
> +		.init_verbs = { alc883_init_verbs, alc880_gpio1_init_verbs,
> +				alc888_acer_aspire_6530g_verbs },
> +		.num_dacs = ARRAY_SIZE(alc883_dac_nids),
> +		.dac_nids = alc883_dac_nids,
> +		.num_adc_nids = ARRAY_SIZE(alc883_adc_nids_rev),
> +		.adc_nids = alc883_adc_nids_rev,
> +		.capsrc_nids = alc883_capsrc_nids_rev,
> +		.dig_out_nid = ALC883_DIGOUT_NID,
> +		.num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
> +		.channel_mode = alc883_3ST_2ch_modes,
> +		.num_mux_defs =
> +			ARRAY_SIZE(alc888_2_capture_sources),
> +		.input_mux = alc888_acer_aspire_6530_sources,
> +		.unsol_event = alc_automute_amp_unsol_event,
> +		.init_hook = alc888_acer_aspire_4930g_init_hook,
> +	},
>  	[ALC888_ACER_ASPIRE_8930G] = {
>  		.mixers = { alc888_base_mixer,
>  				alc883_chmode_mixer },
> 


More information about the Alsa-devel mailing list