Comment 4 for bug 1446517

Revision history for this message
Hui Wang (hui.wang) wrote : Re: [PATCH] ALSA: hda - fix "num_steps = 0" error on ALC256

Hi Kailang,

Thanks for providing the patch, and we tested the patch, it fixed the
problem.

Regards,
Hui.

On 04/23/2015 03:18 PM, Kailang wrote:
> Fix Dell ALC256 headphone Mic recording issue.
> Default is pcbeep path for 0x1a input.
>
>> -----Original Message-----
>> From: Takashi Iwai [mailto:<email address hidden>]
>> Sent: Tuesday, April 21, 2015 6:03 PM
>> To: David Henningsson
>> Cc: <email address hidden>; Kailang; <email address hidden>;
>> <email address hidden>; <email address hidden>
>> Subject: 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
>>>
>> ------Please consider the environment before printing this e-mail.