]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ALSA: hda - Don't access stereo amps for mono channel widgets
authorTakashi Iwai <tiwai@suse.de>
Thu, 12 Mar 2015 07:30:11 +0000 (08:30 +0100)
committerJiri Slaby <jslaby@suse.cz>
Thu, 9 Apr 2015 11:14:09 +0000 (13:14 +0200)
commitcf0a9563e60a79def198736926eced80aa7725d4
treec2ae1f1905e82b883fe3e71e6c145b4a7280b8ca
parentc3e889457e155a5007726dc3d70b96e12f7e64cf
ALSA: hda - Don't access stereo amps for mono channel widgets

commit ef403edb75580a3ec5d155f5de82155f0419c621 upstream.

The current HDA generic parser initializes / modifies the amp values
always in stereo, but this seems causing the problem on ALC3229 codec
that has a few mono channel widgets: namely, these mono widgets react
to actions for both channels equally.

In the driver code, we do care the mono channel and create a control
only for the left channel (as defined in HD-audio spec) for such a
node.  When the control is updated, only the left channel value is
changed.  However, in the resume, the right channel value is also
restored from the initial value we took as stereo, and this overwrites
the left channel value.  This ends up being the silent output as the
right channel has been never touched and remains muted.

This patch covers the places where unconditional stereo amp accesses
are done and converts to the conditional accesses.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=94581
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
sound/pci/hda/hda_generic.c