ALSA: hda - Allow one chance for zero NID in connection list
The commit [2e9bf24: ALSA: hda_codec: Check for invalid zero connections] trims the whole connection list when an invalid value is reported by the hardware. But some codecs (at least AD1986A) may give a zero NID in the middle of the connection list, so dropping the whole list isn't good for such cases.
ALSA: hda - Increase the max depth of widget connections
Old codecs like AD1986A tend to have long paths as they were just made to be the way like AC97. The current max depth 5 can be too short for such devices.
[45722.684940] hda_codec: invalid CONNECT_LIST verb 12[2]:2100
[45812.811552] hda_codec: invalid CONNECT_LIST verb 12[2]:2100
Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Control: name="Capture Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Control: name="Capture Source", index=0, device=0
Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
Amp-Out vals: [0x81 0x81]
Connection: 0
post the output of alsa-info.sh
you need two patches
https:/ /git.kernel. org/cgit/ linux/kernel/ git/tiwai/ sound.git/ commit/ ?id=5fdaecdb0d8 fd8131d2adb9ca0 ae2b77707b36ca
ALSA: hda - Allow one chance for zero NID in connection list
The commit [2e9bf24: ALSA: hda_codec: Check for invalid zero connections] trims the whole connection list when an invalid value is reported by the hardware. But some codecs (at least AD1986A) may give a zero NID in the middle of the connection list, so dropping the whole list isn't good for such cases.
https:/ /git.kernel. org/cgit/ linux/kernel/ git/tiwai/ sound.git/ commit/ ?id=d94ddd85b1e 044c030d62c62f9 5ae700776888f8
ALSA: hda - Increase the max depth of widget connections
Old codecs like AD1986A tend to have long paths as they were just made to be the way like AC97. The current max depth 5 can be too short for such devices.