ALSA: hda - More generic auto-mic switching for Realtek codecs
authorTakashi Iwai <tiwai@suse.de>
Thu, 29 Nov 2012 08:56:50 +0000 (09:56 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sat, 12 Jan 2013 07:30:50 +0000 (08:30 +0100)
commitab16c6dd79389761eca1366d809a002b44b7f960
treed2437306cfea9900d6182ff7cb8540a68d46c0b7
parent5ec16d12c896b6ea710ac74e68e2f431c80d1c62
ALSA: hda - More generic auto-mic switching for Realtek codecs

This patch extends the capability of the auto-mic feature.
Instead of limiting the automatic input-source selection only to the
mics (internal, external and dock mics), allow it for generic inputs,
e.g. switching between the rear line-in and the front mic.

The logic is to check the attribute and location of input pins, and
enable the automatic selection feature only if all such pins are in
different locations (e.g. internal, front, rear, etc) and line-in or
mic pins.  That is, if multiple input pins are assigned to a single
location, the feature isn't enabled because we don't know the
priority.

(You may wonder why this restriction doesn't exist for the headphone
 automute.  The reason is that the output case is different from the
 input: the input source is an exclusive selection while the output
 can be multiplexed.)

Note that, for avoiding regressions, the line-in auto switching
feature isn't activated as default.  It has to be set explicitly via
spec->line_in_auto_switch flag in a fixup code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c