ALSA: hda - Check leaf nodes to find aamix amps
authorTakashi Iwai <tiwai@suse.de>
Thu, 28 Nov 2013 10:05:28 +0000 (11:05 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Dec 2013 18:57:17 +0000 (10:57 -0800)
commitfe070ad95a7f94a658273f5f359a6875ad3cd38c
tree1436bd85d2b0947582043c242c0517199e3d68a2
parent7f9bf8ad0ea7457c6f3d5c6b04fe6c7b99fec63d
ALSA: hda - Check leaf nodes to find aamix amps

commit 2ded3e5b61d61d0bc90bebb8004db6184c7db6eb upstream.

The current generic parser assumes blindly that the volume and mute
amps are found in the aamix node itself.  But on some codecs,
typically Analog Devices ones, the aamix amps are separately
implemented in each leaf node of the aamix node, and the current
driver can't establish the correct amp controls.  This is a regression
compared with the previous static quirks.

This patch extends the search for the amps to the leaf nodes for
allowing the aamix controls again on such codecs.
In this implementation, I didn't code to loop through the whole paths,
since usually one depth should suffice, and we can't search too
deeply, as it may result in the conflicting control assignments.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=65641
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/pci/hda/hda_generic.c