• Jarkko Nikula's avatar
    ASoC: Fix power down for widgetless per-card DAPM context case · ea77b947
    Jarkko Nikula authored
    Commit 52ba67bf ("ASoC: Force all DAPM contexts into the same bias state")
    powers up all the DAPM contexts in a card if any DAPM context becomes
    active. Unfortunately power down newer happens if per-card DAPM context
    doesn't have any widgets.
    
    Reason for this is that power state of per-card DAPM context without
    widgets is never cleared and thus all the DAPM contexts remain permanently
    active. Test for widgetless calling DAPM context in dapm_power_widgets()
    doesn't work for per-card DAPM context since power change is never
    originating from widgetless per-card DAPM context.
    
    Fix this by pre-clearing power state flag of non-codec DAPM context at the
    beginning of power sequence.
    Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
    Acked-by: default avatarLiam Girdwood <lrg@ti.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    ea77b947
soc-dapm.c 64.8 KB