Comment 2 for bug 1446517

Revision history for this message
Takashi Iwai (tiwai) wrote : Re: [PATCH] ALSA: hda - fix "num_steps = 0" error on ALC256

At Tue, 21 Apr 2015 10:48:46 +0200,
David Henningsson wrote:
>
> 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).
>
> Cc: <email address hidden>
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1446517
> Signed-off-by: David Henningsson <email address hidden>

Applied, thanks.

Takashi

> ---
> sound/pci/hda/patch_realtek.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 231d0e4..03975d03 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -5664,6 +5664,7 @@ static int patch_alc269(struct hda_codec *codec)
> break;
> case 0x10ec0256:
> spec->codec_variant = ALC269_TYPE_ALC256;
> + spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */
> break;
> }
>
> @@ -5677,8 +5678,8 @@ static int patch_alc269(struct hda_codec *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;
> codec->patch_ops.stream_pm = snd_hda_gen_stream_pm;
> --
> 1.9.1
>