• Takashi Iwai's avatar
    ALSA: hda - Implement loopback control switch for Realtek and other codecs · e7fdd527
    Takashi Iwai authored
    Many codecs, typically found on Realtek codecs, have the analog
    loopback path merged to the secondary input of the middle of the
    output paths.  Currently, we don't offer the dynamic switching in such
    configuration but let each loopback path mute by itself.
    
    This should work well in theory, but in reality, we often see that
    such a dead loopback path causes some background noises even if all
    the elements get muted.  Such a problem has been fixed by adding the
    quirk accordingly to disable aamix, and it's the right fix, per se.
    The only problem is that it's not so trivial to achieve it; user needs
    to pass a hint string via patch module option or sysfs.
    
    This patch gives a bit improvement on the situation: it adds "Loopback
    Mixing" control element for such codecs like other codecs (e.g. IDT or
    VIA codecs) with the individual loopback paths.  User can turn on/off
    the loopback path simply via a mixer app.
    
    For keeping the compatibility, the loopback is still enabled on these
    codecs.  But user can try to turn it off if experiencing a suspicious
    background or click noise on the fly, then build a static fixup later
    once after the problem is addressed.
    
    Other than the addition of the loopback enable/disablement control,
    there should be no changes.
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    e7fdd527
hda_generic.c 159 KB