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)
committerTakashi Iwai <tiwai@suse.de>
Thu, 28 Nov 2013 10:32:00 +0000 (11:32 +0100)
commit2ded3e5b61d61d0bc90bebb8004db6184c7db6eb
tree16ab06590f0d03e6fe66cd811226a6c18de0a636
parent16c0cefe8951b2c4b824fd06011ac1b359b1ab3b
ALSA: hda - Check leaf nodes to find aamix amps

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
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_generic.c