• Mark Brown's avatar
    ASoC: Refactor DAPM suspend handling · 9949788b
    Mark Brown authored
    Instead of using stream events to handle power down during suspend
    integrate the handling with the normal widget path checking by
    replacing all cases where we report a connected endpoint in a path
    with a function snd_soc_dapm_suspend_check() which looks at the ALSA
    power state for the card and reports false if we are in a D3 state.
    
    Since the core moves us into D3 prior to initating the suspend all
    power checks during suspend will cause the widgets to be powered
    down. In order to ensure that widgets are powered up on resume set
    the card to D2 at the start of resume handling (ALSA API calls
    require D0 so we are still protected against userspace access).
    Tested-by: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
    Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    9949788b
soc-dapm.c 54.3 KB