• Takashi Iwai's avatar
    ALSA: hda - Keep powering up ADCs on Cirrus codecs · 0df9987a
    Takashi Iwai authored
    commit de3df8a9 upstream.
    
    Although one weird behavior about the input path (inconsistent D0/D3
    switch) on Cirrus CS420x codecs was fixed in the previous commit,
    there is still an issue on some Mac machines: the capture stream
    stalls when switching the ADCs on the fly.  More badly, this keeps
    stuck until the next reboot.
    
    The dynamic ADC switching is already a bit fragile and assuming
    optimistically that the chip accepts the frequent power changes.  On
    Cirrus codecs, this doesn't seem applicable.
    
    As a quick workaround, we pin down the ADCs to keep up in D0 when
    spec->dyn_adc_switch is set.  In this way, the ADCs are kept up only
    for the system that were confirmed to be broken.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=116171Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0df9987a
patch_cirrus.c 32.8 KB