ALSA: hda - Fix aamix activation with loopback control on VIA codecs
authorTakashi Iwai <tiwai@suse.de>
Tue, 16 Apr 2013 10:31:05 +0000 (12:31 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 16 Apr 2013 10:38:38 +0000 (12:38 +0200)
commit65033cc8d5ffd9b754e04da4be9cd1e8b61eeaff
treea7fe7008769a45b453145d1e5a4e72672c2c52d2
parentae03bbb8f93b9e2c85a58e7476b87f7fb1c063ab
ALSA: hda - Fix aamix activation with loopback control on VIA codecs

When we have a loopback mixer control, this should manage the state
whether the output paths include the aamix or not.  But the current
code blindly initializes the output paths with aamix = true, thus the
aamix is enabled unless the loopback mixer control is changed.

Also, update_aamix_paths() called by the loopback mixer control put
callback invokes snd_hda_activate_path() with aamix = true even for
disabling the mixing.  This leaves the aamix path even though the
loopback control is turned off.

This patch fixes these issues:
- Introduced aamix_default() helper to indicate whether with_aamix is
  true or false as default
- Fix the argument in update_aamix_paths() for disabling loopback

Reported-by: Lydia Wang <LydiaWang@viatech.com.cn>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_generic.c