• Hui Wang's avatar
    ALSA: hda - let hs_mic be picked ahead of hp_mic · 6a6ca788
    Hui Wang authored
    We have a Dell AIO, there is neither internal speaker nor internal
    mic, only a multi-function audio jack on it.
    
    Users reported that after freshly installing the OS and plug
    a headset to the audio jack, the headset can't output sound. I
    reproduced this bug, at that moment, the Input Source is as below:
    Simple mixer control 'Input Source',0
      Capabilities: cenum
      Items: 'Headphone Mic' 'Headset Mic'
      Item0: 'Headphone Mic'
    
    That is because the patch_realtek will set this audio jack as mic_in
    mode if Input Source's value is hp_mic.
    
    If it is not fresh installing, this issue will not happen since the
    systemd will run alsactl restore -f /var/lib/alsa/asound.state, this
    will set the 'Input Source' according to history value.
    
    If there is internal speaker or internal mic, this issue will not
    happen since there is valid sink/source in the pulseaudio, the PA will
    set the 'Input Source' according to active_port.
    
    To fix this issue, change the parser function to let the hs_mic be
    stored ahead of hp_mic.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
    Link: https://lore.kernel.org/r/20200625083833.11264-1-hui.wang@canonical.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    6a6ca788
hda_auto_parser.c 29.3 KB