[alsa-devel] [PATCH 1/3] ALSA: HDA: Create mixers on ALC887

Takashi Iwai tiwai at suse.de
Mon Nov 22 07:52:23 CET 2010


At Fri, 19 Nov 2010 10:28:35 +0100,
David Henningsson wrote:
> 
> [1  <text/plain; ISO-8859-1 (7bit)>]
> BugLink: http://launchpad.net/bugs/669092
> 
> ALC887 does not have any volume control ability on the mixer NIDs,
> so put the volume controls on the dac NIDs instead. Without this
> patch, ALC887 users cannot use alsamixer at all.
> 
> Cc: stable at kernel.org
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>

OK, this one seems necessary independently from other patches,
so I applied this one now for 2.6.37.


thanks,

Takashi

> 
> -- 
> David Henningsson, Canonical Ltd.
> http://launchpad.net/~diwic
> [2 0001-Create-mixers-on-ALC887.patch <text/x-patch (7bit)>]
> >From 2418add610811b5763d96f8811ad5d303516bfa3 Mon Sep 17 00:00:00 2001
> From: David Henningsson <david.henningsson at canonical.com>
> Date: Tue, 9 Nov 2010 14:35:30 +0100
> Subject: [PATCH 1/3] ALSA: HDA: Create mixers on ALC887
> 
> BugLink: http://launchpad.net/bugs/669092
> 
> ALC887 does not have any volume control ability on the mixer NIDs, 
> so put the volume controls on the dac NIDs instead. Without this 
> patch, ALC887 users cannot use alsamixer at all.
> 
> Cc: stable at kernel.org
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> ---
>  sound/pci/hda/patch_realtek.c |   10 ++++++++--
>  1 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 788ac4b..ce4017e 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -10816,6 +10816,9 @@ static int alc_auto_add_mic_boost(struct hda_codec *codec)
>  	return 0;
>  }
>  
> +static int alc861vd_auto_create_multi_out_ctls(struct alc_spec *spec,
> +					     const struct auto_pin_cfg *cfg);
> +
>  /* almost identical with ALC880 parser... */
>  static int alc882_parse_auto_config(struct hda_codec *codec)
>  {
> @@ -10833,7 +10836,10 @@ static int alc882_parse_auto_config(struct hda_codec *codec)
>  	err = alc880_auto_fill_dac_nids(spec, &spec->autocfg);
>  	if (err < 0)
>  		return err;
> -	err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg);
> +	if (codec->vendor_id == 0x10ec0887)
> +		err = alc861vd_auto_create_multi_out_ctls(spec, &spec->autocfg);
> +	else
> +		err = alc880_auto_create_multi_out_ctls(spec, &spec->autocfg);
>  	if (err < 0)
>  		return err;
>  	err = alc880_auto_create_extra_out(spec, spec->autocfg.hp_pins[0],
> @@ -16955,7 +16961,7 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec)
>  #define alc861vd_idx_to_mixer_switch(nid)	((nid) + 0x0c)
>  
>  /* add playback controls from the parsed DAC table */
> -/* Based on ALC880 version. But ALC861VD has separate,
> +/* Based on ALC880 version. But ALC861VD and ALC887 have separate,
>   * different NIDs for mute/unmute switch and volume control */
>  static int alc861vd_auto_create_multi_out_ctls(struct alc_spec *spec,
>  					     const struct auto_pin_cfg *cfg)
> -- 
> 1.7.1
> 


More information about the Alsa-devel mailing list