| From 7d1b6e29327428993ba568bdd8c66734070f45e0 Mon Sep 17 00:00:00 2001 |
| From: David Henningsson <david.henningsson@canonical.com> |
| Date: Tue, 21 Apr 2015 10:48:46 +0200 |
| Subject: ALSA: hda - fix "num_steps = 0" error on ALC256 |
| |
| From: David Henningsson <david.henningsson@canonical.com> |
| |
| commit 7d1b6e29327428993ba568bdd8c66734070f45e0 upstream. |
| |
| The ALC256 does not have a mixer nid at 0x0b, and there's no |
| loopback path (the output pins are directly connected to the DACs). |
| |
| This commit fixes an "num_steps = 0 for NID=0xb (ctl = Beep Playback Volume)" |
| error (and as a result, problems with amixer/alsamixer). |
| |
| If there's pcbeep functionality, it certainly isn't controlled by setting an |
| amp on 0x0b, so disable beep functionality (at least for now). |
| |
| BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1446517 |
| Signed-off-by: David Henningsson <david.henningsson@canonical.com> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_realtek.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -5565,6 +5565,7 @@ static int patch_alc269(struct hda_codec |
| break; |
| case 0x10ec0256: |
| spec->codec_variant = ALC269_TYPE_ALC256; |
| + spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */ |
| break; |
| } |
| |
| @@ -5578,8 +5579,8 @@ static int patch_alc269(struct hda_codec |
| if (err < 0) |
| goto error; |
| |
| - if (!spec->gen.no_analog && spec->gen.beep_nid) |
| - set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT); |
| + if (!spec->gen.no_analog && spec->gen.beep_nid && spec->gen.mixer_nid) |
| + set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT); |
| |
| codec->patch_ops = alc_patch_ops; |
| #ifdef CONFIG_PM |