[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