• A
    [ALSA] cs5535audio: fix PRD register save/restore power management race · 222fa0b0
    Andres Salomon 提交于
    In the suspend path, we currently save the PRD registers and then disable DMA.
    This is racy; the sound hardware might update the PRD register as it finishes
    processing some DMA pages between when we've saved the PRD registers and
    when DMA actually gets disabled.  Furthermore, we actively check whether or
    not DMA is enabled before saving PRD registers; there's no reason to do that,
    as the PRD registers should not update when we twiddle the ACC_BM[x]_CMD
    register(s).  Worst case, we save the PRD registers twice; even powering
    down the ACC shouldn't mess with the PRD registers (according to the 5536
    data sheet, section 5.3.7.4, power-down procedure).  This patch reworks
    all that to first disable DMA, and then save PRD registers.
    Signed-off-by: NAndres Salomon <dilinger@debian.org>
    Signed-off-by: NTakashi Iwai <tiwai@suse.de>
    Signed-off-by: NJaroslav Kysela <perex@suse.cz>
    222fa0b0
cs5535audio_pm.c 3.7 KB