• Takashi Iwai's avatar
    ALSA: hda - Fix regression of HD-audio controller fallback modes · 901077ae
    Takashi Iwai authored
    commit a1f3f1ca upstream.
    
    The commit [63e51fd7: ALSA: hda - Don't take unresponsive D3
    transition too serious] introduced a conditional fallback behavior to
    the HD-audio controller depending on the flag set.  However, it
    introduced a silly bug, too, that the flag was evaluated in a reverse
    way.  This resulted in a regression of HD-audio controller driver
    where it can't go to the fallback mode at communication errors.
    
    Unfortunately (or fortunately?) this didn't come up until recently
    because the affected code path is an error handling that happens only
    on an unstable hardware chip.  Most of recent chips work stably, thus
    they didn't hit this problem.  Now, we've got a regression report with
    a VIA chip, and this seems indeed requiring the fallback to the
    polling mode, and finally the bug was revealed.
    
    The fix is a oneliner to remove the wrong logical NOT in the check.
    (Lesson learned - be careful about double negation.)
    
    The bug should be backported to stable, but the patch won't be
    applicable to 3.13 or earlier because of the code splits.  The stable
    fix patches for earlier kernels will be posted later manually.
    
    [... and this is the manual patch -- tiwai]
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=94021
    Fixes: 63e51fd7 ('ALSA: hda - Don't take unresponsive D3 transition too serious')
    Cc: <stable@vger.kernel.org> # v3.11-3.13
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    901077ae
hda_intel.c 115 KB